Kairos Archive

Endpoints & releases

One immutable snapshot per release. One discovery document to find it.

Find the release

https://api.kairosarchive.net/versions.json contains base_url, latest by major version, and a releases array. Each entry includes its tag, schema version, release date and the digest of registry.json.

Follow updates
/v3/… redirects with HTTP 302 to the newest verified v3 release.
Pin a snapshot
Read a tag from discovery and use /{tag}/…. All requests using that root stay on the same snapshot.
Breaking changes
A new major gets its own alias. Follow the major your client understands.

Discovery is cached for 60 seconds. Checking hourly is sufficient for typical clients. Immutable release files have a one-year immutable cache policy and their bytes never change. Images have their own permanent, content-addressed URLs.

Available files

These paths are relative to a release root or the /v3/ alias. They are static files; search expressions and query parameters do not filter their contents.

PathResponse
index.jsonDiscovery for this root: schema and dataset versions, counts, endpoint templates and terms.
registry.jsonThe entire committed export: cards, printings, sets and all three histories.
registry.json.sha256SHA-256 in sha256sum format. Verify the downloaded export bytes.
schema.jsonThe full export JSON Schema, draft 2020-12.
cards/{codex_id}.jsonCard fields plus printing summaries, name_history and card_history.
printings/{printing_id}.jsonPrinting fields plus slug_history.
slugs/{slug}.jsonResolve a current or historical slug to permanent card and printing IDs.
sets.jsonThe set catalogue array.
sets/{set_code}.jsonA set record with a cards array of names, IDs and that set’s printing IDs.
index/cards.jsonCompact card records for local search and filtering.
index/printings.jsonCompact printing records with image_hash and image_status.
index/slugs.jsonAn object mapping every known slug to its printing_id.
history/cards.jsonAll recorded gameplay faces.
history/names.jsonEvery recorded card name and its registry validity range.
history/slugs.jsonEvery recorded slug and its registry validity range.

Make a request

curl · follow the release redirect
curl --fail --location \
  --user-agent 'my-card-tool/1.0 ([email protected])' \
  'https://api.kairosarchive.net/v3/cards/C000139.json'

Check the HTTP response before parsing JSON. An unknown slug returns 404; retired printings remain in the registry. Fetch bulk exports or indexes for large imports rather than requesting every object separately.

Links can leave a snapshot

api_url on full card, printing and set records points to the moving major alias. Following it from a historical release opens the current record. To stay on your selected release, construct the documented path under your pinned root instead. kairos_url links to the website.

The compact indexes contain selected fields, not full objects. In the current publisher implementation they do not include api_url or kairos_url; use the documented ID paths for lookups.

Full export versus object responses

The full export separates entities and histories into arrays. A card object adds that card’s history and printing summaries. A set entry in sets.json has a numeric cards count; the individual set object replaces that field with an array of its cards.

Release verification and mirrors

A verified root includes a RELEASED marker; release builds also include a manifest. Verify the actual registry.json bytes against the discovery digest. Comparing two checksum strings alone does not verify your download.

If you already know a release tag, its export is also available from https://raw.githubusercontent.com/sadkinglabs/sorcery-registry/{tag}/export/registry.json. Verify it against the same expected digest.


Reference: registry API contract and published object definitions. Report a data or documentation issue.