EU market data

CardMarket Pokemon Card API

Use market=EU when your workflow needs EUR pricing and CardMarket-specific source fields instead of US eBay or TCGPlayer data.
CurrencySourcesPlan
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

Read EU Near Mint by country and language
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
EU response fields
{
  "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.