YANK!
DEVELOPERS · AGENTS

The library, from code.

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.

JSON API

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",
  "shortUrl": "https://yank.info/1s52rg",
  "title": "...",
  "source": { "type": "YouTube", "title": "...", "author": "...", "url": "...", "durationSeconds": 900 },
  "range": { "start": 0, "end": 300 },
  "summary": { "ai": ["..."], "points": [{ "text": "...", "startSeconds": 292 }], "label": "Written by Yank from the source: Yank's words, not quotes." },
  "lines": [
    {
      "rank": 1,
      "text": "You can't connect the dots looking forward; ...",
      "verbatim": true,
      "startSeconds": 292,
      "momentUrl": "https://youtu.be/UF8uR6Z6KLc?t=292",
      "speaker": "Steve Jobs",
      "speakerClass": "title-stated",
      "paraphrased": false,
      "credit": "Steve Jobs",
      "why": "...",
      "context": "...",
      "shortUrl": "https://yank.info/1s52rg/1",
      "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, and a line from a source yanked more than once comes back once:

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" } ] }

Search inside what Yank has read: the whole transcripts of every podcast and video with a public yank, not only their five lines. A hit is a moment, the words around it (the match between « and ») and where to go: the source at that second, its yank, and the few minutes around it to yank. The words are machine transcript, not checked lines; yank the part, or check a quote, before you cite one.

GET https://yank.info/api/search?q=creativity&in=transcripts

{ "query": "...", "in": "transcripts", "count": 2, "hits": [ { "snippet", "representation": "transcript", "sourceTitle", "author", "sourceType", "sourceUrl", "startSeconds", "endSeconds", "momentUrl", "yankUrl", "yankThisPartUrl" } ] }

Both endpoints send permissive CORS headers for GET, cache for an hour, and allow 120 requests a minute per address.

MCP server

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, no key, 7 read-only tools: search_lines, search_transcripts, check_quote, check_memory, get_yank, get_lines_for_url and 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.

Permanent addresses

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.

Feeds

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.

Export

Two requests

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.

Publishing a source yank reads?

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? comboventures+yank@gmail.com.