Kairos Archive

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

PathWhat you get
index.jsonWhat this release contains: schema and dataset versions, counts, the endpoint templates below, and links to the usage terms.
registry.jsonThe whole database in one file: sets, cards, printings and the three histories.
registry.json.sha256Its SHA-256, in sha256sum format.
schema.jsonThe JSON Schema (draft 2020-12) the whole database validates against.
changes.jsonWhat 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.tsTypeScript declarations generated from schema.json: import type { Registry, Card } from "./types". From v3.3.3 on.
cards/{codex_id}.jsonOne card, plus summaries of its printings, its name history and its card history.
printings/{printing_id}.jsonOne printing, plus its slug history.
slugs/{slug}.jsonResolves any slug, current or old, to its permanent IDs.
sets.jsonThe set catalogue: one entry per set with counts.
sets/{set_code}.jsonOne set, plus the list of its cards and their printing IDs.
index/cards.jsonCompact card records for search and filtering.
index/printings.jsonCompact printing records, with image_hash and image_status.
index/slugs.jsonAn object mapping every slug ever issued to its printing_id.
history/cards.jsonEvery recorded gameplay face of every card.
history/names.jsonEvery recorded card name and when it was in force.
history/slugs.jsonEvery 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_history and card_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_id and codex_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 cards count with a cards array: 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_hash and image_status. With the hash you can build any image address without fetching the printing.
  • index/slugs.json: one object, slug to printing_id, for every slug ever issued.

Make a request

curl · resolve a slug through the alias
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.