# eBay Sold Listings API — what a seller actually sold on eBay (item, price paid, recency, verified purchase) and the sold listing itself (sold date, final price, bids, format, condition, item specifics). Logged out, no account, no key.

> 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).
> ReefAPI engine `ebay-sold` · 2 endpoints · clean JSON, no scraping or browsers to manage.

## How to call
- **Endpoint:** `POST https://api.reefapi.com/ebay-sold/v1/<action>` with a JSON body.
- **Auth:** header `x-api-key: <YOUR_REEFAPI_KEY>` — create one free (1,000 credits, no card): https://reefapi.com/signup
- **Response (every call):** `{ ok: boolean, data: ..., meta: { record_count, credits, ... }, error: { code, message } }` — branch on `ok`. Failed calls are free except verified SHEIN NOT_FOUND on product/detail and price (4 credits).
- **One key + one shared credit pool** across every ReefAPI API. Per-call credits are listed on each endpoint below.
- **Use it from an AI agent (MCP):** connect `https://api.reefapi.com/mcp` (remote streamable-http). Send the key as `Authorization: Bearer <key>`, or put it in the URL (`?key=<key>`) when the client has no header field, as ChatGPT does.

## Endpoints

### POST https://api.reefapi.com/ebay-sold/v1/seller_sales — 3 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).

**Parameters:**
- `seller` (string, required) — eBay seller username, exactly as on the seller's page.
- `query` (string, optional) — Only sales matching these words in eBay's own feedback search (measured: every row returned had the words in its item title).
- `period` (enum, optional, default "all") — Only sales whose feedback was left in this window. [one of: all, 1m, 6m, 12m]
- `sort` (enum, optional, default "newest") — Row order. [one of: newest, relevance]
- `page` (integer, optional, default 1) — Page number; meta.total_pages says how many there are.
- `limit` (enum, optional, default "25") — Rows per page (eBay offers 25, 50, 100 or 200). [one of: 25, 50, 100, 200]

**Returns:** rows[]: feedback_id, item_id, title, item_url, item_link_published, price{value, currency, raw}, verified_purchase, period, buyer (as eBay masks it), buyer_feedback_score, rating, comment. meta: page, total_pages, has_more.

**Example request body:**
```json
{
  "seller": "ed94falcon"
}
```

### POST https://api.reefapi.com/ebay-sold/v1/sold_item — 3 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.

**Parameters:**
- `item_id` (string, required) — eBay item number (a seller_sales row's item_id, as is) or an ebay.*/itm/ URL.

**Returns:** item{item_id, title, url, page_kind (full|archived), listing_status, sold (true = ended in a sale, false = ended unsold, null = still listed or archived), status_text, sold_at, ended_at, started_at, price{value, currency, raw}, price_is (final | current_asking), price_converted, units_sold, units_available, buying_format, bid_count, best_offer_enabled, has_reserve, marketplace, seller{username, url}, condition, item_location, shipping_text, shipping_quoted_for, brand, mpn, category_path[], item_specifics{}, images[]}

**Example request body:**
```json
{
  "item_id": "147591040580"
}
```

## At scale
- **Volume:** 5M+ requests a day, measured at 60 requests a second across the fleet with no
  central bottleneck. Per-key limits are raised for high-volume accounts; volume pricing on request.
- **Missing a source:** tell us a site we do not cover and it becomes an engine. A customer asked
  for bestprice.gr on 21 Sep 2026 and it was in the catalog on 22 Sep.
- **Support:** 2 minute median time from a question in the live chat to the first answer. Setup
  help included, no support tier to buy.
- **One key, one credit pool** across every API. No per-site plans, no separate subscriptions.

## More
- Try it live, no code: https://reefapi.com/playground?engine=ebay-sold
- Human docs page: https://reefapi.com/docs/ebay-sold
- Overview page: https://reefapi.com/ebay-sold-api
- Every ReefAPI API in one file (for your AI): https://reefapi.com/llms-full.txt
