Cardmarket Price Guide - Pokemon Card & Booster Box Prices
Pricing
from $0.86 / 1,000 results
Cardmarket Price Guide - Pokemon Card & Booster Box Prices
Daily Cardmarket prices for Pokemon, Magic, Yu-Gi-Oh and 18 more games: single cards and sealed products like booster boxes and ETBs. Trend, low, 1/7/30-day averages.
Pricing
from $0.86 / 1,000 results
Rating
0.0
(0)
Developer
Lowland Data
Maintained by CommunityActor stats
0
Bookmarked
11
Total users
3
Monthly active users
0.86 hours
Issues response
4 days ago
Last modified
Categories
Share
Daily European market prices for every trading card game on Cardmarket (Pokémon, Magic: The Gathering, Yu-Gi-Oh!, Disney Lorcana, One Piece and 16 more) as clean, analysis-ready JSON. Single cards, and sealed products: booster boxes, boosters, elite trainer boxes, tins, box sets. One row per product: trend price, lowest listing, 1/7/30-day sale averages, foil variants, a momentum signal, and a direct link to the product's own Cardmarket page.
Live health record: lowlanddata.com/status/cardmarket-price-guide - 30-day success rate and daily canary results, failures included. Full input/output reference: tool page.
No scraping is involved: the actor reads the price guide files Cardmarket itself publishes daily. That is why a filtered run finishes in seconds, never breaks on a site redesign, and never touches a seller: there is no personal data in the source or the output.
Quick start (30 seconds)
- Pick a game (Pokémon is the default).
- Pick Products: single cards (the default), sealed products, or both.
- Type a name filter (try the prefill, or
booster boxfor sealed) or leave it empty to export the whole game. - Hit Start. Seconds later you have rows like:
{"productId": 274406,"name": "Charizard ex [151]","game": "Pokémon","productType": "card","category": "Pokémon Single","expansionId": 5320,"priceLowEur": 3.9,"priceAvgEur": 28.56,"priceTrendEur": 23.99,"avg1DayEur": 17,"avg7DayEur": 15.43,"avg30DayEur": 27.11,"foilTrendEur": 14.01,"foilAvg30DayEur": 11.47,"trendVsAvg30Pct": -11.5,"currency": "EUR","priceGuideDate": "2026-08-28","productUrl": "https://www.cardmarket.com/en/Pokemon/Products?idProduct=274406"}
productUrl opens the product's own page on Cardmarket: offers, versions, the lot.
Sealed products
Cardmarket's daily guide prices sealed products next to the cards. Set Products to sealed (or both) and they come back as rows with productType: "sealed" and Cardmarket's own category:
{"name": "Phantom Forces Booster Box","game": "Pokémon","productType": "sealed","category": "Pokémon Display","priceTrendEur": 2239.24,"priceGuideDate": "2026-09-14"}
What the Pokémon guide of 2026-09-14 prices, by Cardmarket category:
| Category | Products with a trend price |
|---|---|
| Box sets (collections) | 944 |
| Boosters | 720 |
| Coins | 639 |
| Displays (booster boxes) | 504 |
| Tins | 489 |
| Theme decks | 460 |
| Blisters | 392 |
| Elite trainer boxes | 164 |
| Lots, full sets, trainer kits | 55 |
Magic, Yu-Gi-Oh!, One Piece and Lorcana have sealed lists too. A game without one fails with that message instead of an empty run.
For sealed products Cardmarket publishes the trend price and the lowest offer, but no 1, 7 or 30-day sale averages: on the 2026-09-14 guide none of the 2,914 Pokémon sealed products over €20 had one. On sealed rows those columns and trendVsAvg30Pct are null, so sort sealed runs by trend, not by momentum. Cardmarket does not separate a sealed box from a resealed one either, so treat very old product accordingly.
What the price means, and what you will see when you click
Worth being straight about, because it surprises people: the number on that page will usually not be the number in your row, and neither is wrong.
Cardmarket's product page leads with From, the cheapest copy on sale right now. This actor leads with priceTrendEur, Cardmarket's own trend price: what the product has actually been selling for. The two drift apart in both directions, and the gap is often large:
| Card (2026-09-09 guide) | Trend price | Cheapest offer on the page |
|---|---|---|
| Sobble (S-P 146) | €53.84 | €29.88 |
| Celebratory Fanfare (254) | €230.12 | €400.00 |
If you want the number the page shows, use priceLowEur: that is the same figure as From, to the cent. Use priceTrendEur when you want what the market pays, and priceLowEur when you want what it costs to buy one today.
Two more things the page makes obvious:
- The offers mix conditions, languages and graded slabs. On one ordinary card the list runs from a €29.88 near-mint raw copy to a €999 PSA 10, with BGS and CGC copies in between. Cardmarket's averages are computed across that mix, so a single "price" for a card is inherently a blend, not a quote for a specific copy.
- Graded cards are not separated out. There is no field that says "raw only", because the source does not publish one.
Freshness
Cardmarket publishes one price guide per game per day, overnight: today's Pokémon file was stamped 02:45 CET. priceGuideDate on every row tells you exactly which file the numbers came from. Running more often than daily returns the same file again, so a daily schedule is the most this data can support.
Who uses this
- Shop owners and repricers bulk-price inventory against today's EU market: one run, one game, every card, then
priceTrendEurinto the repricing sheet. - Sealed investors and shops track booster box and elite trainer box prices across every set in one run:
productType: sealed,searchQuery: booster box. - Collectors value a binder without clicking through hundreds of product pages. Filter by
expansionIdsand export the set. - Arbitrage hunters sort by
momentumto catch cards trading ahead of their own 30-day average before the rest of the market prices it in. - Data analysts schedule a daily run and keep the datasets: that is a price history for an entire game, at a fraction of what card-data APIs charge.
What you can do with it
- Follow the cards you actually hold: filter to a set or a name, put it on a daily schedule, and keep the rows. That is a price history of your own collection for cents a day.
- Watch sealed prices: every booster box of a game is a few hundred rows. Schedule it daily and you have a sealed price index.
- Spot movers:
trendVsAvg30Pctat +25 means a product trades a quarter above its recent norm, heating up. Sort bymomentumto rank the whole game. - Price a shop inventory in bulk when you need it: the whole Pokémon guide is ~65,000 priced cards in one run.
- Feed repricers, spreadsheets and bots: stable JSON columns, EUR everywhere, one id per product, a clickable page per row.
- Compare markets: this is the EU side of the market, from the marketplace where Europe actually buys. Pair it with the Pokemon Card Arbitrage actor for the EU-vs-US spread.
Which games are covered?
All 21 games Cardmarket publishes a price guide for. Card counts were read from Cardmarket's own files on 2026-09-09; "priced" means the marketplace has published a trend or average price, and the rest are catalogued but have not sold often enough yet.
| Game | Input value | Cards priced | Cards catalogued |
|---|---|---|---|
| Magic: The Gathering | magic | 123,781 | 126,715 |
| Yu-Gi-Oh! | yugioh | 78,770 | 89,213 |
| Pokémon | pokemon | 69,617 | 78,244 |
| Cardfight!! Vanguard | cardfightvanguard | 26,468 | 28,409 |
| Weiss Schwarz | weissschwarz | 24,640 | 29,193 |
| Flesh and Blood | fleshandblood | 16,552 | 18,002 |
| Dragon Ball Super | dragonballsuper | 13,504 | 13,859 |
| One Piece | onepiece | 12,802 | 13,187 |
| Digimon | digimon | 9,549 | 9,806 |
| Star Wars Unlimited | starwarsunlimited | 7,890 | 8,146 |
| Force of Will | forceofwill | 7,736 | 8,629 |
| World of Warcraft | worldofwarcraft | 7,662 | 7,904 |
| Final Fantasy TCG | finalfantasy | 5,476 | 5,587 |
| Disney Lorcana | lorcana | 3,587 | 3,636 |
| Star Wars: Destiny | starwarsdestiny | 1,842 | 2,361 |
| My Little Pony | mylittlepony | 1,803 | 2,345 |
| Battle Spirits Saga | battlespiritssaga | 1,787 | 1,916 |
| The Spoils | thespoils | 1,642 | 2,340 |
| Riftbound | riftbound | 1,522 | 1,550 |
| Dragoborne | dragoborne | 679 | 747 |
| Cyberpunk | cyberpunk | 2 | 313 |
Not supported yet
Gundam is the one game not covered: Cardmarket publishes its product catalogue but no price guide file, so there is nothing to price against. It goes in the day they publish one.
A game the marketplace has only just listed carries a full catalogue and an almost empty price guide, which is why Cyberpunk sits at the bottom of that table. A run on one of those comes back empty under the default onlyPriced and says so, rather than looking broken; set onlyPriced to false to export the catalogue anyway.
How much does it cost?
$1.00 per 1,000 rows plus $0.005 per run, on the standard tier. Filtering happens before delivery, so you pay for the rows you keep and almost nobody needs a whole game:
- A name filter like "charizard" across all of Pokémon: a few cents.
- Every Pokémon booster box (~500 rows): about $0.50 a run.
- Watching one set (~250 cards) daily: about $0.25 a day, so roughly $7.50 a month against the $19–149 a month the card-price APIs charge for the same underlying numbers.
- The full Pokémon guide (~65k rows): about $65. That is the bulk case, worth it to price a shop's entire inventory in one go and the wrong tool for valuing a binder. Filter to the sets you hold instead.
Not technical? Let your AI assistant set it up
Paste this to Claude, ChatGPT or Cursor along with what you want to track:
I want daily card prices from the Apify actor lowlanddata/cardmarket-price-guide.Build me the input JSON.Fields:- game: one of pokemon, magic, yugioh, lorcana, onepiece, digimon, fleshandblood,starwarsunlimited, dragonballsuper, finalfantasy, weissschwarz, cardfightvanguard,battlespiritssaga, riftbound, forceofwill, starwarsdestiny, mylittlepony,worldofwarcraft, thespoils (default pokemon)- productType: cards | sealed | both (default cards; sealed = booster boxes, ETBs, tins...)- searchQuery: case-insensitive name filter, empty = whole game (optional)- expansionIds: array of numeric Cardmarket expansion ids (optional)- priceMinEur / priceMaxEur: price band on the trend price (optional)- onlyPriced: skip products with no price data (default true)- sortBy: trend_desc | trend_asc | momentum | name (default trend_desc)- maxItems: cap on delivered rows (default 1000)Here is what I want to track: <describe your cards, sealed products, sets or price band>Give me the JSON only, then tell me how to schedule this daily on the actor page.
Input
| Field | What it does |
|---|---|
game | Which TCG to price (default pokemon). |
productType | cards (default), sealed (booster boxes, ETBs, tins...) or both. |
searchQuery | Case-insensitive name filter. Empty = the whole game. |
expansionIds | Keep only these Cardmarket expansion ids (visible in every row). |
priceMinEur / priceMaxEur | Price band on the trend price. |
onlyPriced | Skip products with no regular-variant price data (default on). |
sortBy | trend_desc (default), trend_asc, momentum, or name. |
maxItems | Cap on delivered rows. |
Finding an expansion id
Cardmarket publishes no public list of set names, so sets are filtered by numeric id. Run once with a name filter, read expansionId off the rows you want (the run log also lists the dominant ids in your result) then re-run with just the ids and a high maxItems. Opening any row's productUrl shows which set an id belongs to.
Use it from your code
curl -X POST \"https://api.apify.com/v2/acts/lowlanddata~cardmarket-price-guide/run-sync-get-dataset-items?token=$APIFY_TOKEN" \-H 'Content-Type: application/json' \-d '{"game":"pokemon","productType":"sealed","searchQuery":"booster box","sortBy":"trend_desc","maxItems":100}'
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('lowlanddata/cardmarket-price-guide').call({game: 'magic',expansionIds: [5320],maxItems: 500,});const { items } = await client.dataset(run.defaultDatasetId).listItems();
from apify_client import ApifyClientclient = ApifyClient(token=os.environ["APIFY_TOKEN"])run = client.actor("lowlanddata/cardmarket-price-guide").call(run_input={"game": "lorcana","priceMinEur": 5,"sortBy": "trend_desc",})for card in client.dataset(run["defaultDatasetId"]).iterate_items():print(card["name"], card["priceTrendEur"])
Even a whole-game export fits comfortably inside the 300-second synchronous wall: the data is a file read, not a crawl.
Use it with AI agents (MCP)
Claude, Cursor and other MCP-capable agents can run this actor as a tool through Apify's hosted MCP server: the agent picks the filters and reads the prices, no glue code.
Claude Code:
$claude mcp add apify --transport http "https://mcp.apify.com?actors=lowlanddata/cardmarket-price-guide"
Cursor or Claude Desktop (add a custom connector / MCP server with this URL):
https://mcp.apify.com?actors=lowlanddata/cardmarket-price-guide
Sign in with your Apify account when prompted. Runs are billed to it. Setup details per client: Apify MCP docs, or start from this actor's own MCP page: apify.com/lowlanddata/cardmarket-price-guide/api/mcp.
Prompts that work once connected:
- "What are the ten fastest-rising Pokémon cards on Cardmarket right now?"
- "What does every Scarlet & Violet booster box cost on Cardmarket today?"
- "Which Lorcana cards over €5 are trading below their 30-day average?"
Is it legal to use Cardmarket's price guide?
Yes. Cardmarket publishes these price files openly, refreshed daily: the actor reads exactly what the marketplace itself makes public. Nothing is crawled, no login, no anti-bot measures, nothing circumvented. And the data is aggregate market statistics: no seller identity, no listing text, no personal data of any kind, so the output is safe to store, share and resell downstream.
FAQ
Where do the prices come from? Cardmarket's official daily price guide, the same figures shown on cardmarket.com product pages.
Does it include booster boxes and other sealed products? Yes: set productType to sealed or both. Booster boxes are the Pokémon Display category on Pokémon; every sealed row says its category.
How fresh is the data? Refreshed once a day by Cardmarket; every row carries its priceGuideDate. A daily schedule right after the refresh (early morning CET) gives you a continuous price history if you keep the datasets.
What is the trend price? Cardmarket's own smoothed market price, the number the marketplace shows as "the" price of a product. avg1/avg7/avg30 are averages of actual sales over 1, 7 and 30 days; priceLowEur is the cheapest current listing.
What does trendVsAvg30Pct mean? How far today's trend price sits from the product's own 30-day sale average, in percent. Sort by momentum to rank the whole game by it.
What are the foil columns? The same statistics for the foil/holo variant, where one exists. null means Cardmarket has no data for that variant; sealed products have none.
Why do some products have no prices at all? Very illiquid products may have no recent sales. They are skipped by default; set onlyPriced to false to include them.
Does this include graded cards (PSA/BGS)? No, Cardmarket trades raw cards, and this guide prices raw singles and sealed products. Graded cards are a different market.
What's the cheapest way to watch 50 specific cards? Filter one expansion plus a price band, or run per-name tasks. maxItems hard-caps spend either way.
Can I see individual offers or sellers? Not here: this is the aggregate guide. For live underpriced offers on specific cards, use the Cardmarket Scraper - Pokemon Card Deals.
Related actors
- Cardmarket Scraper - Pokemon Card Deals & Listings: live offers priced well under trend, per card.
- Pokemon Card Price Tracker & Spike Alerts: the cards and sealed products moving right now, or an alert when yours move.
- Pokemon Card Arbitrage - Cardmarket vs TCGplayer: EU vs US spreads on the same cards.
Troubleshooting
- A card you expected is missing. Check
onlyPriced: illiquid cards without price data are skipped by default. Looking for a booster box? SetproductTypetosealed. productUrlis null: a handful of games (Star Wars: Destiny, My Little Pony, World of Warcraft, The Spoils) have no stable public site path; the prices are still real.- Zero rows on a name filter: the catalog names variants in brackets ("Mew ex [Genome Hacking]"); try a shorter fragment of the name.
- "Sealed products are unsupported for this game": Cardmarket publishes no sealed list for it. Use
productType: cards.
Something else off? Open an issue on the Issues tab. It is read daily. And if the prices are earning their keep, a rating on this page takes ten seconds and helps other card people find the data.