TCG Plein API Docs
Beta The seller API is still in beta, so small changes can happen while it settles. Questions or suggestions? Let us know on the support page.
Catalog

Identifiers

Sets and cards can be addressed two ways: a canonical id that always resolves to exactly one record, or a shorter, friendlier id that's easier to hardcode but can occasionally be ambiguous. Sealed products only have one id: their slug.

Sets

A set's canonical id is its tcg_api_id (e.g. sv1). Most sets also have a shortcut, a lowercase community-style code (the same value TCGplayer/ptcgo use) that you can pass anywhere a set identifier is expected, matched case-insensitively. A shortcut can be reused across languages or regions (for example, the same pop shortcut exists for both an English and a Japanese set), in which case pass ?language= and/or ?region= to narrow it down, or use the canonical id directly.

Cards

A card's canonical id is its tcg_api_id (e.g. pbl-63). Its friendly id is {shortcut}_{number} (the card's set shortcut, an underscore, then the card number, lowercased). Card pbl-63 (number 63 in the set with shortcut pbl) has friendly id pbl_63. Only the first underscore splits shortcut from number, because card numbers can themselves contain an underscore (e.g. number 15_A1 gives friendly id neo_15_a1 for a card in the set with shortcut neo, and still resolves correctly). A set shortcut must not contain an underscore, since that would be split incorrectly.

curl "https://tcgplein.nl/api/v1/cards/pbl_63" \
  -H "Authorization: Bearer tcgp_live_K7mP2xQ9vZ4nR8wT3yL6bC1jD5sF0gH7uM2oA9iE"

Every card response includes both fields: id (canonical, always present) and friendly_id (null when the card's set has no shortcut). Use whichever suits your integration. The canonical id never changes; the friendly id is easier to read and write by hand.

Ambiguous identifiers

A friendly id (set shortcut, or a card's {shortcut}_{number}) must be unambiguous. If it matches more than one record (most commonly the same shortcut reused across languages, like the English and Japanese pop sets both having a card numbered 1), the API responds 409 with error.type set to ambiguous_identifier and a list of candidates:

curl "https://tcgplein.nl/api/v1/cards/pop_1" \
  -H "Authorization: Bearer tcgp_live_K7mP2xQ9vZ4nR8wT3yL6bC1jD5sF0gH7uM2oA9iE"

Resolve it either by switching to one candidate's canonical id, or by adding ?language=en (or ?region=) to the same request. For example, GET /cards/pop_1?language=en resolves cleanly to pop1-1. The same 409 contract applies to ambiguous set shortcuts.

Sealed products

Sealed products (booster boxes, elite trainer boxes, tins, and so on) have a single id: their slug (e.g. scarlet-violet-elite-trainer-box). There is no separate canonical / friendly distinction for products: the slug is both.

Filtering products by set

GET /products?set= accepts a set shortcut the same way card and set lookups do, but that endpoint has no ?language= / ?region= filters to disambiguate with. If the shortcut you pass is ambiguous there, the only escape is to use the set's canonical tcg_api_id instead of its shortcut.

Cookies op TCG Plein. We gebruiken noodzakelijke cookies om de site te laten werken, analytische cookies om te zien hoe bezoekers de site gebruiken en marketingcookies om te meten of onze advertenties werken. Analytische en marketingcookies plaatsen we alleen als je ze accepteert. Lees meer in ons cookiebeleid.