TCGdex API
Free Pokémon Trading Card Game API with no key: every set and card in 10+ languages, with images, card counts and full card data. Tested curl example included.
Endpoint tested and returned HTTP 200 on 21 Aug 2026
What is the TCGdex API?
TCGdex is a free, open-source Pokémon Trading Card Game API that requires no API key. It serves every set and card ever printed, with multilingual data in more than ten languages plus card images, and offers both a REST and a GraphQL interface.
TCGdex covers the entire Pokémon TCG back to Base Set in 1999, and its distinguishing feature is language coverage. The language code sits directly in the path — `/v2/en/sets`, `/v2/fr/sets`, `/v2/ja/sets` — so building a card app for a non-English audience needs no translation layer of your own, which is rare among free game APIs.
The data model is two levels deep and predictable: `/sets` lists every set with an id and card count, and `/sets/{id}` expands to the full card list for that set. Card images are served from a separate assets CDN and the URLs come back without an extension, so you append the quality and format you want, such as `/high.png` or `/low.webp`.
Quick facts
- Base URL
https://api.tcgdex.net/v2- Authentication
- No API key, no account, no rate-limit headers. The whole dataset is open source on GitHub and community-maintained.
- Rate limit
- No published limit. Responses are CDN-cached, so repeated reads are cheap.
- Pricing
- Free and open source (MIT).
- CORS
- Enabled — callable directly from browser JavaScript
- Official docs
- Read the docs
How to use the TCGdex API
Every request below was executed against the live API on 21 Aug 2026, and the response shown is the real body it returned — not an illustration.
1. List every Pokémon TCG set in English
GET https://api.tcgdex.net/v2/en/sets
curl 'https://api.tcgdex.net/v2/en/sets'const res = await fetch("https://api.tcgdex.net/v2/en/sets");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://api.tcgdex.net/v2/en/sets", timeout=20)
res.raise_for_status()
print(res.json())[
{
"id": "miscp",
"name": "Miscellaneous Promos",
"cardCount": {
"total": 1,
"official": 1
}
},
{
"id": "base1",
"name": "Base Set",
"logo": "https://assets.tcgdex.net/en/base/base1/logo",
"cardCount": {
"total": 102,
"official": 102
}
},
{
"id": "base2",
"name": "Jungle",
"logo": "https://assets.tcgdex.net/en/base/base2/logo",
"symbol": "https://assets.tcgdex.net/univ/base/base2/symbol",
"cardCount": {
"total": 64,
"official": 64
}
},
{
"id": "basep",
"name": "Wizards Black Star Promos",
"logo": "https://assets.tcgdex.net/en/base/basep/logo",
"symbol": "https://assets.tcgdex.net/univ/base/basep/symbol",
"cardCount": {
"total": 53,
"official": 53
}
},
{
"id": "wp",
"name": "W Promotional",
"cardCount": {
"total": 7,
"official": 7
}
},
{
"id": "base3",
"name": "Fossil",
"logo": "https://assets.tcgdex.net/en/base/base3/logo",
"symbol": "https://assets.tcgdex.net/univ/base/base3/symbol",
"cardCount": {
"total": 62,
"official": 62
}
},
{
"id": "jumbo",
"name": "Jumbo cards",
"cardCount": {
"total": 160,
"official": 160
}
},
{
"id": "base4",
"name": "Base Set 2",
"logo": "https://assets.tcgdex.net/en/base/base4/logo",
"symbol": "https://assets.tcgdex.net/univ/base/base4/symbol",
"cardCount": {
"total": 130,
"official": 130
}
},
{
"id": "base5",
"name": "Team Rocket",
"logo": "hParameters
| Parameter | Type | Required | Description |
|---|---|---|---|
lang | path segment | Required | Two-letter language code: `en`, `fr`, `de`, `es`, `it`, `pt`, `ja`, `ko`, `zh-tw`, `id`, `th`, `nl`, `pl`, `ru`. en |
resource | path segment | Required | `sets`, `cards`, `series`, `types`, `rarities` or any of the other filterable attributes. sets |
id | path segment | Optional | A set or card id, appended to expand a single record with its full data. base1 |
pagination:page | query | Optional | Page through large collections such as the full card list. Pairs with `pagination:itemsPerPage`. 1 |
Response fields
idstring- Stable set identifier such as `base1` or `swsh12`, used to fetch that set's cards.
namestring- Set name in the requested language.
logo / symbolstring- Asset base URLs with no file extension — append `/high.png`, `/low.webp` and so on. Both are absent for sets that never had artwork, so guard for undefined.
cardCount.totalinteger- Every card in the set including secret rares.
cardCount.officialinteger- The printed set size — the denominator on the card, for example the 102 in 4/102.
What you can build with the TCGdex API
- Build a Pokémon card collection tracker with images and set completion
- Add a card search or lookup to a Discord bot
- Populate a deckbuilder with legal cards for a given set or series
- Localise a TCG app for French, Japanese or Korean players without your own translations
Common errors and how to fix them
404
Unknown language code, set id or card id.
Fix: Language codes are lowercase two-letter, with `zh-tw` the exception. Set ids are lowercase alphanumeric — fetch `/sets` first rather than guessing.
Missing logo / symbol
Not an error: older and promotional sets often have no artwork.
Fix: Always null-check these fields before building an image URL.
TCGdex API — frequently asked questions
Is the TCGdex API free and does it require an API key?
It is completely free and needs no key or account. TCGdex is an open-source, community-maintained project and the underlying dataset is published on GitHub under the MIT licence.
How do I get Pokémon card images from TCGdex?
The `logo`, `symbol` and card `image` fields are base URLs without a file extension. Append a quality and format — for example `/high.png` for full resolution or `/low.webp` for thumbnails — to build a usable image URL.
Which languages does TCGdex support?
More than ten, including English, French, German, Spanish, Italian, Portuguese, Japanese, Korean, Traditional Chinese, Indonesian, Thai, Dutch, Polish and Russian. The language is the first path segment, so switching is a one-token change.
Does TCGdex include card prices?
No. It covers card data, sets and images. Market prices come from separate commercial sources, so pair it with a pricing API if your app needs valuations.
Tools that pair with this API
JSON Formatter
Format, beautify and minify JSON online with 2-space, 4-space or tab indentation. Sort keys alphabetically and catch syntax errors instantly — free and private.
JSON to CSV Converter
Convert a JSON array of objects to CSV online. Automatic column headers from the union of all keys, delimiter choice and proper quoting — all in-browser.
Image to Base64 Converter
Convert an image to a Base64 data URL online. Get copy-ready HTML img tags and CSS background-image snippets. Free, instant and fully private.
Alternatives to TCGdex API
If TCGdex does not fit, these game & anime apis cover similar ground. Every one was called before publishing, and each links to its own reference page with a working curl command and the response it returned.
| API | What it does | Auth | CORS | Last verified |
|---|---|---|---|---|
| PokéAPI | Free Pokémon API with no key: stats, types, abilities, moves, evolutions and sprites for 1,000+ species. The most popular API for learning REST. Tested example. | No key | Yes | 19 Aug 2026 |
| Rick and Morty API | Free Rick and Morty API with no key: 800+ characters, episodes and locations with images, filtering and pagination. REST and GraphQL. Tested example. | No key | Yes | 19 Aug 2026 |
| Jikan (MyAnimeList) | Free unofficial MyAnimeList API with no key: anime and manga data, scores, characters, staff and seasonal listings. Tested curl example and live JSON. | No key | Yes | 19 Aug 2026 |
| Deck of Cards | Free playing card API with no key: shuffle decks, draw cards, manage piles and get card images. Stateful deck ids. Tested curl example and live JSON. | No key | Yes | 19 Aug 2026 |
| TETR.IO Tetra Channel | Free TETR.IO Tetra Channel API with no key: player records, TETRA LEAGUE ranks, global leaderboards and live service-wide statistics. Tested example and real response. | No key | No | 21 Aug 2026 |
| trace.moe | Free reverse image search for anime with no API key. Send a screenshot URL and trace.moe returns the series, episode and exact timestamp, with a video preview. Live example. | No key | Yes | 21 Aug 2026 |
TCGdex is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 21 Aug 2026; always check the official documentation before relying on this API in production, as terms and limits can change.