Cardmarket Price Guide - Pokemon Card & Booster Box Prices avatar

Cardmarket Price Guide - Pokemon Card & Booster Box Prices

Pricing

from $0.86 / 1,000 results

Go to Apify Store
Cardmarket Price Guide - Pokemon Card & Booster Box Prices

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

Lowland Data

Maintained by Community

Actor stats

0

Bookmarked

11

Total users

3

Monthly active users

0.86 hours

Issues response

4 days ago

Last modified

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)

  1. Pick a game (Pokémon is the default).
  2. Pick Products: single cards (the default), sealed products, or both.
  3. Type a name filter (try the prefill, or booster box for sealed) or leave it empty to export the whole game.
  4. 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:

CategoryProducts with a trend price
Box sets (collections)944
Boosters720
Coins639
Displays (booster boxes)504
Tins489
Theme decks460
Blisters392
Elite trainer boxes164
Lots, full sets, trainer kits55

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 priceCheapest 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 priceTrendEur into 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 expansionIds and export the set.
  • Arbitrage hunters sort by momentum to 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: trendVsAvg30Pct at +25 means a product trades a quarter above its recent norm, heating up. Sort by momentum to 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.

GameInput valueCards pricedCards catalogued
Magic: The Gatheringmagic123,781126,715
Yu-Gi-Oh!yugioh78,77089,213
Pokémonpokemon69,61778,244
Cardfight!! Vanguardcardfightvanguard26,46828,409
Weiss Schwarzweissschwarz24,64029,193
Flesh and Bloodfleshandblood16,55218,002
Dragon Ball Superdragonballsuper13,50413,859
One Pieceonepiece12,80213,187
Digimondigimon9,5499,806
Star Wars Unlimitedstarwarsunlimited7,8908,146
Force of Willforceofwill7,7368,629
World of Warcraftworldofwarcraft7,6627,904
Final Fantasy TCGfinalfantasy5,4765,587
Disney Lorcanalorcana3,5873,636
Star Wars: Destinystarwarsdestiny1,8422,361
My Little Ponymylittlepony1,8032,345
Battle Spirits Sagabattlespiritssaga1,7871,916
The Spoilsthespoils1,6422,340
Riftboundriftbound1,5221,550
Dragobornedragoborne679747
Cyberpunkcyberpunk2313

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

FieldWhat it does
gameWhich TCG to price (default pokemon).
productTypecards (default), sealed (booster boxes, ETBs, tins...) or both.
searchQueryCase-insensitive name filter. Empty = the whole game.
expansionIdsKeep only these Cardmarket expansion ids (visible in every row).
priceMinEur / priceMaxEurPrice band on the trend price.
onlyPricedSkip products with no regular-variant price data (default on).
sortBytrend_desc (default), trend_asc, momentum, or name.
maxItemsCap 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 ApifyClient
client = 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?"

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.

Troubleshooting

  • A card you expected is missing. Check onlyPriced: illiquid cards without price data are skipped by default. Looking for a booster box? Set productType to sealed.
  • productUrl is 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.