PokeTrace 2.0 ya está aquíMira qué ha cambiado
PokeTrace 2.0 ya está aquíMira qué ha cambiado

Sold comps

Pokemon Card Listings API

Use this endpoint (Scale and Business plans) 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 or Business
Rate limited separately at 30 requests per 30 seconds per account.

Endpoint

GET /v2/cards/:id/listings

curl -H "X-API-Key: YOUR_KEY" \
  "https://api.poketrace.com/v2/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 or Business 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/v2/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 and Business. 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.