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.
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"{
"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.
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 }
] }
]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.
| Grade | Cheapest copy | For sale |
|---|---|---|
| MTMint | €250.00 | 2 |
| NMNear Mint | €210.00 | 43 |
| EXExcellent | €197.77 | 3 |
| GDGood | €250.00 | 1 |
| LPLight Played | €170.00 | 1 |
| 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”.
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.
| Card | Game | Trend | 30-day | Low |
|---|---|---|---|---|
| Black Lotus | Magic | €33,768 | €57,500 | |
| Monkey.D.Luffy | One Piece | €23,228 | €15,000 | |
| Gold Sarcophagus | Yu-Gi-Oh! | €8,000 | €8,000 | |
| Elsa - Snow Queen | Lorcana | €5,928 | €5,000 | |
| Rocket's Mewtwo ex | Pokémon | €5,201 | €180.00 | |
| Son Goku, Adventure | Dragon Ball Super | €856.40 | €190.00 | |
| Regulusmon | Digimon | €14.47 | €9.00 | |
| Watch This | SW: Unlimited | €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.
| Cardmarket | TCGGraph |
|---|---|
| trend | trend |
| avg | avg30 |
| avg1 | avg1 |
| avg7 | avg7 |
| avg30 | avg30 |
| low | low |
| lowFoil | low |
| idProduct | externalIds.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.