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.
GradersTier formatPlan
PSA, BGS, CGC, SGC, ACE, TAG
Returned where market data exists.
COMPANY_GRADE
Half grades use underscores: BGS_9_5.
Pro+
Graded data requires Pro or higher.

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 higher.
  • Sold listing detail for comps requires Scale.
  • Use gradedOptions from the card response before requesting history for a tier.

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
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
{
  "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.