Cardmarket Price Guide - TCG Card Prices avatar

Cardmarket Price Guide - TCG Card Prices

Pricing

from $0.25 / 1,000 results

Go to Apify Store
Cardmarket Price Guide - TCG Card Prices

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

Lowland Data

Maintained by Community

Actor 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)

  1. Pick a game (Pokémon is the default).
  2. Type a card name filter — try the prefill — or leave it empty to export the whole game.
  3. 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 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.
  • 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

  • Price a collection or shop inventory in bulk — the whole Pokémon guide is ~65,000 priced cards, one run.
  • Spot movers: trendVsAvg30Pct at +25 means a card trades a quarter above its recent norm — heating up. Sort by momentum to 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.

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. 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

FieldWhat it does
gameWhich TCG to price (default pokemon).
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 cards 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","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 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?"
  • "Price my list of Magic cards at today's EU trend prices."
  • "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.

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.

Troubleshooting

  • A card you expected is missing — check onlyPriced: illiquid cards without price data are skipped by default.
  • 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.

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.