Reference
Changelog
Notable changes, updates and deprecations to the PokeTrace API.
v2.0.0
Dragonite · November 2026
US and EU cards are merged. A card sold in both markets is now one card: one request returns its TCGPlayer and eBay prices in USD and its CardMarket prices in EUR. 2.0 ships under the new /v2 prefix: GET /v2/cards returns a linked card once, under its US id, and v2 card objects group prices by grade, then market, then source. /v1 keeps its previous list and card fields, so existing integrations keep working unchanged. Old US and EU ids and slugs keep working. See API versions for the differences between the two prefixes.
Added
- Unified card responses. On
/v2,GET /cards/:idaccepts a US id or an EU id and returnsmarkets, with the card id, currency and variant for each market, andprices, grouped by grade or condition, then market, then source, for exampleprices.NEAR_MINT.EU.cardmarket_unsold. Each market keeps its own currency; nothing is converted. GET /v2/cardslist items carry the samemarketsandpricesasGET /cards/:id.- On
/v1,GET /v1/cards/:idaddsmarkets,pricesByGrade(the same grade-first structure) andcounterpartsnext to its existing fields. GET /cards/:id/prices/:tier/historyaccepts an optionalmarket=US|EUquery parameter to read the linked card's history through the same id.- The website catalog shows one card with both markets' prices. The market switch is now "Prices available in: All / US / EU", and EU card pages redirect to the merged card.
Changed
- New /v2 prefix. 2.0 ships under
https://api.poketrace.com/v2, with WebSocket at/v2/wsand the OpenAPI document at/v2/openapi.json. Both prefixes use the same API key and plans. They differ in the card list, the card object fields, the price history periods and the Free daily limit. - One list item per card on /v2.
GET /v2/cardsreturns a card linked across markets once, as the combined card: the US record's fields plusmarketsandpricesfor both markets. Cards without a linked card, such as most Japanese cards, come back on their own. The full list shrinks from about 183,000 to about 131,000 items. - Card fields on /v2.
pricesis grouped by grade, then market, then source, and v2 card objects have nopricesByGradeorcounterparts. The linked card's id is inmarkets.EU.cardIdormarkets.US.cardId. market=USormarket=EUonGET /v2/cardsmeans "cards with prices in that market". A linked card matches both.market=EUstill needs a plan with EU access.- On
/v2, lookups bycardmarket_idsortcgplayer_idsstill find linked EU cards. They come back as the combined card: the top-levelidis the US id, and the EU id is inmarkets.EU.cardId. An EUsetslug returns its US set as one merged set, andsetwithcard_numberis an identity lookup that returns the combined card. - /v1 unchanged.
GET /v1/cardskeeps its previous behaviour: every record, US and EU separately,market=EUreturns EU records, andsettakes the slug as given. On/v1,pricesstays grouped by source, then tier. - Integration impact. When you move from
/v1to/v2, read prices grade first, for exampleprices.NEAR_MINT.US.tcgplayerinstead ofprices.tcgplayer.NEAR_MINT. If you page throughGET /cardsand store ids, linked cards you stored under their EU id arrive with the US id at the top level; map them throughmarkets.EU.cardId. The EU id stays valid forGET /cards/:idand price history. - EU and graded access is unchanged: Free stays US raw only, and EU and graded data stay on the plans that include them. Without EU access,
markets.EUis{ "available": false, "reason": "plan" }and no EU prices are returned. - Price history on /v2. On
GET /v2/cards/:id/prices/:tier/history, Free can request up to7d, Pro and Growth up to1y, andperiod=allrequires Scale or Business. A longer period returns 403 withcode: "UPGRADE_REQUIRED", for example{ "error": "Full price history (period=all) requires Scale or Business", "code": "UPGRADE_REQUIRED" }or, on Free,{ "error": "Price history beyond 7 days (period=30d, 90d or 1y) requires Pro or higher", "code": "UPGRADE_REQUIRED" }. On/v1, history periods work as before. - Free daily limit on /v2. The Free plan gets 100 requests per day on
/v2; the burst limit stays 1 request / 2 s./v1is unchanged. - One request now covers both markets, so most clients need fewer requests.
- OpenAPI
info.versionis2.0.0, codenamedragonite. The health endpoint returnsversion: "2.0.0"andcodename: "dragonite".
Business plan
November 6, 2026
- New Business plan: 1,000,000 requests per day and a burst limit of 300 requests per 10 seconds.
- Business includes everything in Scale: EU and graded data, WebSocket updates, eBay sold listings and priority support.
Growth plan limit raised
November 6, 2026
- The Growth plan daily limit is now 50,000 requests (previously 30,000). Burst limits are unchanged.
Cardmarket update
October 11, 2026
- Fixed an issue that stopped prices updating for some cards.
- Improved separate pricing for First Edition and reverse-holo cards.
- Current coverage focuses on English and Japanese cards.
- Current prices for ungraded singles cover Mint and Near Mint.
- Some products may show fewer listings than on Cardmarket. See Cardmarket coverage for details.
v1.7.0
Onyx · May 2026
Added
- Sealed product taxonomy is now exposed on cards and catalog results. Responses include
productTypeandproductFamilyso sealed products no longer need to be inferred from set names. - New filters on
GET /cardsand the catalog:product_typeandproduct_family. Useproduct_type=sealedfor sealed products or combine it with families such asbooster_box,booster_pack,elite_trainer_box, andtin.
Changed
- CardMarket products without real expansion metadata are grouped under an internal product bucket instead of a public
Unknownset. - Health endpoint now returns
version: "1.7.0"andcodename: "onyx".
v1.6.0
Snorlax · April 2026
Changed
- EU CardMarket pricing now includes per-language breakdowns. EU tiers now expose a
languagemap (for exampleEN,JP,KO) alongside country splits. - EU cards now include
variantdata. EU cards now return"Normal"or"Holofoil"instead ofnull. This describes finish labels only; it does not introduce separate First Edition and Unlimited pricing or history. GET /cardsnow includes apricesobject on each card. List responses now return plan-filtered prices by source and tier, so most use cases no longer require an extra detail call.- WebSocket delivery and subscription handling have been improved. Real-time connections are more stable and
price.card-updatedevents now arrive more reliably for live dashboards, alerts, and trading tools. - Cards search/list page size is now capped at 20. The
limitparameter forGET /cardsnow accepts values from 1 to 20. - Rate limits simplified to daily only. Monthly limits have been removed. All plans now use a single daily quota that resets at midnight UTC.
- Increased daily limits for paid plans: Pro increased to
10,000/day(previously 5,000), Scale increased to100,000/day(previously 20,000). - Free plan daily limit reduced to
250/day(previously 500).
Added
variantfilter added to the catalog API. Accepts:Normal,Holofoil,Reverse_Holofoil,1st_Edition,1st_Edition_Holofoil,Unlimited,Unlimited_Holofoil.- New
gametypes for non-English EU sets.pokemon-chinese,pokemon-thai,pokemon-indonesianin addition to existingpokemonandpokemon-japanese. gamefilter added toGET /cardsand the catalog. Filter by language to get only English, Japanese, Chinese, Thai, or Indonesian cards.
Removed
- Monthly rate limit headers (
X-RateLimit-Monthly-*) are no longer returned. TheX-RateLimit-LimitandX-RateLimit-Remainingheaders now refer exclusively to your daily quota. - The
monthlyfield has been removed from/auth/infousage responses and 429 error payloads.
v1.2
February 2026
Changed
- EU CardMarket Price Trend data now uses the
AGGREGATEDtier (previouslyUNKNOWN). This tier represents CardMarket's official price aggregate with no condition/grader breakdown. saleCountis no longer returned for theAGGREGATEDtier (card detail and history endpoints). The value was always 0 since Price Trend is a computed aggregate.lowandhighare nownullfor the AGGREGATED tier — Price Trend is a single value, not a range.
Added
avg1d,avg7d,avg30drolling averages now included in EU AGGREGATED tier — both in card detail and price history responses.- Price history endpoint (
/cards/:id/prices/AGGREGATED/history) now returns daily Price Trend snapshots with rolling averages from CardMarket's price guide.
v1.1
February 2026
Removed
confidence,volatility, andtrendfields have been removed from all API price responses. As communicated via email in January 2026, these fields have been discontinued.- Affected endpoints:
GET /cards/:id,GET /cards/:id/prices/:tier/history
Improved
saleCountnow reflects cumulative historical sales across all data sources, providing more accurate volume data.- Health endpoint now returns
version: "1.6.0"andcodename: "snorlax"in the response.