Slab pricing

Pokemon Graded Card Price API

Use graded tier keys when your product needs slab values instead of only raw card conditions like NEAR_MINT.

Endpoint

GET /cards/:id

curl -H "X-API-Key: YOUR_KEY" \
  "https://api.poketrace.com/v1/cards/019bff77-befa-771d-bab0-f5909f0a78c9"

Returns hasGraded, gradedOptions, topPrice, totalSaleCount, and nested price tiers such as prices.ebay.PSA_10 or prices.cardmarket_unsold.BGS_9_5.

  • Graded prices require Pro or Scale.
  • Sold listing detail for comps requires Scale.
  • Use gradedOptions from the card response before requesting history for a tier.
Graders
PSA, BGS, CGC, SGC, ACE, TAG

Returned where market data exists.

Tier format
COMPANY_GRADE

Half grades use underscores: BGS_9_5.

Plan
Pro+

Graded data requires Pro or Scale.

Parameters

Discovery Parameters

has_graded
boolean

Filter /cards to records with graded price data.

true

market
enum

US for eBay graded sold data, EU for CardMarket active graded listings.

US

search
string

Find graded candidates by name before fetching detail.

charizard

cardmarket_ids / tcgplayer_ids
csv

Match external product IDs before checking gradedOptions.

83356

Tier Parameters

PSA_10
tier

PSA grade 10 tier used for current prices, history, and comps.

/prices/PSA_10/history

BGS_9_5
tier

BGS 9.5 half-grade tier using underscore notation.

/prices/BGS_9_5/history

CGC_10 / SGC_9_5 / ACE_10 / TAG_10
tier

Other supported grader tiers use the same COMPANY_GRADE format.

CGC_10

Response Fields

Card-Level Graded Fields

Fields that tell your app whether graded data is available.

hasGraded
boolean

True when the card has at least one graded tier after plan filtering.

true

gradedOptions
string[]

Available graded tier keys for the card.

["PSA_10", "BGS_9_5"]

conditionOptions
string[]

Available raw tiers for comparing slab premium.

["NEAR_MINT", "LIGHTLY_PLAYED"]

topPrice
number | object | null

Highest representative price depending on response surface.

5200

totalSaleCount
number

Aggregate count used for sorting and confidence displays.

148

Price Locations

Where graded tiers appear in API responses.

prices.ebay.PSA_10
object

US graded sold-listing aggregate from eBay.

avg, low, high, saleCount

prices.cardmarket_unsold.PSA_10
object

EU active-listing aggregate for a graded tier.

country.DE.language.EN

/prices/:tier/history
endpoint

Historical chart rows for one graded tier.

/prices/BGS_9_5/history?period=90d

/listings?grader=PSA&grade=10
endpoint

Scale-only sold comps behind a graded valuation.

/listings?grader=PSA&grade=10

Examples

Pick the first available graded tier

javascript
const card = await fetch("https://api.poketrace.com/v1/cards/019bff77...", {
  headers: { "X-API-Key": process.env.POKETRACE_API_KEY },
}).then((response) => response.json())

const tier = card.data.gradedOptions?.[0]
const ebayPrice = tier ? card.data.prices.ebay?.[tier]?.avg : null

Graded response fields

json
{
  "prices": {
    "ebay": {
      "PSA_10": { "avg": 5200, "low": 4800, "high": 5600, "saleCount": 47, "approxSaleCount": true },
      "BGS_9_5": { "avg": 3800, "low": 3400, "high": 4200, "saleCount": 12, "approxSaleCount": true }
    }
  },
  "gradedOptions": ["PSA_10", "PSA_9", "BGS_9_5", "CGC_9"],
  "conditionOptions": ["NEAR_MINT", "LIGHTLY_PLAYED"],
  "hasGraded": true,
  "topPrice": 5200
}

Tier Naming

The API stores graded tiers as uppercase grader plus grade. Replace decimal points with underscores, so BGS 9.5 becomes BGS_9_5.

US vs EU Graded Data

US graded values come from eBay sold-listing aggregates. EU graded values can appear under cardmarket_unsold because CardMarket graded data is active-listing inventory.

Raw Comparison

Compare NEAR_MINT with PSA_10, PSA_9, or BGS_9_5 to estimate slab premium, but keep source and market separate in the UI.

Frequently Asked Questions

Which Pokemon card graders does the API support?

The API supports PSA, BGS, CGC, SGC, ACE, and TAG tier keys where market data is available.

How do I request a half grade like BGS 9.5?

Use an underscore in the tier name. BGS 9.5 is BGS_9_5, so the history path is /cards/:id/prices/BGS_9_5/history.