cards

Get a card

Fetch one card by our id or its alternate {set}-{number} id, with prices, images and translations on request.

get/v1/cards/{id}

Request

  • Base URL: https://api.pokemontcgapi.com
  • URL: https://api.pokemontcgapi.com/v1/cards/{id}
  • Auth: API key in header X-Api-Key

Path parameters

idstring required

Our public id (bs-4) or the alternate legacy_id, a string of the same {set}-{number} form (base1-4). Both resolve to the same row, so ids you already have stored need no translation table. An id written with the set slug in place of the set code resolves too — 30th-celebration-001 answers with the card whose id is 30c-001 — and the response always carries the canonical id.

Query parameters

selectstring

Comma-separated card fields to return. id is always included. camelCase and snake_case both resolve, so nationalPokedexNumbers works and comes back as national_pokedex_numbers. An unknown name is INVALID_SELECT_FIELD, with the full list in details.valid_fields.

includestring

Comma-separated relations to expand: index, prices, translations, images, set, artist. Each one is an extra join, so ask only for what you render. include=index puts index_eur and last_price_at on the rows of a list or batch, at 1 credit per 50 cards requested. Without it they are not there: a select that names them gets rows without them and meta.withheld: ["index"], and an orderBy on them is 400 INVALID_PARAMETER. include=prices is how you get the per-source price breakdown, index included, and it makes the call a price call: 4 credits per 25 cards on a list or batch, 2 on a single card, and the rows are filtered by your plan exactly as on the price routes, with meta.withheld (the X-Plan-Withheld header on a single card) naming what was held back. A single card carries its index whatever you include. legalities is not an accepted value and is rejected with 400 INVALID_INCLUDE.

langstring

Locale for the card name: en, fr, de, ja, it, es, pt, zh — the eight with translation rows in the catalogue. A card with no translation in the requested locale falls back to English rather than to null.

Headers

If-None-Matchstring

Send back the ETag you stored. The API returns a strong ETag on every catalogue response, and a 304 is a header exchange: no body, no database row read.

Response

Success

object required

Changes

No recorded changes to this operation across all 1 revision of this API.