Pokemon Card Listings API
Use this Scale endpoint when aggregate prices are not enough and the user needs the sold listings behind a valuation.
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.
Completed-sale evidence behind aggregate values.
Default 20; cursor pagination for deeper comp review.
Rate limited separately at 30 requests per 30 seconds per account.
Parameters
Path Parameters
PokeTrace card ID from /cards or /cards/:id.
019bff77-befa-771d-bab0-f5909f0a78c9
Query Parameters
Listings per page. Max 20, default 20.
20
Pagination cursor from pagination.nextCursor.
MjA=
Filter by grading company. The API normalizes this to uppercase.
PSA
Filter by numeric grade stored on the listing.
10
Positive price bounds for comp review.
1000 / 10000
sold_at_desc, sold_at_asc, price_desc, or price_asc.
price_desc
Response Fields
Listing Fields
Fields returned for each sold eBay listing.
Internal listing row ID.
421012
Marketplace item identifier.
123456789012
Listing classification when available.
auction
Original listing title used for comp inspection.
Pokemon Base Set Charizard PSA 10
Sold price and currency for the comp.
5200 USD
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.
Raw card condition inferred or stored for the listing.
NEAR_MINT
Detected grading company for slab comps.
PSA
Detected numeric grade for slab comps.
10
ISO timestamp for completed sale.
2026-01-27T12:00:00.000Z
Whether the listing was flagged as suspicious or outlier-like.
false
Reason attached to anomalyFlag when present.
price_outlier
Examples
Review high-value PSA 10 comps
javascriptconst 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
json{
"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.