On This Page
REST API
API Reference
Using the API
- Base URL
https://api.traded.gg- Authentication
Authorization: Bearer $TRADED_API_KEY- Responses
- Success includes
ok,contract, anddata. Errors includeerror.code. See Errors & Limits.
Defaults & Filters
- Game
game=pokemonby default.- Quality
- Prices default to
quality=all; listings default toquality=verified. - Grade
- Omitting
gradereturnsraw:near_mint, except listings, which include all grades. Use the grade map and print data for grades and finishes, not free text. - Card & Set IDs
card_idfor one card,card_idsfor multiple cards,idsin batch bodies, andset_idfor a set. Check each endpoint for its exact parameters.- Resolve IDs
- Catalog and market IDs are not interchangeable. Use
/v1/resolveto match them. A_jasuffix identifies the Japanese print. - Marketplace
- Filter by venue with
marketplace. - Dates & Windows
date_fromanddate_touseYYYY-MM-DD. Mover windows:7d,30d,90d. History buckets:day,week,month.
Single, Batch & Market Requests
- One Card
- Use a card-scoped route, such as
/v1/cards/{card_id}/prices. - Batch
- Read up to 100 mixed IDs with
POST /v1/cards:batch,POST /v1/prices/history:batch, orGET /v1/prices?ids=…. - One Set
- Use
/v1/sets/{set_id}/marketor/v1/sets/{set_id}/populationfor set-level data. - Market-Wide
- Use
/v1/market/deals,/v1/market/movers,/v1/sales, or/v1/listings.
Empty Results & Missing IDs
- HTTP 200
- Resolution and batch reads return a per-ID status or a
not_foundlist, even when an ID is missing. - HTTP 404
- Observation reads can return
not_foundwhen no rows match. This includes empty summary or history reads, unknown sets on the feed, and per-card deals with no matches. - Era Prints
- Era print IDs return only their own cohort. A 1st-edition card ID never returns the plain print's price. A grade with no rows for that era cohort returns a miss, not a neighbouring print's value.
Search & Catalog
Search cards and browse catalog records, sets, and approved image redirects.
Search for cards
/v1/searchqcurl --get 'https://api.traded.gg/v1/search' \
--data-urlencode 'q=charizard' \
--data-urlencode 'limit=10' \
--header "Authorization: Bearer $TRADED_API_KEY"List catalog cards
/v1/catalog/cardscurl --get 'https://api.traded.gg/v1/catalog/cards' \
--data-urlencode 'q=charizard' \
--data-urlencode 'limit=10' \
--header "Authorization: Bearer $TRADED_API_KEY"Get a catalog card
/v1/catalog/cards/{card_id}card_idcurl --request GET \
'https://api.traded.gg/v1/catalog/cards/sv3pt5-199' \
--header "Authorization: Bearer $TRADED_API_KEY"Get catalog cards in a batch
/v1/catalog/cards:batchcurl --request POST \
'https://api.traded.gg/v1/catalog/cards:batch' \
--header "Authorization: Bearer $TRADED_API_KEY" \
--header 'Content-Type: application/json' \
--data-raw '{"ids":["sv3pt5-199"],"game":"pokemon"}'View a catalog card image
/v1/catalog/cards/{card_id}/imagecard_idcurl --request GET \
'https://api.traded.gg/v1/catalog/cards/sv3pt5-199/image'List catalog sets
/v1/catalog/setscurl --get 'https://api.traded.gg/v1/catalog/sets' \
--data-urlencode 'limit=10' \
--header "Authorization: Bearer $TRADED_API_KEY"Get a catalog set
/v1/catalog/sets/{set_id}set_idcurl --request GET \
'https://api.traded.gg/v1/catalog/sets/sv3pt5' \
--header "Authorization: Bearer $TRADED_API_KEY"View catalog set artwork
/v1/catalog/sets/{set_id}/imageset_idcurl --request GET \
'https://api.traded.gg/v1/catalog/sets/sv3pt5/image'Cards
Read card lists, card details, and batch card records.
List cards
/v1/cardscurl --get 'https://api.traded.gg/v1/cards' \
--data-urlencode 'q=charizard' \
--data-urlencode 'limit=10' \
--header "Authorization: Bearer $TRADED_API_KEY"Get a card
/v1/cards/{card_id}card_idcurl --request GET \
'https://api.traded.gg/v1/cards/sv3pt5-199' \
--header "Authorization: Bearer $TRADED_API_KEY"Get cards in a batch
/v1/cards:batchidscurl --request POST \
'https://api.traded.gg/v1/cards:batch' \
--header "Authorization: Bearer $TRADED_API_KEY" \
--header 'Content-Type: application/json' \
--data-raw '{"ids":["sv3pt5-199"],"game":"pokemon"}'Prices
Get current card prices, daily price history, and chart context.
Get prices for up to 100 cards
/v1/pricesidscurl --get 'https://api.traded.gg/v1/prices' \
--data-urlencode 'ids=sv3pt5-199' \
--data-urlencode 'grade=raw:near_mint' \
--data-urlencode 'method=median_3' \
--header "Authorization: Bearer $TRADED_API_KEY"Get a card's prices
/v1/cards/{card_id}/pricescard_idcurl --get 'https://api.traded.gg/v1/cards/sv3pt5-199/prices' \
--data-urlencode 'grades=raw:near_mint' \
--header "Authorization: Bearer $TRADED_API_KEY"Get price history
/v1/cards/{card_id}/prices/historycard_idcurl --get 'https://api.traded.gg/v1/cards/sv3pt5-199/prices/history' \
--data-urlencode 'grade=raw:near_mint' \
--data-urlencode 'interval=day' \
--data-urlencode 'limit=30' \
--header "Authorization: Bearer $TRADED_API_KEY"Get price history in a batch
/v1/prices/history:batchidscurl --request POST \
'https://api.traded.gg/v1/prices/history:batch' \
--header "Authorization: Bearer $TRADED_API_KEY" \
--header 'Content-Type: application/json' \
--data-raw '{"ids":["sv3pt5-199"],"grades":["raw:near_mint"],"game":"pokemon","interval":"day","date_from":"2026-01-01","date_to":"2026-01-31"}'Get a card's insured value
/v1/cards/{card_id}/prices/insured-valuecard_idcurl --request GET \
'https://api.traded.gg/v1/cards/sv3pt5-199/prices/insured-value' \
--header "Authorization: Bearer $TRADED_API_KEY"Get a card's chart series
/v1/cards/{card_id}/chart-seriescard_idcurl --request GET \
'https://api.traded.gg/v1/cards/sv3pt5-199/chart-series' \
--header "Authorization: Bearer $TRADED_API_KEY"Sales
Read recent card sales and the market sales feed.
Get recent sales
/v1/salescurl --request GET \
'https://api.traded.gg/v1/sales' \
--header "Authorization: Bearer $TRADED_API_KEY"Get a card's sales
/v1/cards/{card_id}/salescard_idcurl --request GET \
'https://api.traded.gg/v1/cards/sv3pt5-199/sales' \
--header "Authorization: Bearer $TRADED_API_KEY"Listings & Deals
Read live listings, listing details, and deal feeds.
Browse listings
/v1/listingscurl --get 'https://api.traded.gg/v1/listings' \
--data-urlencode 'limit=20' \
--header "Authorization: Bearer $TRADED_API_KEY"Get listings for a card
/v1/cards/{card_id}/listingscard_idcurl --get 'https://api.traded.gg/v1/cards/sv3pt5-199/listings' \
--data-urlencode 'limit=20' \
--header "Authorization: Bearer $TRADED_API_KEY"Get listing details
/v1/listings/{listing_id}listing_idcurl --request GET \
'https://api.traded.gg/v1/listings/ebay_browse:357622163739' \
--header "Authorization: Bearer $TRADED_API_KEY"Find market deals
/v1/market/dealscurl --get 'https://api.traded.gg/v1/market/deals' \
--data-urlencode 'limit=10' \
--header "Authorization: Bearer $TRADED_API_KEY"Find deals for a card
/v1/cards/{card_id}/dealscard_idcurl --get 'https://api.traded.gg/v1/cards/miscp-1/deals' \
--data-urlencode 'limit=10' \
--header "Authorization: Bearer $TRADED_API_KEY"Population
Read card population history and set grading population. grade_key takes the canonical grade-key form (e.g. PSA:10, raw:near_mint).
Get a card's population history
/v1/cards/{card_id}/population/historycard_idcurl --get 'https://api.traded.gg/v1/cards/sv3pt5-199/population/history' \
--data-urlencode 'grade_key=PSA:10' \
--header "Authorization: Bearer $TRADED_API_KEY"Get a set's graded population
/v1/sets/{set_id}/populationset_idcurl --get 'https://api.traded.gg/v1/sets/sv3pt5/population' \
--data-urlencode 'top_n=10' \
--header "Authorization: Bearer $TRADED_API_KEY"Sets
Browse sets and read details about each set.
List sets
/v1/setscurl --get 'https://api.traded.gg/v1/sets' \
--data-urlencode 'limit=10' \
--header "Authorization: Bearer $TRADED_API_KEY"Get a set
/v1/sets/{set_id}set_idcurl --request GET \
'https://api.traded.gg/v1/sets/sv3pt5' \
--header "Authorization: Bearer $TRADED_API_KEY"Market
Read card, set, and market-wide movement analytics.
Find market movers
/v1/market/moverscurl --request GET \
'https://api.traded.gg/v1/market/movers' \
--header "Authorization: Bearer $TRADED_API_KEY"Get market data for a card
/v1/cards/{card_id}/marketcard_idcurl --request GET \
'https://api.traded.gg/v1/cards/sv3pt5-199/market' \
--header "Authorization: Bearer $TRADED_API_KEY"Get market data for a set
/v1/sets/{set_id}/marketset_idcurl --request GET \
'https://api.traded.gg/v1/sets/sv3pt5/market' \
--header "Authorization: Bearer $TRADED_API_KEY"Metrics
Browse the metric catalog and read uniform metric values across cards and windows. New metrics arrive as data: re-read the catalog instead of refreshing your client.
Median Price
median_priceThe median of clean sales in the last 7, 30, or 90 days for the same card and cohort.
Price Change
price_changeCompares that median with the previous period of the same length. Market movers use a separate ranking series.
Reading Metric Values
- Discover
- Read
GET /v1/metric-catalogfor supported metrics, windows, subject types, cohort axes, grain, source, availability rules, and methodology versions. Checkcatalog_versionfor updates. - Query
POST /v1/metric-values:queryreturns one row per subject, cohort, metric, and window.- Row Identity
subject_type,subject_id,metric,window, andcohort(includinggameandgrade_key).- Value & Evidence
value,unit, sample sizen,as_of,quality,availability,reason, andmethodology_version.- Missing Data
value: nullwith an availability status and reason. Missing data is never reported as zero.- Small Samples
- Values are still returned with
quality: thin. Checknbefore relying on them. - Validation
- Unsupported metrics, windows, subject types, or cohort axes return
422with valid values or a narrowing hint. Unsupported finishes are rejected, not blended.
Metric Query Limits
- Subject Type
cardis supported.setandindexcurrently return422.- Per Request
- Up to 100
subject_ids, 16metrics, and 5,000 requested cells. - Per Page
- Up to 2,000 rows with
limit.
Browse the metric catalog
/v1/metric-catalogcurl --get 'https://api.traded.gg/v1/metric-catalog' \
--data-urlencode 'subject_type=card' \
--data-urlencode 'limit=2' \
--header "Authorization: Bearer $TRADED_API_KEY"Read metric values
/v1/metric-values:querymetricssubject_idswindowscurl --request POST \
'https://api.traded.gg/v1/metric-values:query' \
--header "Authorization: Bearer $TRADED_API_KEY" \
--header 'Content-Type: application/json' \
--data-raw '{"metrics":["price_change"],"windows":["30d"],"subject_type":"card","subject_ids":["sv3pt5-199"],"grades":["raw:near_mint"]}'Coming Soon
Watchlists and portfolios are planned. They are not available through the API yet.

