Skip to content
Prepaid, no subscription trap. Top up a balance and we draw the monthly fee from it.
tcggraph

European market data

Cardmarket prices, in euros, on every card

Most card APIs price the American market and leave everyone else to convert. TCGGraph carries the Cardmarket quote natively in euros on every game the marketplace lists, next to the TCGplayer quote in dollars on the same card — and goes past the published price guide: the cheapest copy per language and per condition, and what copies actually sold for, day by day.

8
Games with EU pricing
11
Cardmarket languages, each with its own low
7
Condition grades, each with its own low
Sold
Realized sales by day, not just asks

The problem

A card does not have a price. It has a price in a market.

A Pokémon card that settles at $80 on TCGplayer can sit at €55 on Cardmarket, and the gap is not a conversion artefact. European print runs, distribution agreements and demand are genuinely different from American ones, and for localised printings there is no American price at all.

So an API that returns one number and calls it “the price” is quietly wrong for everyone outside North America. You can paper over it with an FX rate, and the result will be a repricer that lists your European stock either invisibly high or instantly too cheap — a failure you discover weeks later, in your margins.

Every card here carries both quotes, natively. No conversion, no blending, no pretending one market speaks for the other.

Filter and sort on the EU market
curl -G "https://api.tcggraph.com/v1/cards" \
  -d game=pokemon \
  -d source=cardmarket \
  -d minPrice=50 \
  -d sort=-price \
  -H "Authorization: Bearer $TCGGRAPH_KEY"
prices[] — the Cardmarket row
{
  "source": "cardmarket",
  "region": "EU",
  "finish": "normal",
  "currency": "EUR",
  "market": 1832.38,
  "low": 1282.38,
  "trend": 1832.38,
  "avg1": 1784.13,
  "avg7": 1797.50,
  "avg30": 1867.76
}

Past the price guide

The cheapest copy in your language, in your grade, and what it actually sold for

Cardmarket's published files price the product: one low across every language and condition. TCGGraph prices the copy: per language, per grade, and what it actually sold for. The numbers below exist in no other API.

By language. The published low is the cheapest copy in any language. On the card shown here it is €35.00, because the cheap end of the list is French; an English copy starts at €69.00. Every card carries languagePrices[]: the cheapest copy, the cheapest Near Mint copy, a median ask and the number of live articles, for each of Cardmarket’s eleven languages that is actually on sale.

By condition. Each language row breaks down into conditions[], the cheapest copy per grade on Cardmarket’s own seven-step ladder — the next section shows why that matters on a card whose published low is a played copy.

What it sold for. Cardmarket also shows the average price copies actually changed hands at, per day. We keep every point as a series at /v1/prices/{id}/sales. It is a realized price, which neither the smoothed trend nor an asking low is; on this card the last sale cleared at €37.99 against a €64.48 trend.

Honest limits: coverage is built game by game, most-traded first, and a card not yet covered says so instead of guessing. Cardmarket publishes about the last 30 days on which a copy sold; a card’s series starts there and lengthens from the day it is covered. Field by field in the docs.

Boa Hancock ST03-013 V.4 — by language and condition
GET /v1/prices/op_st03_013_p3

"prices": [
  { "source": "cardmarket", "low": 35.00, "trend": 64.48 }
],
"languages": [
  { "language": "en",
    "low": 69.00, "lowNm": 70.00, "market": 84.90,
    "offers": 20,
    "conditions": [
      { "condition": "nm", "low": 70.00, "offers": 15 },
      { "condition": "ex", "low": 69.00, "offers": 5 }
    ] },
  { "language": "fr",
    "low": 35.00, "lowNm": 37.00, "market": 45.00,
    "offers": 30,
    "conditions": [
      { "condition": "nm", "low": 37.00, "offers": 28 },
      { "condition": "ex", "low": 35.00, "offers": 2 }
    ] }
]
The same card — realized sales
GET /v1/prices/op_st03_013_p3/sales

"currency": "EUR",
"sales": [
  { "day": "2026-06-25", "avgSell": 65.00 },
  ...
  { "day": "2026-09-05", "avgSell": 69.97 },
  { "day": "2026-09-06", "avgSell": 75.00 },
  { "day": "2026-09-10", "avgSell": 37.99 }
]

By condition

One low per grade, because the published low is often a played copy

Cardmarket's price guide has no condition dimension: its low is the cheapest copy in any grade. On this card that copy is Light Played. TCGGraph carries the cheapest copy for each of the seven grades, per language.

GradeCheapest copyFor sale
MTMint€250.002
NMNear Mint€210.0043
EXExcellent€197.773
GDGood€250.001
LPLight Played€170.001
PLPlayed—none
POPoor—none

Donquixote Doflamingo, OP01-060 parallel, English copies, read 11 September 2026. Published low €170.00, trend €272.57. Grades with no copy for sale are absent from the API rather than zero; this page shows them for the shape of the ladder.

A €170 low against a €272 trend looks like a bargain until you know it is the one Light Played copy. The Near Mint floor is €210 — 24% higher — and forty-three sellers sit there. Nothing in the published guide can tell you that; a per-grade low can, and that is what conditions[] is.

Buylists pay by grade, so the offer to make for a Near Mint copy is read off the Near Mint row, not off a blended low. Collection apps can finally value a played copy as a played copy. Repricers selling only Near Mint stock compete against the Near Mint floor and stop undercutting themselves against damaged cards.

Grades are Cardmarket’s own seven, Mint to Poor, under Cardmarket’s own names. A grade with nothing for sale is absent, not zero. When a page showed only its fifty cheapest articles, truncated is true and a missing grade may still exist above them — the flag is there so you never mistake “not seen” for “none for sale”.

Narrow to one grade
GET /v1/prices/op_op01_060_p1?language=en&condition=nm

"languages": [
  { "language": "en", "low": 170.00, "lowNm": 210.00,
    "offers": 50, "truncated": true,
    "conditions": [
      { "condition": "nm", "low": 210.00, "offers": 43 }
    ] }
]

The European quote

What a Cardmarket row looks like, on every game

Sampled from the public demo catalog: the most valuable European quote we hold for each game, with the trend price and the thirty-day mean beside it.

CardTrendLow
Black Lotus€33,768€57,500
Monkey.D.Luffy€23,228€15,000
Gold Sarcophagus€8,000€8,000
Elsa - Snow Queen€5,928€5,000
Rocket's Mewtwo ex€5,201€180.00
Son Goku, Adventure€856.40€190.00
Regulusmon€14.47€9.00
Watch This€13.88€9.50

The demo catalog is a sample, so treat these as illustrative of the shape rather than as a trading signal. The point is that the gaps are double digits and they run in both directions — which is exactly why a single converted number cannot stand in for both markets.

What you get

Cardmarket's own statistics, under stable names

European sellers do not price against a single market number. They price against trend, and they read movement off the rolling windows.

CardmarketTCGGraph
trendtrend
avgavg30
avg1avg1
avg7avg7
avg30avg30
lowlow
lowFoillow
idProductexternalIds.cardmarketId

Trend is the number to reprice against. It is Cardmarket’s own smoothed estimate of where a card is changing hands, and it is what sellers on the platform anchor to. A listing generated from a thirty-day average will look mispriced next to the competition even when the number is defensible.

Sellers is the depth behind the quote. A trend price drawn from four live articles is a rumour; the same price drawn from two hundred is a market. Gate automated repricing on it and you avoid the classic mistake of chasing a thin book.

Finish is the same word on both markets. A Pokémon holo is foil on its Cardmarket row as it is on its TCGplayer row, a card Cardmarket prices as reverse holo gets its own reverse-holo row, and a Poké Ball pattern or a Shadowless print is an entry of its own in printings[] with both quotes under it. One physical printing, one key, two currencies. How printings are modelled.

Condition ladders do not line up between the two marketplaces — Cardmarket runs seven grades, TCGplayer runs five, and LP sits in a different place on each. We keep each marketplace’s own grade on its own quote instead of inventing a shared scale that would misrepresent both. The mapping is documented.

Why people buy it

What European pricing is actually for

Price European inventory correctly

A shop listing on Cardmarket needs Cardmarket's numbers. Repricing European stock against an American index produces listings that are either invisible or immediately bought out, and you find out which one weeks later.

Show buyers the price in their market

A collection tracker with a German user base showing dollar prices from a marketplace they cannot buy on is a tracker they will not trust. Pick the quote by region and the portfolio total starts matching what they actually paid.

Trade the spread

Both quotes are native, so the gap between them is real information rather than a rounding artefact. Cross-border sellers use it to decide which market to list in; the widest spreads sit in games with asymmetric distribution.

Build for both sides of the Atlantic at once

One card object with both quotes means no second integration, no second identifier to reconcile, and no branch in your pricing code that only runs for half your users.

Coverage

Every game, and how its European market differs

Distribution is not symmetric across the Atlantic, and it is different for each publisher. This is where the spreads come from.

Pokémon Trading Card Game

EU languages: German, French, Italian, Spanish, Portuguese, Dutch

European distribution runs through The Pokémon Company International's London office, and localised print runs are far smaller than the English ones. Modern German and French cards usually trade at a discount to English, but early localised sets invert that completely — the German Base Set is genuinely scarcer than the English one, and Cardmarket is the only venue that prices it properly.

Magic: The Gathering

EU languages: German, French, Italian, Spanish, Portuguese, Russian

Cardmarket is the largest Magic singles market outside the United States, and for European-language cards it is effectively the only liquid one. Italian Legends and German Revised have their own collector base and their own price curve; converting a TCGplayer number will not get you close.

Yu-Gi-Oh! Trading Card Game

EU languages: German, French, Italian, Spanish, Portuguese

Konami prints separate European editions with their own set codes, and the 1st Edition versus Unlimited split does not map onto the American one. European cards also carry an eye-of-Anubis holofoil rather than the American square, which is why matching by name alone produces the wrong price.

One Piece Card Game

EU languages: German, French, Italian, Spanish

Bandai's European rollout trailed Japan by more than a year and allocations were thin for the first several sets, so early European stock is scarcer than the print numbers suggest. Spreads against the American market on OP-01 and OP-02 alternate arts remain some of the widest we track.

Disney Lorcana

EU languages: German, French, Italian, Spanish

Ravensburger is a German publisher, and Lorcana's European distribution is unusually deep as a result. This is one of the few games where European prices sit consistently below American ones across the whole catalog rather than only on localised printings.

Star Wars: Unlimited

EU languages: German, French, Italian, Spanish

Asmodee, the distributor, is French, and European supply has been comfortable since launch. Showcase and hyperspace variants still command a premium, but the base rarity curve is softer than in North America.

Digimon Card Game

EU languages: German, French, Italian, Spanish

European allocations are thin and the player base is concentrated in Germany and Italy. Prices on tournament staples frequently sit above the American market, which is the opposite of what most people assume when they set up a repricer.

Dragon Ball Super Card Game

EU languages: English only

Cardmarket lists both lines under one game, with Fusion World expansions marked as such and Japanese printings kept in separate (Non-English) expansions that we do not bind to. Bandai distributes the game in English only in Europe, so unlike its One Piece and Digimon lines there are no localised European printings to price separately.

FAQ

Questions about European pricing

Price the market your buyer is in

One key, nine games, both sides of the Atlantic. Plans start at $29 a month, paid from a prepaid balance you top up by card.