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

Cards

Read-only endpoints over individual cards. Both need the catalog:read scope. See Identifiers for how a card's canonical and friendly ids work.

List cards

GET /cards

Query parameters

Parameter Type Required Description
q string Optional Search by card name.
set string Optional A set identifier (canonical id or shortcut). Restricts results to that set. The same 409 ambiguous_identifier contract applies here as on the set and card detail endpoints: an ambiguous shortcut 409s, and adding language and/or region to the same request narrows it.
language string Optional Filters on the card's set, not the card itself: a card has no language of its own. See Values.
region string Optional Filters on the card's set, lowercase (e.g. en, jp).
rarity string Optional Exact match, e.g. Rare.
page / per_page integer Optional See Pagination.

Response fields

Returns a paginated list of card objects:

Field Type Description
id string Canonical tcg_api_id, e.g. pbl-63.
friendly_id string or null {shortcut}_{number}. Null when the card's set has no shortcut.
name string The card's name.
number string Collector number within the set. A string: numbers like TG12 exist.
rarity string or null E.g. Rare.
supertype string or null E.g. Pokémon, Trainer, Energy.
hp string or null Hit points, as printed.
types array of strings or null E.g. ["Lightning"].
image_small string or null Card image URL, small variant.
image_large string or null Card image URL, large variant.
url string The card's page on the public marketplace.
set object The card's set, the same set object documented on Sets.
curl "https://tcgplein.nl/api/v1/cards?set=sv1&rarity=Rare" \
  -H "Authorization: Bearer tcgp_live_K7mP2xQ9vZ4nR8wT3yL6bC1jD5sF0gH7uM2oA9iE"

Get a card

GET /cards/{identifier}

{identifier} is the canonical id or the friendly {shortcut}_{number} id. Optional ?language= / ?region= narrow an ambiguous friendly id; ?include=listings embeds the card's active listings.

Parameters

Parameter Type Required Description
{identifier} string Required Path parameter: the canonical id or friendly id.
include string Optional Only listings is accepted.
language string Optional Narrows an ambiguous friendly id, e.g. EN.
region string Optional Narrows an ambiguous friendly id, lowercase, e.g. en.

Response fields

Returns a single card object under data:

Field Type Description
id string Canonical tcg_api_id, e.g. pbl-63.
friendly_id string or null {shortcut}_{number}. Null when the card's set has no shortcut.
name string The card's name.
number string Collector number within the set. A string: numbers like TG12 exist.
rarity string or null E.g. Rare.
supertype string or null E.g. Pokémon, Trainer, Energy.
hp string or null Hit points, as printed.
types array of strings or null E.g. ["Lightning"].
image_small string or null Card image URL, small variant.
image_large string or null Card image URL, large variant.
url string The card's page on the public marketplace.
set object The card's set, the same set object documented on Sets.
listings array of objects Only with include=listings: the card's active listings in the public listing shape documented on Listings.

The listings embed is unbounded: it returns every active listing for the card sorted by price ascending, not paginated. For a popular card that can be a long array, so only request it when you actually need the listings alongside the card.

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

Every listing (here or on GET /listings) reports quantity_available: how many units can actually be bought right now, with active cart reservations already subtracted. The raw, un-reserved quantity stock count is only included when the listing belongs to the API key making the request. Other sellers' listings never expose it.

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.