Kairos Archive

Search syntax

This page is generated from the same table the search engine is built from, so every key listed here works and no other does. Prefer clicking to typing? Advanced search builds these same queries from a form, and shows you the query it built.

Each key has one short spelling — the one this page heads its row with — and longer, descriptive ones that mean exactly the same thing: rar: is rarity:, m: is mana: and cost:, l: is life:. Keys and values are case-insensitive.

Operators

Every operator the language reads, with a worked example you can run. What each one does to a particular key is in that key's row further down.

OperatorWhat it doesExample
:Contains. On text it is the substring, so r:drag finds Dragon; where a value has no inside - a number, a date, a name from a fixed list - it is plain equality.t:minion
= or ==The whole thing. A number is one value, the elements are a set, text is a sequence of words: r=drag is the complete word and r="draw a spell" the complete phrase.r=drag
!= or !==Not the whole thing: the negation of =. On text, -r:… is the other negation, for none of those letters at all.r!=drag
<Less than. Numbers and dates only.m<3
<=At most.m<=3
>More than.pow>4
>=At least.thr>=3
- or notNot this term. Put it in front of anything: a key, a flag, a bare word, a group.t:minion -e:fire
orEither side. Terms sitting side by side are already combined with and, which is accepted but never needed.e:fire or e:air
( )Grouping, so or applies to what you meant.t:minion (e:fire or e:air)
+Every value in the list. For keys whose values are names, not free text.e:water+fire
,Any value in the list.e:water,fire
"…"A value with spaces in it, kept whole.r:"draw a spell"
!"…"The entire card name and nothing else, which is a different question from finding a word inside a longer name.!"Polar Bears"

Keys and values are case-insensitive, and so are or, and and not.

Words

Bare words match the card name (each word, anywhere, case-insensitive): polar. !"Polar Bears" is the exact name. Cards whose rules text contains your words appear in a separate group below the name matches, so a bare word never silently mixes the two; use r: to search rules text on purpose.

The whole thing, or any part of it

Every key takes two operators, and the difference is the same one everywhere. : ignores where a value begins and ends; = respects it.

SyntaxMeaning
r:dragThose letters anywhere in the rules text, so Dragon counts.
r=dragThe complete word drag, so Dragon does not.
r="draw a spell"That complete phrase, with a word boundary at each end.
r!=dragNot the complete word drag. Same as -r=drag.
-r:dragNot those letters at all, so no Dragon either.

It is one idea, applied to whatever the key holds. A number is a single value, so m=3 is that value. The elements are a set, so e=water+fire is that set and no third. Rules text is a sequence of words, so r= is a whole word or a whole phrase. On the keys whose values come from a fixed list, a value has no inside to look at, so t:minion and t=minion ask the same question.

The whole-word reading applies to every key whose value is free text - n, r, a, tl, ft - by any of their spellings, so rules=draw is r=draw. A word ends wherever a character is not a letter or a number, so punctuation and line breaks divide words: r=step finds “step,” at the end of a sentence, and r=force finds “force-move”. A quoted phrase does not mind how much space sits between its words, so it still matches across the line break a rules box prints.

== and !== are accepted as other ways to write = and !=, so a doubled key lands on the operator you meant. And r=polar finds a word inside the text, which is not what !"Polar Bears" does: that is still the entire name and nothing else.

Card keys

These filter cards.

KeyAliasesMeaningExamples
n:name:Card name. n:bear is the substring, so it finds Bearded; n=bear is the complete word. Bare words search the name too; use n: when combining with other terms.
r:rules:Rules text. r:drag is the substring, so it finds Dragon; r=drag is the complete word and r="draw a spell" the complete phrase. r: is rules in Sorcery (there is no oracle text).
rar:rarity:Ordinary, Exceptional, Elite or Unique; any unambiguous prefix works. Three letters, not one: r: is rules. Values: Ordinary, Exceptional, Elite, Unique.
t:type:Avatar, Minion, Magic, Aura, Artifact or Site; prefixes work. Type only, never a subtype. Values: Avatar, Minion, Magic, Aura, Artifact, Site.
cat:category:Spell, Site, Avatar or Token. Values: Spell, Site, Avatar, Token.
sub:subtype:A subtype (Mortal, Beast, Relic, ...); repeat the key for AND; prefixes work.
u:umbrella:The cross-subtype groups rules text refers to: Evil, Knight, Royalty. Values: Evil, Knight, Royalty.
e:element:e:water matches any card that has Water (multi-element cards match each of theirs); e:water e:air needs both; e=water means Water and nothing else; e:none is colourless. First letters work: e:w, e=wa. List values to combine them: e:water+fire has both, e:water,fire has either, e=water+fire is exactly those two and nothing else. For how many elements rather than which, use is:multi-element or is:mono-element. Values: Air, Earth, Fire, Water, None.
thr:threshold:thr.total:Total threshold: the four element requirements added up, which is what a deck has to reach to play the card. Derived, so it needs no lookup: thr:0 is every card with no requirement at all.
air:thr.air:threshold.air:Air threshold, with the numeric operators.
earth:thr.earth:threshold.earth:Earth threshold.
fire:thr.fire:threshold.fire:Fire threshold.
water:thr.water:threshold.water:Water threshold.
k:keyword:A keyword (Airborne, Genesis, Spellcaster, Submerge, ...); repeat for AND; prefixes work.
m:mana:cost:Mana cost with the numeric operators; m:x for the cards with no fixed cost; m:even, m:odd.
pow:power:Power is derived: equal to attack when attack equals defense, otherwise floor((attack + defense) / 2). pow: searches that value, as the registry publishes it.
atk:attack:The raw attack value - a different key from power on purpose.
def:defense:defence:The raw defense value.
l:life:Life; only Avatars have one.
id:codex:printing:A registry id, C000230 (card) or P000937 (printing). A query that is exactly an id jumps straight to that page.
slug:Any official-API slug ever issued, resolved through the registry's slug history. A query that is exactly a slug jumps too.

Printing keys

All printing keys and printing flags in a query must be satisfied by one and the same printing of a card. t:minion s:alpha f:foil means minions with a printing that is both Alpha and foil; or between printing terms is judged printing by printing. Negating a printing term asks for a printing that lacks it: -is:foil is "has a non-foil printing".

KeyAliasesMeaningExamples
s:set:A set by code or name: s:006, s:gothic, set:"arthurian legends"; name prefixes work. A code is a label, written in full: s:6 is not s:006. The registry's own sets have letter codes: s:cur is the curios. Promos are all in set 999 (s:promo); to find them by the release they came out with, use with:.
rw:with:The set release a printing came out with, by code or name. A booster card came out with its own set; a promo or a curio with the release the registry recorded for it, so with:beta finds Beta's cards and the promos released with Beta. Promos with no recorded release match no with: at all.
pro:product:The product line, leniently: pro:boxtopper, pro:"box topper", pro:box_topper, or the slug code pro:bt; prefixes work. (p: is deliberately unassigned - too close to power.) Values: Booster, BoxTopper, PreconstructedDeck, Dust, DraftKit, WelcomeKit, Kickstarter, TeamCovenant, AlphaInvestments, StarCityGames, OrganizedPlay.
f:finish:Standard, Foil or Rainbow, or the slug code (f:rf). Values: Standard, Foil, Rainbow.
a:artist:Artist name or artist slug: a: is the substring, a= the complete word.
tl:typeline:The flavour typeline printed under the name: tl: is the substring, tl= the complete word or phrase.
ft:flavor:flavour:Flavour text: ft: is the substring, ft= the complete word or phrase. Empty upstream today; the key exists.
date:year:released:Release date of a printing: year:2023, year>=2024, date>=2025-08-01, date<2024. Accepts YYYY, YYYY-MM or YYYY-MM-DD.

Numbers and dates

Every numeric key — thr, air, earth, fire, water, m, pow, atk, def, l — and the date key date take : or = (equals), <, <=, >, >=, !=. A numeric key can compare to another: atk>def, m>=thr. thr is the four element thresholds added up, the total a deck has to reach; the element keys ask for one element each, so water>=2 fire:1 is two Water and one Fire. Dates accept YYYY, YYYY-MM or YYYY-MM-DD and compare as ranges: date<2024 is before 2024, date:2024-05 is within that month.

Flags

FlagScopeMeaning
is:erratacardthe card's text or stats changed since it was printed (registry errata flag)
is:multi-element · is:multiis:multielementcardtwo or more elements: Invigorate is Earth and Water, King Arthur is all four
is:mono-element · is:monois:monoelementcardexactly one element; e:none finds the cards with no element at all
is:dfccarddouble-faced: the card has a back face
is:tokencardcategory Token
is:avatarcardcategory Avatar
is:sitecardcategory Site
is:spellcardcategory Spell
is:reprintcardmore than one printing
is:unique-printingcardexactly one printing
is:promoprintingany product other than Booster
is:boosterprintingproduct Booster
is:foilprintingfinish Foil
is:rainbowprintingfinish Rainbow
is:nonfoilprintingfinish Standard
is:currentprintingprinted_as_current: the printed values match the card's current face
is:outdatedprintingprinted_as_current false: the printing shows older values
is:retiredprintingremoved upstream; the registry keeps the record
is:manualprintingrecorded by hand: the official API does not serve this printing, so the registry keeps it from a photo or a public source
has:backcardthe card has a back face (same as is:dfc)
has:imageprintingimage_status ok or lowres: an image is served

Value lists

Any key whose values are names, rather than free text, accepts several at once: e:water+fire needs both, e:water,fire takes either. It works the same for the rest, so t:minion,site and sub:beast+spirit read as you would expect. No spaces around the separator, and don't mix + with , in one value: put the alternatives in parentheses instead. A printing key still has to be satisfied by a single printing, so f:foil,rainbow finds cards printed either way while f:foil+rainbow asks one printing to be both and finds nothing. != negates the whole list: e!=water,fire is neither of them. Elements also take = for the exact set: e=water+fire is the cards that are those two and nothing more.

When a query has a mistake

Nothing is guessed. An unknown key, a value that is not one of the ones a key accepts (e:wateer, m:banana), a prefix too short to tell two values apart (rar:e — Exceptional or Elite?), an unusable operator or a half-finished value list is reported above the results, and the terms that were understood still run — so e:w + f tells you a value list takes no spaces rather than quietly searching for a card named “+”. Mixing + and , in one value is refused for the same reason: (e:water+fire or e:air) says which grouping you meant.

Logic

Terms are ANDed; or alternates; parentheses group: t:minion (e:water or e:air) -k:genesis. and is accepted and never required. Quote values with spaces: r:"draw a spell".

Saying not

Three spellings, one meaning — use whichever reads best to you. - in front of a term is the short one and the easiest to type: is:multi-element -t:site -e:air is the multi-element cards that are neither Sites nor Air. not is the same thing in words: not t:site. != is the same thing on the key, and reads best beside the other comparisons: t!=site, m!=3. They give identical results — - negates the whole term, which is exactly what != means.

A phone keyboard may offer ≠ where you want !=; the search does not read it, and will say so rather than looking for a card of that name.

Results, sorting, ids

unique: cardsprintsart — one row per card (the default, shown with the printing that matched or the default printing), every matching printing, or one per distinct artwork. sort: namecostthresholdpoweratkdeflifesetdateraritytype and order:asc|desc (name ascending by default; dates newest first). Everything lives in the URL, so a search is shareable. A query that is exactly an id (C000230, P000937) or an official slug jumps straight to its page.