Sets
Read-only endpoints over the Pokémon TCG set catalog. All three endpoints need the
catalog:read scope; see Identifiers
for how a set's id and shortcut relate.
List series
GET /series
Every series in the catalog with its curated shortcut and set count, ordered by set count. This
endpoint takes no parameters, and the response is a plain array under data,
not paginated. The shortcut is what the series filter
on GET /sets accepts as an alternative to the full name; see also the
Values reference.
Response fields
| Field | Type | Description |
|---|---|---|
name |
string | The series name, e.g. Sword & Shield. |
shortcut |
string or null | Curated series code, e.g. swsh. Null for series without one. |
sets_count |
integer | Number of visible sets in the series. |
curl "https://tcgplein.nl/api/v1/series" \
-H "Authorization: Bearer tcgp_live_K7mP2xQ9vZ4nR8wT3yL6bC1jD5sF0gH7uM2oA9iE"
List sets
GET /setsQuery parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
q |
string | Optional | Search by set name. |
language |
string | Optional | Exact match, e.g. EN or JP. See Values. |
region |
string | Optional | Exact match, lowercase (e.g. en, jp). |
series |
string | Optional |
A curated series shortcut (e.g. swsh), a series name written in
any casing, or the exact name (e.g. Scarlet & Violet).
GET /series lists every series with its shortcut; unknown
values filter as a literal name.
|
page / per_page |
integer | Optional | See Pagination. |
Results are sorted newest release first, unless q is present, in which case
they're sorted by search relevance.
Response fields
Returns a paginated list of set objects:
| Field | Type | Description |
|---|---|---|
id |
string | Canonical tcg_api_id, e.g. sv1. |
shortcut |
string or null | Lowercase friendly identifier. Null for sets without one. |
name |
string | The set's name. |
series |
string | The series the set belongs to. |
language |
string | Language code, see Values. |
region |
string | Lowercase region code, e.g. en. |
release_date |
string or null | YYYY-MM-DD. |
total_cards |
integer or null | Total number of cards, including secret rares. |
printed_total |
integer or null | The card count printed on the cards themselves. |
logo_url |
string or null | Set logo image URL. |
symbol_url |
string or null | Set symbol image URL. |
cards_count |
integer | Number of visible cards in the set. |
products_count |
integer | Number of visible sealed products tied to the set. |
curl "https://tcgplein.nl/api/v1/sets?language=EN&series=Scarlet+%26+Violet" \
-H "Authorization: Bearer tcgp_live_K7mP2xQ9vZ4nR8wT3yL6bC1jD5sF0gH7uM2oA9iE"
Get a set
GET /sets/{identifier}
{identifier} is either the canonical tcg_api_id or the
set's shortcut (see Identifiers
for the full contract, including the 409 ambiguous_identifier case). Optional
?language= / ?region= narrow an ambiguous shortcut.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
{identifier} |
string | Required | Path parameter: the canonical id or the set's shortcut. |
include |
string | Optional | Comma-separated list (no spaces) of cards and/or products. |
language |
string | Optional | Narrows an ambiguous shortcut, e.g. EN. |
region |
string | Optional | Narrows an ambiguous shortcut, lowercase, e.g. en. |
Response fields
Returns a single set object under data:
| Field | Type | Description |
|---|---|---|
id |
string | Canonical tcg_api_id, e.g. sv1. |
shortcut |
string or null | Lowercase friendly identifier. Null for sets without one. |
name |
string | The set's name. |
series |
string | The series the set belongs to. |
language |
string | Language code, see Values. |
region |
string | Lowercase region code, e.g. en. |
release_date |
string or null | YYYY-MM-DD. |
total_cards |
integer or null | Total number of cards, including secret rares. |
printed_total |
integer or null | The card count printed on the cards themselves. |
logo_url |
string or null | Set logo image URL. |
symbol_url |
string or null | Set symbol image URL. |
cards_count |
integer | Number of visible cards in the set. |
products_count |
integer | Number of visible sealed products tied to the set. |
cards |
array of objects | Only with include=cards: the set's full card list, each card the same shape as GET /cards. |
products |
array of objects | Only with include=products: the set's sealed products, each the same shape as GET /products. |
curl "https://tcgplein.nl/api/v1/sets/sv1?include=cards,products" \
-H "Authorization: Bearer tcgp_live_K7mP2xQ9vZ4nR8wT3yL6bC1jD5sF0gH7uM2oA9iE"
Each card inside include=cards carries its own nested set
object, duplicating the parent set's basic fields. This is intentional (it keeps a single card object
usable on its own, the same shape GET /cards/{identifier}
returns) rather than a bug to work around.
150 of the catalog's 627 sets have no shortcut (mostly older, vintage sets).
Cards in those sets have friendly_id: null and can only be addressed by their
canonical id.