SoldCompsTry free →

eBay sold data. One endpoint. Clean JSON.

eBay shut down findCompletedItems in February 2025 and gated Marketplace Insights behind partner approval. SoldComps gives you the same data through a simple REST API — no eBay developer account needed, no OAuth dance, no application review.

Get your API key — free
GET /v1/scrape
curl -H "Authorization: Bearer sc_YOUR_KEY_HERE" \
  "https://api.sold-comps.com/v1/scrape\
?keyword=pokemon+base+set+booster\
&ebaySite=ebay.com\
&count=10"

# Response (trimmed)
{
  "keyword": "pokemon base set booster",
  "page": 1,
  "totalItems": 10,
  "hasNextPage": true,
  "autoSelectedCategory": { "id": "2536", "name": "Box & Case Breaks" },
  "items": [
    {
      "itemId": "256123456789",
      "url": "https://www.ebay.com/itm/256123456789?nordt=true",
      "title": "Pokemon Base Set Booster Pack — Sealed, Heavy",
      "soldPrice": "289.99",
      "soldCurrency": "USD",
      "shippingPrice": "0.00",
      "shippingType": "free",
      "totalPrice": "289.99",
      "condition": "Brand New",
      "conditionId": 1000,
      "buyingFormat": "buyItNow",
      "bestOfferAccepted": false,
      "bidCount": null,
      "endedAt": "2026-07-01T14:23:00.000Z",
      "sellerUsername": "cardvault_tx",
      "sellerFeedbackScore": 4821,
      "sellerPositivePercent": 99.8,
      "scrapedAt": "2026-07-02T08:00:00.000Z"
    }
  ]
}

eBay's official API doesn't give you sold data anymore

eBay's Finding API findCompletedItems was deprecated in October 2020 and fully shut down in February 2025. The Marketplace Insights API requires Business-level approval that is effectively never granted to independent developers. The Browse API works but only returns active listings — no completed sales, no final prices.

Your options used to be: build your own scraper and maintain proxy infrastructure, pay for generic web scraping services and write eBay parsers yourself, or give up. Third-party tools built on the Finding API — like ShelfTrend — were forced to pivot or shut down when eBay decommissioned it. SoldComps exists because we needed this data ourselves and got tired of rebuilding the pipeline every time eBay changed their markup.

One GET request. That's the integration.

No SDK required. GET /v1/scrape with an Authorization: Bearer header and a keyword parameter. The response is a JSON object with an items array — each item has 24 fields including price, condition, date, seller info, and images.

Add ebaySite for a specific marketplace (8 supported), itemCondition for filtering, and page for pagination. Each page returns up to 240 results — increment until hasNextPage is false.

Rate limits: 60 requests per minute on all paid plans. The free tier includes 100 requests per month — enough to validate an integration before committing.

Full parameter reference and response schema in the API documentation.

curl -H "Authorization: Bearer sc_YOUR_KEY_HERE" \
  "https://api.sold-comps.com/v1/scrape\
?keyword=pokemon+base+set+booster\
&ebaySite=ebay.com\
&count=10"

# Response (trimmed)
{
  "keyword": "pokemon base set booster",
  "page": 1,
  "totalItems": 10,
  "hasNextPage": true,
  "autoSelectedCategory": { "id": "2536", "name": "Box & Case Breaks" },
  "items": [
    {
      "itemId": "256123456789",
      "url": "https://www.ebay.com/itm/256123456789?nordt=true",
      "title": "Pokemon Base Set Booster Pack — Sealed, Heavy",
      "soldPrice": "289.99",
      "soldCurrency": "USD",
      "shippingPrice": "0.00",
      "shippingType": "free",
      "totalPrice": "289.99",
      "condition": "Brand New",
      "conditionId": 1000,
      "buyingFormat": "buyItNow",
      "bestOfferAccepted": false,
      "bidCount": null,
      "endedAt": "2026-07-01T14:23:00.000Z",
      "sellerUsername": "cardvault_tx",
      "sellerFeedbackScore": 4821,
      "sellerPositivePercent": 99.8,
      "scrapedAt": "2026-07-02T08:00:00.000Z"
    }
  ]
}

What's in every response

Single result object
{
  "itemId": "256123456789",
  "url": "https://www.ebay.com/itm/256123456789?nordt=true",
  "thumbnailUrl": "https://i.ebayimg.com/images/g/.../s-l500.webp",
  "fullResThumbnailUrl": "https://i.ebayimg.com/images/g/.../s-l1600.webp",
  "epid": "20049285656",
  "title": "Pokemon Base Set Booster Pack — Sealed",
  "condition": "Brand New",
  "conditionId": 1000,
  "sellerType": null,
  "buyingFormat": "buyItNow",
  "bestOfferAccepted": false,
  "bidCount": null,
  "categoryId": "2536",
  "endedAt": "2026-07-01T14:23:00.000Z",
  "soldPrice": "289.99",
  "soldCurrency": "USD",
  "shippingPrice": "0.00",
  "shippingCurrency": "USD",
  "shippingType": "free",
  "totalPrice": "289.99",
  "sellerUsername": "cardvault_tx",
  "sellerPositivePercent": 99.8,
  "sellerFeedbackScore": 4821,
  "scrapedAt": "2026-07-02T08:00:00.000Z"
}
itemIdeBay listing item ID
urlCanonical listing URL
titleFull listing title
soldPriceFinal sale price (decimal string)
soldCurrencyISO 4217 currency code (USD, GBP, EUR…)
shippingPriceShipping cost; "0.00" when free, null when unknown
shippingCurrencyISO 4217 currency code for the shipping cost
shippingTypefree | paid | pickup | unknown
totalPricesoldPrice + shippingPrice when both known
conditionLocalized display label (e.g. "Pre-Owned")
conditionIdeBay numeric condition ID (1000 New, 3000 Used…)
sellerTypeprivate | business (EU sites only; null elsewhere)
endedAtISO 8601 sold/ended date
buyingFormatauction | buyItNow | auctionWithBIN
bestOfferAcceptedWhether the price was a negotiated offer
bidCountNumber of bids (auctions only)
sellerUsernameSeller's eBay username
sellerFeedbackScoreLifetime feedback count
sellerPositivePercentPositive feedback percentage (number)
thumbnailUrl500px listing thumbnail
fullResThumbnailUrl1600px high-res image
epideBay catalog product ID (null if no match)
categoryIdeBay category ID
scrapedAtISO 8601 timestamp of when SoldComps fetched the listing

What people build with this

Price comparison tools

Pull recent sold prices for a product across conditions and sellers. Surface average sale price, price range, and trend direction so users can price competitively without manual research.

Market analytics dashboards

Aggregate sold data over time to show sell-through velocity, seasonal demand shifts, and category-level price movements. Common in reseller tooling and marketplace intelligence platforms.

Valuation engines

Given an item description and condition, estimate fair market value from comparable recent sales. Used in insurance, estate liquidation, and collector inventory management.

Inventory management

Automatically suggest listing prices for inventory based on what identical or similar items actually sold for in the last 90 days. Feeds into repricing logic for high-volume sellers.

See how resellers use SoldComps for pricing and how market researchers track secondary-market trends.

Built for production use

Uptime

99%+

Latency

Median 4–6s (real-time, not cached)

Rate limits

60 req/min on all paid plans

Auth

Authorization: Bearer sc_… header

Pagination

Up to 240 items/page, paginate via hasNextPage

Marketplaces

8 (US UK DE FR IT ES CA AU)

Errors

Structured JSON with error codes

Docs

OpenAPI 3.1 at /docs

Common questions

How is this different from eBay's Browse API?

eBay's Browse API returns active listings only — items currently for sale. SoldComps returns completed sales: the final transaction price, the date it sold, the condition, and the seller. If you need to know what something actually sold for (not what someone is asking), you need sold data.

Is the data cached or real-time?

Real-time. Every API call fetches live data from eBay. There is no pre-built dataset or cache layer between you and the marketplace. Median latency is around 4–6 seconds per request.

Do I need an eBay developer account?

No. SoldComps handles all eBay interaction — proxy rotation, page parsing, geo targeting, currency normalization. You get a SoldComps API key from the dashboard, add it as a Bearer token in the Authorization header, and start making requests. No OAuth, no eBay application review.

Ship your integration this week

Free plan includes 100 requests per month. Full API documentation at /docs.