Pokemon TCG Cards Scraper - pokemontcg.io API Wrapper
Pricing
Pay per event
Pokemon TCG Cards Scraper - pokemontcg.io API Wrapper
Fetch Pokemon TCG card data from pokemontcg.io. Search by Lucene query, fetch by ID, walk a set, or list all sets. Returns attacks, weaknesses, set metadata, artist, rarity, regulation mark, format legality (Standard/Expanded/Unlimited), and live TCGPlayer + Cardmarket prices.
Pricing
Pay per event
Rating
0.0
(0)
Developer
BowTiedRaccoon
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Pokemon TCG Cards Scraper — pokemontcg.io API Wrapper
Fetches Pokemon Trading Card Game card data from pokemontcg.io. Four modes: search by Lucene query, fetch specific cards by ID, walk an entire set, or pull the full set list. Returns full card metadata, attacks, format legality, regulation mark, and live prices from TCGPlayer and Cardmarket.
No scraping. The data comes from a public REST API that the Pokemon TCG community has maintained for years — clean JSON, no CAPTCHAs, no browser emulation required.
Modes
| Mode | What it does | Required input |
|---|---|---|
search | Lucene query across all ~16k cards | query |
by_id | Fetch specific cards by ID | cardIds |
set_walk | All cards in a specific set | setId |
sets_list | All Pokemon TCG sets ever released | — |
Default mode is search. Leave the query blank to get everything (capped by maxItems).
Input
| Field | Type | Description |
|---|---|---|
mode | string | search / by_id / set_walk / sets_list |
query | string | Lucene query. Examples: name:charizard, subtypes:VMAX types:fire, hp:[100 TO 300], legalities.standard:Legal |
cardIds | array | Card IDs for by_id mode. Format: swsh1-1, base1-4, sv3pt5-3 |
setId | string | Set ID for set_walk. Examples: sv1, swsh4, base1, bw11 |
includePrices | boolean | Include TCGPlayer + Cardmarket price snapshots. Default: true |
apiKey | string | Optional. Free key from dev.pokemontcg.io raises daily limit to 20k requests |
maxItems | integer | Cap on results returned. 0 = unlimited |
proxyConfiguration | object | Optional datacenter proxy. The API is globally accessible without one |
Query Syntax
pokemontcg.io uses full Lucene query syntax. Useful examples:
name:pikachu # exact or fuzzy matchname:"Charizard VMAX" # exact phrasesubtypes:VMAX # subtype filtertypes:fire # energy typeset.id:sv3pt5 # specific setset.series:Scarlet\ \&\ Violet # full serieshp:[200 TO *] # HP range (200 and up)legalities.standard:Legal # format-legal cards onlyregulationMark:H # rotation mark Hrarity:"Hyper Rare" # specific rarityartist:PLANETA # by illustrator
Combine with AND / OR / NOT. The API handles the rest.
Output
Each card record includes:
| Field | Type | Description |
|---|---|---|
id | string | Unique card ID (e.g. swsh1-1) |
name | string | Card name |
supertype | string | Pokémon, Trainer, or Energy |
subtypes | string[] | V, VMAX, GX, EX, ex, Stage 1, Stage 2, etc. |
hp | string | Hit points |
types | string[] | Energy types (Fire, Water, etc.) |
evolvesFrom | string | Pre-evolution card name |
evolvesTo | string[] | Evolution card names |
rules | string[] | Rule-box text (V-RULE, VMAX RULE, etc.) |
attacks | string | JSON: list of attack objects [{name, cost, damage, text}] |
weaknesses | string | JSON: [{type, value}] |
resistances | string | JSON: [{type, value}] |
abilities | string | JSON: list of abilities [{name, text, type}] |
retreatCost | string[] | Retreat cost energy symbols |
convertedRetreatCost | integer | Numeric retreat cost |
set | string | JSON: set metadata {id, name, series, printedTotal, releaseDate, …} |
number | string | Collector number within set |
artist | string | Illustrator name |
rarity | string | Rarity string |
flavorText | string | Flavor text (older cards) |
nationalPokedexNumbers | string[] | Pokédex number(s) |
legalities | string | JSON: {standard, expanded, unlimited} — Legal, Banned, or absent |
regulationMark | string | Rotation mark: D, E, F, G, H (Scarlet & Violet era) |
images | string | JSON: {small, large} — CDN URLs for card art |
tcgplayer | string | JSON: TCGPlayer price snapshot {url, updatedAt, prices} |
cardmarket | string | JSON: Cardmarket price snapshot {url, updatedAt, prices} |
Sets List Output
When mode=sets_list, each record is a set:
| Field | Description |
|---|---|
id | Set ID (e.g. sv3pt5) |
name | Set name |
series | Block (e.g. Scarlet & Violet) |
printedTotal | Cards in official numbering |
total | Total cards including secret rares |
legalities | JSON: format legality |
ptcgoCode | PTCGO set code |
releaseDate | Release date |
updatedAt | Last data update |
images | JSON: logo and symbol URLs |
Rate Limits
Without an API key: 1,000 requests per day, 30 per minute. With a free API key: 20,000 requests per day.
Get a free key at dev.pokemontcg.io. Supply it via the apiKey input field — the actor attaches it as an X-Api-Key header automatically.
At 250 cards per page, a full set like Scarlet & Violet Base (198 cards) takes one to two API requests. A full catalogue fetch with no query filter pages through ~16k cards in roughly 64 API calls.
Use Cases
Price tracker. Pull all cards in a set with set_walk and includePrices: true. Both TCGPlayer and Cardmarket prices land in the same row — no join required.
Deck builder tooling. Search legalities.standard:Legal to get all Standard-legal cards. Filter by type, subtype, or regulation mark.
Rotation planning. Query regulationMark:H (or any mark) to see exactly which cards fall out on the next rotation. The mark changes every year; the query doesn't.
Collection management. Use by_id with a list of card IDs to bulk-enrich collection data with official art, set metadata, and current prices.
Catalogue join. This actor pairs naturally with Pokemon-adjacent scrapers — Limitless tournament data, auction results, graded card pop reports — using id or name as the join key.
About pokemontcg.io
pokemontcg.io is an open, community-maintained API covering every Pokemon TCG card released since Base Set. It powers most third-party Pokemon TCG tools. Data is updated as new sets release.
The API is free to use within rate limits. This actor calls it directly.
Support
Run into something unexpected? Use the feedback button on the actor page. Include the mode, query or card IDs used, and a sample of the unexpected output.