Sold comps API.
Real eBay sales, one call.

Sold comps from eBay as clean JSON: send a keyword, get back up to 200 completed sales with the median already worked out. For card apps, watch dealers, resellers and AI agents.

curl "https://api.soldcomps.io/v1/sold?q=pokemon+card" -H "Authorization: Bearer $KEY"

Free: 100 requests a month, no card

query · pokemon card

charizard 4/102

$ GET /v1/sold?q=charizard+4/102 → 186 sales

Real sales, not asking prices

Every item is a completed eBay sale with its sold price, date, condition and shipping. Up to 200 per request.

clean · 200 sales

median $118.50

lots · for parts · outliers → left out

A price you can use

The median comes back precomputed, with lots, for-parts listings, outliers and hidden Best Offers left out.

your app ← json

200 OK

no eBay keyset · no OAuth · no review

Nothing to get approved

No eBay developer keyset, OAuth or partner review. Get a key and make your first call in a minute.

Try it: sold comps for anything

Live eBay sales, the same data the API returns. Five free lookups a day.

Sold comps: Pokemon Card

Real sales from the last 90 days: what it sold for, when, and in what condition. The median skips lots, broken items and outliers.

How the sold comps API works

Search a keyword, get every recent eBay sale back as JSON, with the junk already filtered out of the median.

  1. 1 Your app asks

    GET /v1/sold
      ?q=nintendo 64 console
      &condition=used
    
    Host: api.soldcomps.io
    Authorization:
      Bearer sh_live_…

    One GET request with your API key. No eBay account, OAuth or approval.

  2. 2 We fetch & clean

    • N64 Console w/ Controller, TestedN64 Console w/ Controller, Tested$118.50
    • Nintendo 64 Console Only, WorksNintendo 64 Console Only, Works$96.00
    • N64 Bundle 12 Games LOTN64 Bundle 12 Games LOT$389.99lot
    • N64 NOT WORKING for partsN64 NOT WORKING for parts$41.00for parts
    • Nintendo 64 Charcoal GreyNintendo 64 Charcoal Grey$124.00

    Up to 200 recent sales. Lots, for-parts listings and outliers are flagged and left out of the stats.

  3. 3 You get sold comps

    $118.50

    median sold price

    183 clean sales from the last 90 days. 17 lots and outliers excluded.

200 price tags in rows, a few faded out

200 sales in one call · lots, for-parts and outliers flagged and left out of the median

One endpoint.
Clean JSON.

A single GET request with your API key. No OAuth, no XML, no pagination tokens. Pass a keyword, get back up to 200 sold listings.

Every sale includes the sold price, shipping, currency, sold date, condition, how it sold (auction, Buy It Now or Best Offer), a photo and a link to the listing.

sites
eBay US, UK and Germany: ebay.com, ebay.co.uk, ebay.de
filters
Condition, price range, buying format, date window
stats
Median, middle half, min and max, with lots, broken items and outliers left out
Read the docs →
RESPONSE · JSON
{
  "query": "pokemon card charizard",
  "site": "EBAY_US",
  "window_days": 90,
  "count": 186,
  "stats": {
    "median": 42.5,
    "p25": 18,
    "p75": 96,
    "min": 3.5,
    "max": 410,
    "excluded": 23,
    "currency": "USD"
  },
  "items": [
    {
      "item_id": "306123456789",
      "title": "Charizard ex 199/165 Pokemon 151 Special Illustration Rare NM",
      "sold_price": { "value": 42.5, "currency": "USD" },
      "shipping": { "value": 4.99, "currency": "USD" },
      "sold_at": "2026-10-22",
      "condition": "Pre-Owned",
      "buying_format": "auction",
      "best_offer_accepted": false,
      "url": "https://www.ebay.com/itm/306123456789",
      "flags": []
    },
    // … 185 more sales
  ]
}

Sold comps API pricing

Pay per search, not per result: one request returns up to 200 sold listings. Free to start. Full pricing

PlanPriceRequests / moUp to listingsRate limit
FreeFree10020,00030 req/min
Starter$9/mo2,500500,00060 req/min
Growth Popular$29/mo12,0002,400,000120 req/min
Scale$79/mo60,00012,000,000300 req/min

Sold comps guides for developers

How eBay sold data works, and how to get it into your code. All guides.

Questions

What is a sold comps API?

A sold comps API returns recent completed sales (sold comparables) for an item as structured data, so software can price things from what actually sold instead of from asking prices. SaleHistory's sold comps API takes a keyword and returns up to 200 eBay sold listings as JSON, with the median and middle range already worked out.

Is there an official eBay API for sold comps?

Only one: the Marketplace Insights API, which returns up to 90 days of sold items. It is a Limited Release API that requires eBay business approval, and eBay currently says it is not open to new users. The old Finding API call findCompletedItems was decommissioned in February 2025, and the Browse API only returns active listings.

What does one sold comps request return?

One request is one keyword search. It returns up to 200 completed eBay sales with title, sold price, shipping, sold date, condition, a Best Offer flag and a link to the listing, plus a median that already ignores lots, for-parts listings and outliers.

How far back does eBay sold data go?

eBay shows roughly the last 90 days of completed sales, and that is the window SaleHistory returns. For multi-year trend charts, eBay's own Terapeak dashboard goes back about three years, but it has no API.

Do I need an eBay developer account?

No. You sign up, get a SaleHistory API key, and send a GET request with it. There's no eBay keyset, OAuth flow or approval process, and you never pass us an eBay login.

How is it priced?

You pay per search, not per result. The free plan includes 100 requests a month (up to 20,000 sold listings) with no card. Paid plans start at $9 a month for 2,500 requests.

Can I use the data in a commercial product?

Yes, every plan including Free permits commercial use, such as a repricing tool, a card scanner, a Chrome extension or an estate-sale pricing workflow.