Looking for the overview — what this API returns, what it costs, and a call you can run without a key? See the eBay Sold Listings API page →
E-commerce & Marketplaces

eBay Sold Listings API & Scraper

The eBay Sold Listings API returns what actually sold on eBay in two actions.

2 actionsLive JSON1,000 free credits$0.67–$1.50 / 1,000 creditsMCP-ready
Get a free keyOpen in playground

🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.

seller_sales lists the completed sales of one seller, newest first: item title, item number, the price the buyer paid in the listing's currency, whether eBay marks it a verified purchase and the recency band eBay prints (past month, past 6 months, past year, older), 25 to 200 rows per page, filtered by words in the item title and by period. sold_item reads one listing by item number as a sold record: whether it ended in a sale (an ended listing is not a sale), the exact end time, the final price in the listing currency plus eBay's US dollar conversion, auction or fixed price, number of bids, reserve, whether Best Offer was enabled, the eBay site it was listed on, seller, condition, item location, item specifics, category path and images. A keyword search over all of eBay's sold listings is not offered: eBay shows those results only to signed-in users. One ReefAPI key, the standard { ok, data, meta, error } envelope, no eBay account.

Reference

How a listing reads in sold_item

eBay keeps different pages for a listing depending on its state. Measured on live listings on 2026-10-18.

statesoldprice_iswhat else you get
Ended in a sale (recent)truefinalsold_at, bid_count, best_offer_enabled, full specifics
Ended without a salefalsefinalended_at and eBay's own ending message
Still listed (multi-quantity)nullcurrent_askingunits_sold and units available
Ended about 4 months ago or morenullfinaltitle, last price, end date only (page_kind archived)

On 6 of 6 sold listings the price a buyer paid in seller_sales equalled sold_item's final price. For a listing that is still selling, the item page shows today's price, which matched the earlier sale on 14 of 23: use the seller_sales row for the sale price.

Live example

Real request and response JSON

Captured from the indexed primary action, seller_sales, on .

Captured request
{
  "method": "POST",
  "url": "https://api.reefapi.com/ebay-sold/v1/seller_sales",
  "headers": {
    "x-api-key": "$REEF_KEY",
    "content-type": "application/json"
  },
  "body": {
    "seller": "ed94falcon"
  }
}
Captured response
{
  "ok": true,
  "meta": {
    "api": "ebay-sold",
    "endpoint": "seller_sales",
    "mode": "live",
    "latency_ms": 1409.3,
    "record_count": 25,
    "bytes": 220870,
    "cache_hit": false,
    "seller": "ed94falcon",
    "page": 1,
    "total_pages": 86,
    "has_more": true,
    "next_page": 2,
    "page_clamped": false,
    "limit": 25,
    "period": "all",
    "sort": "newest",
    "query": null,
    "rows_with_price": 25,
    "rows_with_item_link": 25,
    "upstream_attempts": 1,
    "warnings": null,
    "basis": "feedback received as a seller = completed purchases; eBay prints a recency band, not a date",
    "charged_credits": 3,
    "version": "1.0.0",
    "request_id": "b10293260ecf4ff3",
    "queue_ms": 1.2,
    "fetched_at": "2026-10-18T17:44:58.867Z"
  },
  "data": {
    "seller": "ed94falcon",
    "rows": [
      {
        "feedback_id": "2908306748011",
        "item_id": "147591044439",
        "title": "Corsair AX1200 1200W ATX Modular Power Supply Unit PSU Black CMPSU-1200AX",
        "item_url": "https://www.ebay.com/itm/147591044439",
        "item_link_published": true,
        "price": {
          "value": 50,
          "currency": "AUD",
          "raw": "AU $50.00"
        },
        "verified_purchase": false,
        "period": "Past month",
        "buyer": null,
        "automated_feedback": true,
        "buyer_feedback_score": null,
        "rating": "positive",
        "comment": "Order delivered on time with no issues"
      },
      {
        "feedback_id": "2904552713011",
        "item_id": "147604866369",
        "title": "Victron Energy Blue Smart IP65 12V 4A Bluetooth Mains Charger BPC120431014R",
        "item_url": "https://www.ebay.com/itm/147604866369",
        "item_link_published": true,
        "price": {
          "value": 42.5,
          "currency": "AUD",
          "raw": "AU $42.50"
        },
        "verified_purchase": true,
        "period": "Past month",
        "buyer": "c***a",
        "automated_feedback": false,
        "buyer_feedback_score": 3143,
        "rating": "positive",
        "comment": "Great Ebayer ......Many thanks....AAA+++"
      },
      {
        "feedback_id": "2904354403011",
        "item_id": "144745709463",
        "title": "VN COMMODORE WINDOW WINDER,",
        "item_url": "https://www.ebay.com/itm/144745709463",
        "item_link_published": true,
        "price": {
          "value": 4.99,
          "currency": "AUD",
          "raw": "AU $4.99"
        },
        "verified_purchase": true,
        "period": "Past month",
        "buyer": "f***_",
        "automated_feedback": false,
        "buyer_feedback_score": 6,
        "rating": "positive",
        "comment": "As qdvertised"
      }
    ]
  }
}
Actions

What the eBay Sold Listings API does

ActionDescriptionConcrete use caseKey params
seller_salesCompleted sales of one eBay seller, newest first: each row is a purchase a buyer left feedback for — item title, item number, the price paid in the listing currency, 'Verified purchase', and the recency band eBay prints (Past month / Past 6 months / Past year / More than a year ago). Filter by words (eBay's own feedback search), by period, 25-200 rows per page. eBay prints no exact date here: pass a row's item_id to sold_item for the exact sold date (kept by eBay for roughly the last 90-120 days).Pricing teams call seller_sales to get completed sales of one eBay seller, newest first.seller, query, period, sort, page, ...
sold_itemOne eBay listing by item number, read as a sold-listing record: did it sell (eBay's 'Sold' banner — an ended listing is not a sale), when (exact end time), for how much (final price in the listing currency, plus eBay's conversion), auction or fixed price, bid count, reserve, 'or Best Offer', the eBay site it was listed on, seller, condition, item location, item specifics, category path and images.Marketplace operators call sold_item to get one eBay listing by item number, read as a sold-listing record.item_id
Code samples

Call seller_sales from your stack

curl -X POST https://api.reefapi.com/ebay-sold/v1/seller_sales \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"seller":"ed94falcon"}'
MCP one-liner
Ask your MCP-connected assistant: call reefapi.ebay-sold.seller_sales with {"seller":"ed94falcon"}.
Use cases

Who uses this API and why

  • Price an item from what really sold: sold_item gives the final price, bids and sold date of a comparable listing.
  • Watch a competitor: seller_sales shows what a seller sold this month and at what price.
  • Find a seller's best sellers: filter seller_sales by words and period, count items.
  • Check a sale: confirm that a listing ended in a sale and not just ended.
  • Build a resale price log: store seller_sales rows daily, then fill the exact date with sold_item.
FAQ

Questions developers ask before integrating

Can I search all of eBay's sold listings by keyword?

No. eBay shows sold and completed search results only to signed-in users, on every eBay site we checked (11 sites, 2026-10-18), and this API does not sign in. What is public is each seller's completed sales and each listing's own page, and that is what the two actions return.

What exactly is a row of seller_sales?

One purchase a buyer left feedback for: item title, item number, the price paid in the listing currency, 'verified purchase', the buyer as eBay masks the name, the buyer's feedback score, the rating and the comment. eBay automated feedback rows are included and flagged. eBay prints a recency band, not a date.

How do I get the exact sold date?

Pass the row's item_id to sold_item. While eBay still keeps the full listing page (roughly the last 3 to 4 months), sold_at is the exact end time in UTC and the final price is the hammer or sale price. Older listings come back as an archived record with the end date and last price but no sold flag.

Does an ended listing mean it sold?

No, and sold_item keeps them apart. sold is true only when eBay shows its Sold banner or 'Item sold on' line; a listing the seller ended or that got no buyer is sold=false with eBay's own ending message.

Do I get the accepted Best Offer price?

No. eBay's public page shows that Best Offer was enabled (best_offer_enabled) but not the amount that was accepted.

Which currency are prices in?

The currency the listing was sold in: AU $37.00 for an eBay Australia sale, GBP for eBay UK. sold_item adds price_converted, eBay's own conversion to US dollars, separately.

How far back does seller_sales go?

As far as the seller's feedback goes: 86 pages of 25 for a small seller, more than 2,000 pages for large ones. Rows older than about 90 days lose the item link but keep the item number; rows older than a year can lose the title and price. Private listings show neither item nor price.

What is the eBay Sold Listings API?

eBay Sold Listings API is a ReefAPI endpoint group for what sold on ebay, as json: a seller's completed sales with the price paid, and any listing read as a sold record with sold date, final price, bids and format. It returns live JSON through POST requests under /ebay-sold/v1.

Is the eBay Sold Listings API free to try?

Yes. ReefAPI starts with 1,000 free credits, no card required. eBay Sold Listings calls use the same shared credit balance as every other ReefAPI engine.

Do I need an eBay Sold Listings login or account?

No login to eBay Sold Listings is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.

How fresh is the eBay Sold Listings data?

The page example is captured from a live seller_sales call, and production requests fetch live data through ReefAPI rather than a static sample.

How many credits does the eBay Sold Listings API use?

eBay Sold Listings actions currently cost 3 credits per successful call. Failed or blocked calls are free. All APIs draw from one credit pool.

Can I call eBay Sold Listings from an AI assistant or MCP client?

Yes. Connect ReefAPI once through MCP and your assistant can call ebay-sold actions with the same key, credit pool and JSON envelope used by normal REST requests.

Is the eBay Sold Listings API an eBay Sold Listings scraper?

It is the managed alternative to a DIY eBay Sold Listings scraper. Instead of building and maintaining your own scraper — proxies, headless browsers, captcha and constant breakage — you call one ReefAPI endpoint and get the same what sold on ebay, as json: a seller's completed sales with the price paid, and any listing read as a sold record with sold date, final price, bids and format back as clean JSON.

docs / ebay-sold

eBay Sold Listings

What sold on eBay, as JSON: a seller's completed sales with the price paid, and any listing read as a sold record with sold date, final price, bids and format.

base /ebay-sold/v12 endpoints
post/ebay-sold/v1/seller_sales3 credits

Completed sales of one eBay seller, newest first: each row is a purchase a buyer left feedback for — item title, item number, the price paid in the listing currency, 'Verified purchase', and the recency band eBay prints (Past month / Past 6 months / Past year / More than a year ago). Filter by words (eBay's own feedback search), by period, 25-200 rows per page. eBay prints no exact date here: pass a row's item_id to sold_item for the exact sold date (kept by eBay for roughly the last 90-120 days).

ParameterAllowed / rangeDescription
sellerrequired—eBay seller username, exactly as on the seller's page.
queryoptional—Only sales matching these words in eBay's own feedback search (measured: every row returned had the words in its item title).
period = alloptionalall · 1m · 6m · 12mOnly sales whose feedback was left in this window.
sort = newestoptionalnewest · relevanceRow order.
page = 1optional1–10000Page number; meta.total_pages says how many there are.
limit = 25optional25 · 50 · 100 · 200Rows per page (eBay offers 25, 50, 100 or 200).
Try in playground →
post/ebay-sold/v1/sold_item3 credits

One eBay listing by item number, read as a sold-listing record: did it sell (eBay's 'Sold' banner — an ended listing is not a sale), when (exact end time), for how much (final price in the listing currency, plus eBay's conversion), auction or fixed price, bid count, reserve, 'or Best Offer', the eBay site it was listed on, seller, condition, item location, item specifics, category path and images.

ParameterAllowed / rangeDescription
item_idrequired—eBay item number (a seller_sales row's item_id, as is) or an ebay.*/itm/ URL.
Try in playground →
Built for volume
5M+ requests a day

Measured at 60 requests a second across the fleet, with no central bottleneck. Volume pricing is on request, and per-key limits are raised for high-volume accounts.

Missing a source?
We build it

Tell us a site we do not cover yet and it becomes an engine. A customer asked for bestprice.gr on a Sunday and it was in the catalog the next day.

Support
2 minute median reply

Median time from a question in the live chat to the first answer, measured across every answered conversation. Setup help included, no support tier to buy.

One key, one balance
Every API included

No per-site plans and no separate subscriptions. One key and one credit pool across the whole catalog, so adding a source costs nothing up front.

Planning something large? Tell us the volume and the sources and we will come back with what it costs and what we would have to build.