Endpoints
Every endpoint is a file under a release folder. Same names under every release.
All paths below are relative to a release root (/v3.3.0/) or the /v3/ alias. They are static files with no query parameters. To search, download the data or an index and filter locally, or use the query API, query.kairosarchive.net/cards?q=…, which runs the site's search syntax.
The files
| Path | What you get |
|---|---|
index.json | What this release contains: schema and dataset versions, counts, the endpoint templates below, and links to the usage terms. |
registry.json | The whole database in one file: sets, cards, printings and the three histories. |
registry.json.sha256 | Its SHA-256, in sha256sum format. |
schema.json | The JSON Schema (draft 2020-12) the whole database validates against. |
changes.json | What this release changed against the previous one: counts, the ids behind them, and identifiers_removed, always 0 within a major. From v3.3.2 on. |
types.d.ts | TypeScript declarations generated from schema.json: import type { Registry, Card } from "./types". From v3.3.3 on. |
cards/{codex_id}.json | One card, plus summaries of its printings, its name history and its card history. |
printings/{printing_id}.json | One printing, plus its slug history. |
slugs/{slug}.json | Resolves any slug, current or old, to its permanent IDs. |
sets.json | The set catalogue: one entry per set with counts. |
sets/{set_code}.json | One set, plus the list of its cards and their printing IDs. |
index/cards.json | Compact card records for search and filtering. |
index/printings.json | Compact printing records, with image_hash and image_status. |
index/slugs.json | An object mapping every slug ever issued to its printing_id. |
history/cards.json | Every recorded gameplay face of every card. |
history/names.json | Every recorded card name and when it was in force. |
history/slugs.json | Every recorded slug and when it was in force. |
What a per-object file adds
A record in registry.json and the same record's own file carry the same fields. The file adds what you would otherwise have to join yourself:
- A card file adds
printings(a summary of each printing: id, slug, set, release date, product, finish, whether it shows the current values, retirement date),name_historyandcard_history. - A printing file adds
slug_history: every slug that printing has ever had. - A slug file is a small resolver: the slug, its
printing_idandcodex_id, the card's name, the printing's current slug and whether the one you asked for is current, the dates the slug was in force, set, product, finish, retirement date, and links. - A set file replaces the catalogue's
cardscount with acardsarray: each card's id and name and its printing IDs in that set, ordered by name (the official data has no collector numbers).
What the indexes contain
The indexes are for building a search box without loading 6 MB. They hold selected fields, not full records, and no links.
index/cards.json: id, name, type, category, rarity, elements, keywords, subtypes, cost, attack, defense, power, life, errata, set codes, default printing and image status.index/printings.json: printing id, card id, slug, set code, product, finish, whether it shows the current values, retirement date,image_hashandimage_status. With the hash you can build any image address without fetching the printing.index/slugs.json: one object, slug toprinting_id, for every slug ever issued.
Make a request
curl --fail --location \
--user-agent 'my-card-tool/1.0 ([email protected])' \
'https://api.kairosarchive.net/v3/slugs/004-witch-b-s.json'Check the status before parsing. A slug that was never issued returns 404; a retired printing still resolves. Errors lists every status.
Reference: registry API contract and published object definitions. Report a data or documentation issue.