# pokemontcgapi.com > A complete Pokémon TCG REST API: every card and set in six languages, daily prices with stated provenance, card images, and a free tier. Cursor pagination, ETags, rate-limit headers, OpenAPI. Measured 2026-09-02: 615 sets, 52,337 cards and 2,088 sealed products across three print regions — 379 Japanese, 176 international, 60 Simplified Chinese — with names in 6 locales (en · ja · fr · de · es · it), 399 illustrators, images, and daily price observations that carry their source, basis, printing, grade, sample size and date. Live counts: https://api.pokemontcgapi.com/v1/status. REST over HTTPS, JSON only. Authentication is a single `X-Api-Key` header. Collections page with an opaque cursor and every sort ends with `id` as a tiebreaker, so paging never repeats or drops a row. Errors always carry a stable `error.code`; a client mistake is never a 5xx. The API base URL is https://api.pokemontcgapi.com. One prefix, `/v1`, returning {data, meta, links} on every collection. WHAT EVERY CARD CARRIES: - Identity: a stable `id` built from set code and number, a `legacy_id`, a `slug`, and `row_version` for change tracking through `/v1/changes`. - Set and position: `set_code`, `set_name`, `series`, `print_region`, `release_date`, `set_total`, `number` and `number_sort`. - Printing details: `supertype`, `rarity`, `regulation_mark`, and the illustrator as `artist_name` / `artist_slug` (399 illustrators, `/v1/artists`). - Names in up to six locales (en, ja, it, es, de, fr) via `?include=translations`, or swapped into `name` with `?lang=`. - Images: front images in several sizes per locale, served from img.pokemontcgapi.com. - `jp_twin_id`: the link between a Western printing and its Japanese counterpart, on 18,620 cards. - Prices: `index_eur` and `last_price_at` on the card; `?include=prices` or `/v1/cards/{id}/prices` returns every observation with source, basis, variant, condition, currency, capture date and a printable provenance string; `/v1/cards/{id}/prices/history` and `/stats` for the series, `/v1/prices/movers` from the Growth plan up. SEALED PRODUCTS (`/v1/sealed`, `/v1/sealed/{id}`, `/v1/sealed/{id}/prices`): - Booster boxes, elite trainer boxes, tins, blisters, collections and other kinds, filterable with `?kind=` and `?set=`. - `id` is the `sku`; `slug`, `name` (six locales via `?lang=`), `kind`, `set_code`, `image_url`, `release_date`, `pack_count`, `languages`, `index_eur`, `last_price_at`. - Price observations with the same shape as cards, minus condition, printing and grading. CHANGE FEED: `/v1/changes?since=` is an append-only, trigger-written log of catalogue mutations (kinds CARD, SET, SEALED, PRICE, IMAGE) with monotonic ids. Query field names are camelCase and dotted (`set.code`, `set.releaseDate`, `nationalPokedexNumbers`); response keys are snake_case (`set_code`). Leading wildcards are rejected — `name:charizard` already matches as a substring. Every documentation page below is the markdown twin of its HTML page; drop the trailing `/md` for the human version. ## Getting started - [Introduction](https://pokemontcgapi.com/docs/index/md): A REST API for Pokemon TCG cards, sets, artists and prices, with one response shape and pagination that never repeats or drops a row. - [Quickstart](https://pokemontcgapi.com/docs/quickstart/md): Get a key, make your first request, and page a full set correctly — in about three minutes. - [Authentication](https://pokemontcgapi.com/docs/authentication/md): API keys, the two key types, where to put them, and how to survive a leak. - [Rate limits & credits](https://pokemontcgapi.com/docs/rate-limits/md): Two independent limits — requests per second and credits per period — and what happens when you cross either. ## Core concepts - [Pagination](https://pokemontcgapi.com/docs/pagination/md): Cursor paging that never repeats or drops a row, and why there is no page parameter. - [Query syntax](https://pokemontcgapi.com/docs/query-syntax/md): The complete Lucene-style grammar accepted by the q parameter: fields, phrases, boolean operators, negation, exact match, wildcards and ranges — and which fields hold data today. - [Errors](https://pokemontcgapi.com/docs/errors/md): One error shape, 21 codes, and what to do about each one. - [Caching & ETags](https://pokemontcgapi.com/docs/caching-etags/md): Conditional requests cost no credits — how to store ETags, revalidate, and pick a cache layer. - [Versioning](https://pokemontcgapi.com/docs/versioning/md): One path prefix, what it guarantees, what may change without notice, and how a deprecation would be announced. ## API reference - [API reference](https://pokemontcgapi.com/docs/api/md): Every endpoint, with its credit cost and minimum plan. - [Search cards](https://pokemontcgapi.com/docs/api/cards/search/md): Query 52,337 cards with Lucene syntax, keyset pagination, field projection and price sorting. - [Get a card](https://pokemontcgapi.com/docs/api/cards/get/md): Fetch one card by our id or its alternate `{set}-{number}` id, with prices, images and translations on request. - [Batch cards](https://pokemontcgapi.com/docs/api/cards/batch/md): Resolve up to 100 card ids in one request instead of 100 round trips. - [List sets](https://pokemontcgapi.com/docs/api/sets/list/md): All 615 sets with release date, totals, print region and series, newest first. - [Get a set](https://pokemontcgapi.com/docs/api/sets/get/md): One set by code, slug or alternate id. - [Cards in a set](https://pokemontcgapi.com/docs/api/sets/cards/md): Every card in a set, in collection order, with correct paging past 250 rows. - [List artists](https://pokemontcgapi.com/docs/api/artists/list/md): All 399 credited illustrators with a card count, searchable by name. - [Get an artist](https://pokemontcgapi.com/docs/api/artists/get/md): One illustrator by slug. - [List series](https://pokemontcgapi.com/docs/api/series/list/md): The blocks that group sets — Base, EX, Sword & Shield, Scarlet & Violet — with the number of sets in each. - [List sealed products](https://pokemontcgapi.com/docs/api/sealed/list/md): Booster boxes, elite trainer boxes, tins, blisters and collections: 2,088 products with names in six locales, images and prices. - [Get a sealed product](https://pokemontcgapi.com/docs/api/sealed/get/md): One sealed product by sku or slug. - [Reference lists](https://pokemontcgapi.com/docs/api/reference/lists/md): Every closed vocabulary the API uses — locales, currencies, print regions, conditions, printings, graders, price variants and bases, change kinds, image faces and sizes — in one response. - [Service status](https://pokemontcgapi.com/docs/api/status/get/md): Catalogue counts, the age of each ingest job and whether the upstream contract still holds — the numbers this site quotes, straight from the service. - [Current prices](https://pokemontcgapi.com/docs/api/prices/current/md): Every live price series for one card — one row per source, variant, printing and grade — plus the composite index in EUR. - [Current prices of a sealed product](https://pokemontcgapi.com/docs/api/prices/current-sealed/md): The live price series of one sealed product, in the same shape as the card route. - [Current prices, in batch](https://pokemontcgapi.com/docs/api/prices/batch/md): The current prices of up to 50 cards in one request, for a list, a collection or a deck. - [Price history](https://pokemontcgapi.com/docs/api/prices/history/md): A time series for one card: one point per day, week or month, per source and variant. - [Price stats](https://pokemontcgapi.com/docs/api/prices/stats/md): Low, high, median, first, last and the percentage change of the composite index over a window. - [Movers](https://pokemontcgapi.com/docs/api/prices/movers/md): The cards whose composite index rose or fell the most over a window. - [Price sources](https://pokemontcgapi.com/docs/api/prices/sources/md): The redistribution policy in the open: every source that can appear in a price row, with its label and minimum delay. - [List changes](https://pokemontcgapi.com/docs/api/changes/list/md): An append-only feed of catalogue mutations, so a mirror can resync without refetching everything. - [Bulk snapshots](https://pokemontcgapi.com/docs/api/bulk/list/md): Signed links to whole-catalogue exports. Planned; not served today. - [Identify a card from a photo](https://pokemontcgapi.com/docs/api/vision/identify/md): Send a photograph, get back the cards it could be, ranked, with a distance you can threshold yourself. ## Objects - [Objects](https://pokemontcgapi.com/docs/objects/md): Field-by-field reference for every shape the API returns. - [Card](https://pokemontcgapi.com/docs/objects/card/md): A single printed card: identity, printing, artwork, set membership and the ids that link it to external marketplaces. - [Set](https://pokemontcgapi.com/docs/objects/set/md): An expansion: codes, totals, release date, print region and the artwork that identifies it. - [Sealed product](https://pokemontcgapi.com/docs/objects/sealed/md): A booster box, elite trainer box, tin, blister or collection: the unit a shop sells and a collector keeps shrink-wrapped. - [Artist](https://pokemontcgapi.com/docs/objects/artist/md): An illustrator, with a maintained count of the cards they drew. - [Price](https://pokemontcgapi.com/docs/objects/price/md): One price observation: what it is, where it came from, and when it was seen. - [Image](https://pokemontcgapi.com/docs/objects/image/md): One rendition of a card face, with the rights holder named. - [Error](https://pokemontcgapi.com/docs/objects/error/md): The one body every failing request returns, whatever the status. ## Machine-readable - [OpenAPI document](https://pokemontcgapi.com/openapi.json): OpenAPI 3.1.0 for every operation the service actually serves. Generated from the same manifest as these docs. - [Coverage](https://pokemontcgapi.com/coverage): Sets per print region, locales, date range and price sources — every figure read live from the API with the endpoint that produced it. - [Coverage as JSON](https://pokemontcgapi.com/coverage.json): The machine twin of the coverage page. Free to quote with attribution. - [Full documentation in one file](https://pokemontcgapi.com/llms-full.txt): Every documentation page concatenated, for a single fetch instead of forty. ## SDKs and agents - [MCP server](https://pokemontcgapi.com/mcp): @pokemontcgapi/mcp — seven read-only tools for Claude, Cursor, VS Code and any MCP client. Install with: npx -y @pokemontcgapi/mcp - [TypeScript SDK](https://pokemontcgapi.com/sdk): @pokemontcgapi/sdk — zero runtime dependencies, typed errors, pagination that follows itself. Install with: npm install @pokemontcgapi/sdk ## Optional - [Free API key](https://pokemontcgapi.com/free-api-key): What the free tier covers and how to ask for a key. - [Pricing](https://pokemontcgapi.com/pricing): Plans, allowances and rate limits per plan. - [Changelog](https://pokemontcgapi.com/changelog): Dated release notes. Atom feed at /changelog.xml. - [Card sets](https://pokemontcgapi.com/sets): Every set in the catalogue, with card counts and release dates. - [Use cases](https://pokemontcgapi.com/use-cases): Worked walkthroughs against real endpoints, with the traps named. - [Price methodology](https://pokemontcgapi.com/price-methodology): How price observations are sourced, delayed and aggregated. - [Attribution](https://pokemontcgapi.com/legal/attribution): Data sources and the attribution required when redistributing.