Cardmarket Price Guide - TCG Card Prices
Pricing
from $0.25 / 1,000 results
Cardmarket Price Guide - TCG Card Prices
Daily EU market prices for 19 trading card games - Pokémon, Magic, Yu-Gi-Oh!, Lorcana, One Piece and more. Trend price, lowest listing, 1/7/30-day averages, foil variants and momentum per card, from Cardmarket's official daily price guide. No scraping, no seller data. Runs in seconds.
Pricing
from $0.25 / 1,000 results
Rating
0.0
(0)
Developer
Lowland Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
0
Monthly active users
0.86 hours
Issues response
13 hours ago
Last modified
Categories
Share
Cardmarket Price Guide — daily EU card prices for 19 TCGs
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. One row per card: trend price, lowest listing, 1/7/30-day sale averages, foil variants, a momentum signal, and a direct link to the card'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).
- Type a card name filter — try the prefill — 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","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 card's own page on Cardmarket — offers, versions, the lot.
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 card page leads with From, the cheapest copy on sale right now. This actor leads with priceTrendEur, Cardmarket's own trend price — what the card 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. - 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
- Price a collection or shop inventory in bulk — the whole Pokémon guide is ~65,000 priced cards, one run.
- Spot movers:
trendVsAvg30Pctat +25 means a card trades a quarter above its recent norm — heating up. Sort bymomentumto rank the whole game. - 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 TCG Price 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. Cardmarket publishes a product catalogue for it but no price-guide file, so there is nothing to price against. It goes in as soon as 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.
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.
How much does it cost?
$0.29 per 1,000 rows plus $0.005 per run, on the standard tier. Filtering happens before delivery, so you only pay for rows you keep:
- Watching one set (~250 cards) daily: about $0.08 a day.
- A name filter like "charizard" across all of Pokémon: a few cents.
- The full Pokémon guide (~65k rows): about $19 — the bulk-export case, priced accordingly.
Compare that with card-price APIs at $19–149/month for the same underlying numbers.
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)- 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 cards 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, 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). |
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 cards 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","searchQuery":"charizard","sortBy":"momentum","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?"
- "Price my list of Magic cards at today's EU trend prices."
- "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.
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 card. 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 card'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.
Why do some cards 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. 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 Deal Finder.
Related actors
- Cardmarket Deal Finder — live offers priced well under trend, per card.
- TCG Price Arbitrage — EU (Cardmarket) vs US (TCGplayer) spreads on the same cards.
Troubleshooting
- A card you expected is missing — check
onlyPriced: illiquid cards without price data are skipped by default. 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.
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.