Cards & printings
Gameplay belongs to the card. Physical details belong to the printing.
Card records
cards/{codex_id}.json contains the current gameplay face: type, category, rarity, slot, subtypes, elements, keywords, umbrellas, cost, attack, defense, power, life, elemental thresholds and rules text. A double-faced card also has a back face; otherwise back is null.
It also includes the permanent ID, current name, errata flag, set codes, printing IDs, default printing, image information and record links. The per-card endpoint adds printings summaries, name_history and card_history.
{
"codex_id": "C000139",
"name": "Askelon Phoenix",
"type": "Minion",
"rules_text": "Airborne\nIf Askelon Phoenix would take fire damage, it gains +1 power this turn instead.",
"default_printing_id": "P000571",
"printing_ids": [
"P000569",
"P000570",
"P000571",
"P000572"
],
"api_url": "https://api.kairosarchive.net/v3/cards/C000139.json",
"kairos_url": "https://kairosarchive.net/cards/C000139"
}Printing records
printings/{printing_id}.json identifies one set, product and finish. It includes codex_id, set name and code, release date, artist, typeline, flavour text, slug, image information, retirement date and printed_as_current. The per-printing endpoint adds its slug_history.
Do not infer a printing’s rules from the card’s current text. An older printing may display earlier values. Use the printing status and card history.
Numbers and absent values
- Missing or inapplicable numeric values can be null. Preserve null rather than displaying it as zero.
lifebelongs to Avatars.powerequals attack when attack equals defense; otherwise it is the floor of their average. If either is null, power is null. Use the published value so clients agree.- Thresholds are separate numbers:
thr_air,thr_earth,thr_fireandthr_water. - Rules text includes real line breaks. Preserve those when displaying multiple abilities.
Stable IDs and mutable names
IDs are append-only and are never reused or changed. Store codex_id or printing_id, not a name, URL slug or apparent collector number. Set codes and slug fragments do not supply collector numbering.
slugs/{slug}.json resolves current and historical slugs to their permanent IDs, current slug and record links. A retired printing remains addressable; retired_at means it disappeared from the upstream API, not that the archive deleted it.
Default printing
default_printing_id selects the card’s representative printing. Its art supplies the card’s image URLs. It does not promise the newest printing or one whose printed wording is current.
Reference: registry API contract and published object definitions. Report a data or documentation issue.