Everything on a yank page is available as data. No key, no account, no quota to buy. Read it, cite it, and keep the provenance: every line comes with a verbatim flag, a timestamp and a moment link where the source is a video, and the permanent card URL to link back to.
Two things you cannot do from here on purpose: create a new yank (that spends transcription and model credit and stays behind the paste box), and read anything the site does not already show.
One yank, by the slug in its URL:
GET https://yank.info/api/y/<slug>
{
"slug": "stanford-connect-the-dots-looking-1s52rgg",
"url": "https://yank.info/y/stanford-connect-the-dots-looking-1s52rgg",
"title": "...",
"source": { "type": "YouTube", "title": "...", "author": "...", "url": "...", "durationSeconds": 900 },
"range": { "start": 0, "end": 300 },
"lines": [
{
"rank": 1,
"text": "You can't connect the dots looking forward; ...",
"verbatim": true,
"startSeconds": 292,
"momentUrl": "https://youtu.be/UF8uR6Z6KLc?t=292",
"context": "...",
"cardUrl": "https://yank.info/y/<slug>?card=1",
"imageUrl": "https://yank.info/y/<slug>/og?card=1"
}
],
"markdown": "# ...",
"provenance": "Lines marked verbatim are literal substrings ..."
}Search every line ever yanked. Quotes and a leading minus work the way they do in a search box:
GET https://yank.info/api/search?q="connect the dots"&limit=20
{ "query": "...", "count": 3, "hits": [ { "text", "verbatim", "author", "sourceTitle", "sourceUrl", "startSeconds", "momentUrl", "cardUrl", "yankUrl", "rank" } ] }Both endpoints send permissive CORS headers for GET, cache for an hour, and allow 120 requests a minute per address.
A Model Context Protocol endpoint over the same library, so Claude, Cursor, ChatGPT or any MCP client can search and cite yanked lines during a conversation. Streamable HTTP, stateless, three read-only tools: search_lines, get_yank, recent_yanks.
# Claude Code
claude mcp add --transport http yank https://yank.info/api/mcp
# Cursor · Claude Desktop · any JSON config
{ "mcpServers": { "yank": { "url": "https://yank.info/api/mcp" } } }Tool results include the verbatim flag and the card URL. A well-behaved agent quotes verbatim lines as quotes, calls distilled lines paraphrases, and links the card. The server’s own instructions say the same thing.
Four URL shapes, all permanent, all safe to store. The canonical page is the descriptive one; the short forms are aliases that redirect to it and are what the cards themselves print.
https://yank.info/y/<slug> # the yank, canonical https://yank.info/y/<slug>?card=2 # the page with line 2 selected https://yank.info/<code> # short: the yank https://yank.info/<code>/2 # short: line 2 of it
Codes are six characters from an alphabet with no 0, O, 1, l or I, so a code read off a picture cannot be mistyped into a different yank. They are minted once and never recycled. A rank the yank does not have falls back to the yank itself rather than erroring. The API returns cardUrl in the canonical form.
https://yank.info/feed.xml # every new yank https://yank.info/feed.xml?by=<source> # one source hub (see /sources)
RSS 2.0. Each item is one yank: its title, its top line, the one-sentence summary and the permanent URL. Readwise, Feedly and most email digests ingest it as is.
obsidian:// URI scheme. Nothing leaves your machine.Attribute to yank.info and link the card URL when you republish a line. And keep the labels honest: if the data says verbatim: false, the words are ours, not the speaker’s. That distinction is the whole point of the site.
There is nothing to install. A page is yankable when it is publicly retrievable, its article text is in the HTML, and it says who wrote it and where it canonically lives. Check a URL and yank reports what it could and could not establish — and, where something is missing, what to change.
Something missing? hello@yank.info.