The archive, machine-readable
There is no API server — there can't be. The archive is static HTML and JSON, prerendered and addressable. Everything below is a file you can fetch. No keys, no rate limits, no accounts.
Endpoints
/place/{slug}.jsonOne full dossier as JSON — story sections, claims, legends, entities, sources, coordinates, evidence classes. The scoped API: one place per call.
/place/{slug}.txtThe same dossier as plain text — story, filed claims with evidence classes, documented history, cited sources. Built for readers, printers and agents.
/data/atlas.jsonCompact card index powering the atlas UI — every dossier’s slug, name, type, location, counts and flags.
/data/map.jsonLocated dossiers with coordinates for the interactive map.
/data/search.jsonThe command palette’s search index.
/data/us-states.jsonJurisdiction list with dossier counts.
/data/almanac.jsonDated records for the almanac pages.
/data/daily.jsonThe daily-file game pool — 400 dossiers with clue fields.
/data/dayindex.jsonCalendar-day → dossier index for /today/ and the date pages.
/data/versus.jsonThe versus game pool.
/data/verdict.jsonHistory-or-legend snippets, answer text included.
/data/chain.jsonAdjacency pool for the six-filings-apart game.
/data/gamepool.jsonSlim dossier rows shared by the memory and name games.
/data/trivia.jsonSeeded trivia deck generated from the record at build.
/feed.xmlRSS — the 50 most recently amended dossiers.
/feed/{state}.xmlPer-jurisdiction RSS — one feed per state and territory.
/sitemap-index.xmlMachine-readable sitemap of every route.
/opensearch.xmlOpenSearch descriptor — add the archive to a browser’s search engines.
/llms.txtRoute documentation for language-model agents.
/embed/{slug}/Self-contained iframe card for a dossier — noindex, safe to embed anywhere.
/og/{slug}.pngPre-rendered share card per dossier (1200×630).
/og/story/{slug}.pngShare card per long-read feature (1200×630).
House rules
The /data/*.json endpoints are compact card indexes built for this site's own UI — they are not the full record, and they are disallowed in robots.txt. For the actual dossier content, fetch the dossier page or its.json variant.
There is no bulk export and no list endpoint for all dossiers — by design. Traverse the index pages (atlas,types,regions) to find slugs, then fetch dossier by dossier.
Claims are reported, never asserted. If you build on the archive, keep that separation visible — it is the point of the record. Attribution snippets are at/badge/.