In this section

CUSTOM SETS

Define what you're chasing. Track completion.

A custom set is a goal — "every Bedard ," "all Rainbow Young Guns," "jersey #25 of every numbered Stankoven." Make it public and other collectors subscribe and chase the same set.

two kinds

CURATED: MATCH MODES

You hand-pick each card. Its decides what "owned" means:

any_printingOwn any version of the — base, parallel, whatever.
exactOwn this specific printing (this finish).
exact_serialOwn this printing with this exact serial number.
💡One set can mix all three — "any McDavid YG" beside "exact Rainbow Bedard /99" beside "serial #25 Gold Stankoven."

DYNAMIC: ONE FILTER

A dynamic set is a saved filter, not a card list — the same CardFiltergrammar you'd POST to /cards/search(subject, rookie, is_numbered, finish, year…). Every catalog card that matches is a member, so the set fills itself: parse next season's release and each new Bedard rookie joins on its own, no editing. There are no per-card match modes — the filter is the membership rule.

COMPLETION

Fetching a set returns per-card ownership — owned_printing tells you whatyou own ("Rainbow /99," not just "yes") — plus totals: cards, owned, completion %. A curated set's target is fixed; a dynamic set's grows with the catalog, so its percentage shifts as new cards match.

SHARE IT

Make any set public and other collectors subscribe — chasing the same goal, each tracking their own completion against it. The most-subscribed chases surface at /custom-sets/popular.