models.rip for agents and developers
Every machine-readable surface of models.rip: the graveyard.json dataset endpoint, markdown content negotiation, llms.txt, and the MCP server.
Everything on models.rip is public, unauthenticated and free to use. There is no API key, no sign-up and no rate limit worth the name. The dataset is CC BY 4.0 — use it, credit it.
The dataset endpoint
/graveyard.json is the entire cemetery in one document: every model grave and every benchmark grave, with the fields the pages are rendered from. It is a static file, cached for an hour, and it is the right thing to fetch if you want all of it. There is no paginated or per-record REST API, because at this size one file is a better interface than one.
- Model graves carry
slug,name,provider,modelId,aliases,born,died,deprecatedAnnounced,retirementScheduled,causeOfDeath,successor,benchmarks,contextWindow,pricing,epitaph,lastWordsandsources. - Benchmark graves carry
slug,name,born,died,causeOfDeath,frontierAtLaunch,frontierAtDeath,ceiling,ceilingBasis,successor,epitaphandsources. died: nullmeans a reserved plot: deprecation announced, model still answering.retirementScheduledis the shutdown date the provider published, when it published one.- Every grave cites at least one source, and every source is the provider’s own page.
The HTTP API
Three read-only JSON endpoints, described in OpenAPI 3.1 at /openapi.json. Every operation carries a unique operationId, a description, typed parameters and a response schema, which is what a model needs to build a call to one without being told how.
- /api/graves — search.
qmatches the name, the model id, any retired snapshot id, the provider and the epitaph text. Filter withprovider,causeandstatus; page withlimitandoffset.totalis the size of the answer, not of the page. - /api/graves/{slug} — one grave in full. Takes a retired snapshot id too:
/api/graves/gpt-4-0613answers with the GPT-4 grave and says what it resolved from. - /api/plots — every provider plot, with buried and reserved counted apart.
Failures come back as JSON in one shape, never as an HTML error page: an error object with a code from a closed set, a message, a hint naming the next thing to try, and a link back to this page. A parameter outside its range is refused rather than quietly clamped.
Markdown instead of HTML
Every page on this site serves markdown to a client that asks for it. Send Accept: text/markdown to any page URL and you get the content without the 3D scene, the navigation or the markup around it; the same URL still serves HTML to a browser. Responses carry Vary: Accept, so a cache cannot hand one audience the other’s copy.
Every page also has a .md sibling for clients that would rather follow a link than set a header: /gpt-4/epitaph.md is the epitaph, and the homepage is /index.md. Both are advertised from the HTML with <link rel="alternate" type="text/markdown">.
The command line
There is a CLI over the same API, with no dependencies and no build step: npx models-rip search claude haiku, npx models-rip show gpt-4-0613, npx models-rip plots. --json prints the raw payload for piping. show takes a retired snapshot id as readily as a slug.
llms.txt
/llms.txt is the llmstxt.org index: what this site is, when an agent should reach for it, and where the machine-readable versions live. /llms-full.txt is every epitaph in the cemetery in one file, for when fetching 59 URLs is the wrong shape.
The MCP server
models.rip runs a Model Context Protocol server over Streamable HTTP at /mcp. Point any MCP client at https://models.rip/mcp — no authentication, no session to establish. Its server card is published at /.well-known/mcp.
search_graves— find graves by name, model id, provider or cause of death.get_grave— one grave in full, with its epitaph, dates and sources.list_plots— every provider with a plot here, and how many each has buried.cemetery_overview— what the archive is and what is in it, in one call.
Stable addresses
Slugs do not change. A retired snapshot id redirects to the grave that buries it — /gpt-4-0613 is a 308 to /gpt-4 — so an id pinned in production three years ago still resolves. /sitemap.xml lists every page, and /robots.txt allows every crawler, training crawlers included.
Using it
Attribution is the whole licence: name models.rip and link back to it. If you are building something that leans on the dataset, say hello — not for permission, but because it is useful to know what the data is being used for.