EU market data
CardMarket Pokemon Card API
| Currency | Sources | Plan |
|---|---|---|
EUR EU cards are separate records from US cards. | 2 CardMarket feeds Price Trend and active listings are separate fields. | Pro+ EU market access requires Pro or higher. |
Endpoint
GET /cards?market=EU
curl -H "X-API-Key: YOUR_KEY" \
"https://api.poketrace.com/v1/cards?search=charizard&market=EU&limit=2"Returns EU cards with currency EUR, refs.cardmarketId, cardmarket AGGREGATED values, and cardmarket_unsold tiers by condition, grade, country, and language.
- Cardmarket data is available on Pro, Growth and Scale, with the same listing coverage on each plan.
- Coverage focuses on cards printed in English and Japanese.
- Some products may show fewer listings than on Cardmarket. Available prices vary by product, seller country and language.
- For ungraded singles, current Cardmarket prices cover Mint and Near Mint.
- Language-specific prices are not available for every sealed product.
- When saleCountBasis is observed_offers, saleCount counts listings represented in the price data—not completed sales or total stock. A listing disappearing does not necessarily mean it sold.
- The /listings endpoint returns eBay sold listings. It does not provide individual Cardmarket listings or seller details.
- First Edition and reverse-holo prices are shown separately where available.
- cardmarket_unsold values are asking prices from active listings, not completed-sale comps.
Parameters
Search Parameters
market enum | Set to EU to return CardMarket-backed cards. EU |
search string | Search by card name before reading EU CardMarket fields. charizard |
limit number | Cards per page. API schema accepts up to 100; docs examples use small pages. 20 |
cursor string | Pagination cursor for /cards. YnNfMg== |
cardmarket_ids csv | Comma-separated CardMarket IDs, max 20. cardmarketIds alias is also accepted. 273927,273550 |
game enum | Use pokemon or pokemon-japanese when distinguishing EU card languages by product identity. pokemon-japanese |
Detail Parameters
GET /cards/:id?market=EU route | Fetch full EU details for one card. /cards/eu_273927?market=EU |
GET /cards/:id/prices/:tier/history route | Fetch EU history for AGGREGATED, raw condition, or graded tier. /cards/eu_273927/prices/NEAR_MINT/history?period=30d |
Response fields
CardMarket Price Trend
The cardmarket source is the stable EU baseline.
prices.cardmarket.AGGREGATED.avg number | null | CardMarket Price Trend style value for the card. 385 |
avg1d / avg7d / avg30d number | null | Short-window trend averages where available. 380 / 375 / 370 |
low / high / saleCount null or omitted | AGGREGATED Price Trend is not a per-listing spread. low: null |
refs.cardmarketId string | number | null | CardMarket product reference for matching external systems. 273927 |
Active Listings
The cardmarket_unsold source is active asking-price inventory.
prices.cardmarket_unsold.NEAR_MINT object | Raw active listings for a condition tier. avg, low, high, saleCount |
prices.cardmarket_unsold.PSA_10 object | Graded active listings where slab data is available. PSA_10.country.DE |
country object | Breakdown by seller country, such as DE, FR, IT, ES, PL, or BE. country.DE.avg |
country.*.language object | Nested language slices under country. Common keys include ALL, EN, and JP. country.DE.language.EN.avg |
median3d / median7d / median30d number | null | Rolling medians from active listings, with anomalies excluded. 410 |
Examples
const response = await fetch(
"https://api.poketrace.com/v1/cards?search=charizard&market=EU&limit=1",
{ headers: { "X-API-Key": process.env.POKETRACE_API_KEY } },
)
const card = (await response.json()).data[0]
const nearMint = card.prices.cardmarket_unsold?.NEAR_MINT
const germanEnglishAvg = nearMint?.country?.DE?.language?.EN?.avg{
"market": "EU",
"currency": "EUR",
"refs": { "tcgplayerId": null, "cardmarketId": "273927" },
"prices": {
"cardmarket": {
"AGGREGATED": { "avg": 385, "low": null, "high": null, "avg7d": 375 }
},
"cardmarket_unsold": {
"NEAR_MINT": {
"avg": 420,
"low": 350,
"high": 890,
"saleCount": 125,
"country": {
"DE": { "avg": 410, "language": { "ALL": { "avg": 401 }, "EN": { "avg": 432 } } }
}
}
}
}
}Two Sources, Different Meaning
cardmarket.AGGREGATED provides Cardmarket Price Trend. cardmarket_unsold provides asking prices, with country, language and graded-price breakdowns where available.
Country and Language
Country refers to the seller’s location. Language refers to the language printed on the card or product.
For example, country.DE.language.EN.low gives the lowest price in our data for an English copy from a German seller. Use EN for English prices; ALL is not a substitute for EN.
Missing country or language data does not mean the item is unavailable on Cardmarket.
Do Not Mix Markets Blindly
US and EU cards are separate market records. Compare them only when your product explicitly explains currency, source, liquidity, and supply differences.
Frequently asked questions
Does PokeTrace expose CardMarket Pokemon prices?
Yes. Use market=EU on /cards or fetch an EU card by ID. Responses include cardmarket Price Trend values and cardmarket_unsold active listing summaries.
Can I filter CardMarket prices by country or language?
The endpoint does not take a country query filter, but EU response data can include country and nested language objects that your app can read directly.