Price history
Daily closing prices for a Pokémon card or sealed product, up to a year back, per condition and printing.
Price History
/v1/cards/:id/prices/history1 credit per item returnedDaily price aggregates for a card over a time window. currency picks the source: USD from TCGPlayer, EUR from Cardmarket, the only two price-history sources. For individual eBay sales, use /v1/cards/:id/listings/ebay instead.
Each source groups by condition and printing variant, so one date returns several rows. avg, low, and high are that day's aggregates; GET /v1/cards/:id has the single current market_price.
No field here reports how many copies sold. Every row is a price aggregate, not a sales count.
Parameters
idstringrequiredThe unique card ID.
currencystringPrice source/currency. "usd" returns TCGPlayer history, "eur" returns Cardmarket history. Omit it to receive every currency your plan allows.
periodstringTime period in days, from "1d" through "365d". Defaults to 30d.
conditionstringFilter to one condition, matched exactly. TCGPlayer uses "Near Mint", "Lightly Played", "Moderately Played", "Heavily Played", "Damaged"; Cardmarket uses "Mint", "Near Mint", "Excellent", "Good", "Light Played", "Played", "Poor".
variantstringFilter to one printing variant, matched exactly, e.g. "Holofoil" or "Reverse Holofoil".
limitnumberRows per page, not days (max 365). A row is one date/source/currency/condition/variant combination, so a card with five conditions returns five rows per day and the default of 30 covers about six days. Page through with pagination.total_pages, raise this value, or narrow the result with condition and variant. Defaults to 30.
pagenumberPage number for pagination. Defaults to 1.
Try it
curl -H "X-API-Key: YOUR_API_KEY" \https://api.pkmnprices.com/v1/cards/{id}/prices/history