# yank.info for developers and agents

Source: https://yank.info/developers

Everything on a yank page is available as data, with its provenance: every line carries a verbatim flag (literal words from the source, or Yank's paraphrase), a timestamp and moment link for a recording, the passage around it and its permanent card address. No key, no account. Creating a yank is not part of the API: it spends transcription and model credit and stays behind the paste box.

## When an agent should call Yank

- Before quoting a video, podcast or article: `get_lines_for_url`, what Yank already holds from that source, every line with its verbatim flag and moment link; free, and zero yanks is an answer.
- Before publishing a script, article or note that quotes a source: `check_quote`, is this statement in this source: a bounded verdict with the passage and where.
- When notes, a memory store or a shared workspace hold claims nobody re-checked: `check_memory`, up to 10 claims, each with its source, checked at once; the ones no source supports come back NOT FOUND.
- To find a line someone said, or who said it: `search_lines`, every yanked line, with its source and card.
- To find where something was said inside a podcast or video: `search_transcripts`, moments inside kept transcripts; machine transcript, so check before citing.
- To cite a line: `get_yank`, link its cardUrl, and call a line with verbatim: false a paraphrase.

## JSON API

Described by OpenAPI 3.1 at https://yank.info/openapi.json; its front door is https://yank.info/api.

- `GET https://yank.info/api/y/{slug}`: One yank, with every line and its provenance.
- `GET https://yank.info/api/search`: Search every yanked line, or inside every kept transcript.
- `GET https://yank.info/api/check`: Yank Check: is this statement in this source? (GET form).
- `POST https://yank.info/api/check`: Yank Check: is this statement in this source?.
- `POST https://yank.info/api/check/summary`: Check a summary: is every figure and name in it in the source?.
- `GET https://yank.info/api/oembed`: oEmbed for a card or a line.

- Add `.csv` to a slug (or `?format=csv`) for one row per line, with `verbatim` as its own column.

## MCP server

Streamable HTTP at https://yank.info/api/mcp, stateless, no key, 7 read-only tools. Described by https://yank.info/.well-known/mcp/server-card.json.

```
claude mcp add --transport http yank https://yank.info/api/mcp
```

- `search_lines`: Search yanked lines.
- `search_transcripts`: Search inside what Yank has read.
- `check_quote`: Check a statement against its source.
- `check_memory`: Check remembered claims against their sources.
- `get_yank`: Get one yank.
- `get_lines_for_url`: Lines already yanked from a URL.
- `recent_yanks`: Recent yanks.

## Limits, errors and changes

No key and no account. 120 requests a minute per address on /api/y and /api/search; 20 checks a minute on /api/check and /api/check/summary together, 6 of which may read a source Yank does not hold yet. Every response names its quota in RateLimit-Policy; a 429 carries Retry-After. Every response carries X-Vercel-Id: quote it when something looks wrong.

An error is JSON, `{ "error": "<what went wrong, in a sentence>" }`, with a real status code: 400 for a malformed request, 404 for nothing at that address, 429 when the limit is reached (with Retry-After in seconds), 503 when the library is not reachable. /api/check and /api/check/summary add `error_code` (`bad_request` or `rate_limited`). A verdict is never an error: every Yank Check answer is a 200.

- The API has no version in its paths. Changes are additive: new endpoints, new fields and new error codes ship without notice, so ignore what you do not recognise.
- A change that would break a client ships at a new path, and the old one keeps working beside it.
- Before an endpoint or a field is removed, its responses carry a Deprecation header (RFC 9745) and a Sunset header (RFC 8594) with the date, at least six months ahead, and the changelog says so. It keeps working until that date.

## Permanent addresses

- `https://yank.info/y/<slug>`: the yank, canonical. Add `.md` for its Markdown twin.
- `https://yank.info/y/<slug>?card=2`: the page with line 2 selected.
- `https://yank.info/<code>` and `https://yank.info/<code>/2`: the short forms the cards print; they redirect to the canonical page.

## Feeds

- `https://yank.info/feed.xml`: every new yank, RSS 2.0. Add `?by=<source>` for one source.

## 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 Yank's, not the speaker's.

More: https://yank.info/llms.txt, https://yank.info/agents.md.
