Guides
Markets and tiers
Markets
There are two markets, US and EU. Each has its own sources and currency. Since API 2.0 a card sold in both markets is one card: its US record and its EU record are linked, and GET /cards/:id returns the prices of both markets, whichever of the two ids you request. GET /cards lists the card once, as the same combined card under its US id.
One card, two markets
id, market, currency and refs; markets and prices cover both markets. Each market keeps its own currency, and prices are never converted. Cards without a linked record return one market. In GET /cards, a linked card always carries the US record's fields, and its EU id is in markets.EU.cardId. On that list, market=US or market=EU returns cards with prices in that market, so a linked card matches both.| US market | EU market | |
|---|---|---|
| Currency | USD | EUR |
| Sources | ebay and tcgplayer | cardmarket and cardmarket_unsold |
| Variants | Variant data from TCGPlayer SKUs, for example Holofoil or Normal | Finish labels Normal and Holofoil, plus First Edition on selected cards |
| Breakdowns | By condition and by grade | By condition, grade, seller country and language |
US sources
| Source | What it contains |
|---|---|
ebay | Graded and raw prices from sold listings. |
tcgplayer | Raw conditions only. |
Example paths: prices.PSA_10.US.ebay, prices.NEAR_MINT.US.ebay and prices.NEAR_MINT.US.tcgplayer.
EU sources
| Source | What it contains |
|---|---|
cardmarket | Price Trend, the average of verified sales. One average per card with no condition, grade or country breakdown. This is the most reliable baseline. |
cardmarket_unsold | Active listings, meaning asking prices. Includes condition, graded tiers, country and language breakdowns, and rolling medians. The language map is available at tier level and within each country. Counts marked observed_offers are observed asking-price offers, not completed sales. |
Example paths: prices.AGGREGATED.EU.cardmarket.avg and prices.PSA_10.EU.cardmarket_unsold.country.DE.language.ALL.
Reading both markets
prices is keyed by grade or condition first, then market, then source, so the US and EU prices for one tier sit next to each other: prices.NEAR_MINT.US.tcgplayer in USD and prices.NEAR_MINT.EU.cardmarket_unsold in EUR. Read the currency from markets.US.currency and markets.EU.currency. A tier only appears under a market when that market has data for it, and plan rules apply: without EU access, markets.EU is { "available": false, "reason": "plan" } and no EU prices are returned.
Price history stays per market. Add ?market=US or ?market=EU to /cards/:id/prices/:tier/history to read the linked card's history through the same id.
Cardmarket coverage
Approximate sale counts
When approxSaleCount is true, that source reports an approximate sale count. Sold-listing totals can change after the fact when listings are revoked, removed or reclassified. Today this applies to ebay. Stable marketplace sources return approxSaleCount: false.
Rolling medians
Price data includes rolling medians calculated from individual listings: median3d, median7d and median30d. Medians hold up better against outliers than averages.
Anomalous prices are excluded automatically. A price counts as anomalous when it is below 10% or above 10x of the 3-day median.
Country code examples
EU prices include per-country pricing based on where the seller is located.
| Code | Country |
|---|---|
DE | Germany |
FR | France |
IT | Italy |
ES | Spain |
GB | Great Britain |
PL | Poland |
BE | Belgium |
Variants and editions
US records include variants from TCGPlayer SKUs. Variant values include Normal, Holofoil, Reverse_Holofoil, 1st Edition Holofoil and Unlimited Holofoil.
On a linked card, markets.US.variant and markets.EU.variant give each market's own label, and markets.<linked market>.finish says how the linked print relates, for example base, reverse or 1st_edition.
EU finish labels do not mean edition
Normal does not mean Unlimited. Selected EU cards, starting with Base Set Blastoise, have an explicit First Edition variant built from confirmed asking offers. General EU prices and older histories may still combine editions, and the product-wide Price Trend is not an edition-specific price.Price tiers
Every price sits under a tier key. Graded tiers use the format COMPANY_GRADE, for example PSA_10 or BGS_9_5. Half grades use an underscore, so 9.5 becomes 9_5.
Grading companies
| Company | Grades | Example key |
|---|---|---|
| PSA | 1 to 10, including every half grade | PSA_9_5 |
| BGS | 1 to 10, including every half grade | BGS_9_5 |
| CGC | 1 to 10, including every half grade | CGC_9_5 |
| SGC | 1, 1.5, 2, 3, 4, 5, 6, 7, 7.5, 8, 8.5, 9, 9.5, 10 | SGC_9_5 |
| ACE | 1, 4, 5, 6, 7, 8, 9, 10 | ACE_9 |
| TAG | 1, 1.5, 2.5, 3, 3.5, 4, 4.5, 5, 5.5, 6, 6.5, 7, 7.5, 8, 8.5, 9, 10 | TAG_9 |
Prices are also returned for nine smaller graders when sales exist: PCA, SFG, CGS, PGS, EGS, AOG, GSG, GCG and MTG, using the same COMPANY_GRADE format. That makes 15 grading companies in total.
Raw conditions
Ungraded cards use condition tiers:
MINTNEAR_MINTLIGHTLY_PLAYEDMODERATELY_PLAYEDHEAVILY_PLAYEDDAMAGED