OrbTop

Pokemon TCG Cards Scraper - pokemontcg.io API Wrapper

ECOMMERCEGAMES

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 match
name:"Charizard VMAX"              # exact phrase
subtypes:VMAX                      # subtype filter
types:fire                         # energy type
set.id:sv3pt5                      # specific set
set.series:Scarlet\ \&\ Violet     # full series
hp:[200 TO *]                      # HP range (200 and up)
legalities.standard:Legal          # format-legal cards only
regulationMark:H                   # rotation mark H
rarity:"Hyper Rare"                # specific rarity
artist: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.