Sold comps

Pokemon Card Listings API

Use this Scale endpoint when aggregate prices are not enough and the user needs the sold listings behind a valuation.
SourceLimitPlan
eBay sold
Completed-sale evidence behind aggregate values.
1-20
Default 20; cursor pagination for deeper comp review.
Scale
Rate limited separately at 30 requests per 30 seconds per account.

Endpoint

GET /cards/:id/listings

curl -H "X-API-Key: YOUR_KEY" \
  "https://api.poketrace.com/v1/cards/019bff77.../listings?grader=PSA&grade=10&sort=price_desc"

Returns eBay sold comps with title, source item ID, price, sold date, grader, grade, condition, URL, anomaly metadata, and pagination.

  • Listings require the Scale plan.
  • The endpoint only returns eBay sold listings.
  • The listings burst limit is 30 requests per 30 seconds per user/account.

Parameters

Path Parameters

id
string
PokeTrace card ID from /cards or /cards/:id.
019bff77-befa-771d-bab0-f5909f0a78c9

Query Parameters

limit
number
Listings per page. Max 20, default 20.
20
cursor
string
Pagination cursor from pagination.nextCursor.
MjA=
grader
string
Filter by grading company. The API normalizes this to uppercase.
PSA
grade
string
Filter by numeric grade stored on the listing.
10
min_price / max_price
number
Positive price bounds for comp review.
1000 / 10000
sort
enum
sold_at_desc, sold_at_asc, price_desc, or price_asc.
price_desc

Response fields

Listing Fields

Fields returned for each sold eBay listing.

id
number
Internal listing row ID.
421012
sourceItemId
string
Marketplace item identifier.
123456789012
listingType
string | null
Listing classification when available.
auction
title
string
Original listing title used for comp inspection.
Pokemon Base Set Charizard PSA 10
price / currency
number / string
Sold price and currency for the comp.
5200 USD
listingUrl
string | null
URL back to the marketplace listing when available.
https://www.ebay.com/itm/123456789012

Comp Metadata

Fields used to explain why a listing matched a raw or graded tier.

condition
string | null
Raw card condition inferred or stored for the listing.
NEAR_MINT
grader
string | null
Detected grading company for slab comps.
PSA
grade
string | null
Detected numeric grade for slab comps.
10
soldAt
string | null
ISO timestamp for completed sale.
2026-01-27T12:00:00.000Z
anomalyFlag
boolean | null
Whether the listing was flagged as suspicious or outlier-like.
false
anomalyReason
string | null
Reason attached to anomalyFlag when present.
price_outlier

Examples

Review high-value PSA 10 comps
const params = new URLSearchParams({
  grader: "PSA",
  grade: "10",
  min_price: "1000",
  sort: "price_desc",
})

const response = await fetch(
  `https://api.poketrace.com/v1/cards/019bff77.../listings?${params}`,
  { headers: { "X-API-Key": process.env.POKETRACE_API_KEY } },
)

const { data } = await response.json()
Listing response shape
{
  "data": [{
    "sourceItemId": "123456789012",
    "title": "Pokemon Base Set Charizard PSA 10",
    "price": 5200,
    "currency": "USD",
    "listingUrl": "https://www.ebay.com/itm/123456789012",
    "grader": "PSA",
    "grade": "10",
    "soldAt": "2026-01-27T12:00:00.000Z",
    "anomalyFlag": false,
    "anomalyReason": null
  }],
  "pagination": { "hasMore": true, "nextCursor": "MjA=", "count": 20 }
}

When to Use It

Use listings for comp evidence, not for normal search. Load /cards first, then fetch /listings only when the UI needs to show why a price is believable.

Audit Trail

Show title, soldAt, price, grader, grade, listingUrl, and anomalyReason together. That gives users enough context to accept or reject a comp.

Filtering Strategy

For slab workflows, pass grader and grade instead of parsing titles client-side. For raw workflows, use price bounds and sort order to review extreme comps.

Frequently asked questions

Can I show sold eBay Pokemon card comps in my app?

Yes, on Scale. The endpoint returns individual sold listings with prices, sold timestamps, grader fields, URLs, and anomaly metadata.

Should I call listings for every search result?

No. Use /cards for search and current pricing. Use /listings when a user opens a card, audits a valuation, or needs high-confidence comp evidence.