Using the Collection
Everything saved here is queryable from outside the site, and none of it needs a key.
The Insights collection is 491 links I decided were worth keeping, and 2,794 passages of the text inside them. Every page has been read and split up, and the passages are embedded, so search matches what a page says rather than what it is called.
This is the retrieval behind the Ask panel on the Insights page, exposed without the chat layer. No model runs, so the same query returns the same ranked list every time, and nothing can be invented.
Search by meaning
Describe the page you half remember. It finds links by what the pages say, not by their titles.
/api/v1/search?q=…&channel=tools&limit=5Saved links whose contents match a plain-language query, closest first. channel narrows it to one category, and limit caps the results at 20 and defaults to 8.
curl "https://www.souravinsights.com/api/v1/search?q=a%20tool%20to%20check%20colour%20contrast&limit=2"{
"data": [
{
"id": "oklch.fyi",
"url": "https://oklch.fyi/",
"title": "OKLCH Color Picker, Generator and Converter",
"channel": "tools",
"added_at": "2025-07-07T19:46:08.060Z",
"score": 0.4696,
"passage": "If your display supports Display-P3, you will see the right colors…"
}
],
"meta": { "query": "a tool to check colour contrast", "count": 1 }
}Read the collection
The same list the Insights page renders, as JSON.
/api/v1/links?channel=tools&limit=50&cursor=…A page of links, newest first. Pass ?url= for an exact lookup instead, and read the next page from meta.next_cursor.
curl "https://www.souravinsights.com/api/v1/links?channel=tools&limit=1"{
"data": [
{
"id": "celld.dev",
"like_key": "1391867904382734507",
"url": "https://celld.dev/",
"title": "celld: Durable Objects, self-hosted",
"description": "Durable Objects without the cloud bill.",
"channel": "tools",
"added_at": "2026-03-08T09:12:44.120Z"
}
],
"meta": { "next_cursor": "eyJhIjoiMjAyNi0wMy0wOC…" }
}/api/v1/channelsEvery channel, with its visible link count.
Every parameter, and a playground to try them in, live at /api/docs. It is generated from the same schemas that validate requests, so it cannot drift from behaviour.
Connect an assistant
An MCP server, so Cursor or Claude can search the collection mid-conversation.
Point any MCP client at https://www.souravinsights.com/api/mcp. It exposes one tool, search_knowledge, backed by the same retrieval as the search endpoint. A question asked in your editor and one asked on the site find the same links.
{
"mcpServers": {
"insights": {
"url": "https://www.souravinsights.com/api/mcp"
}
}
}Feeds
For anything that would rather pull the collection than query it.