Every way to get eBay sold items through an API
| API | Returns | Access | Sold items today? |
|---|---|---|---|
| Browse API item_summary/search | Active listings only | Open to all developers | Cannot return sold items |
| Finding API findCompletedItems | Sold and completed items | Decommissioned February 4, 2025 | No longer works |
| Marketplace Insights item_sales/search | Sold items, last 90 days | Limited Release, not open to new users | Works only if eBay already approved you |
| Sell Analytics / Trading API | Your own account's sales | Your seller account | Only your sales, not the market |
| CompSniper /v1/scrape | Sold items, up to 240 per request | Free API key in minutes | Works today on 8 eBay sites |
The official history in detail, with links to eBay's own documentation, is in does eBay have a sold listings API? This guide is the practical part: getting sold items into your code today.
Get sold items in Python, JavaScript or cURL
Create a free key at compsniper.com/signup (100 requests a month, no credit card) and set it as COMPSNIPER_API_KEY. Then:
import os
import requests
def get_sold_items(keyword, site="ebay.com", count=240, page=1, **filters):
response = requests.get(
"https://api.compsniper.com/v1/scrape",
headers={"Authorization": f"Bearer {os.environ['COMPSNIPER_API_KEY']}"},
params={"keyword": keyword, "ebaySite": site, "sold": "true",
"count": count, "page": page, **filters},
timeout=75,
)
response.raise_for_status()
return response.json()
data = get_sold_items("nintendo switch oled")
print(data["summary"]["median"], len(data["items"]))
for item in data["items"][:5]:
print(item["endedAt"], item["soldPrice"], item["title"])Full walkthroughs with retries and pagination: Python guide, JavaScript and TypeScript guide.
What a sold items response looks like
Each request returns the sold rows in items and a calculated summary. Trimmed example: the summary numbers come from a real Switch OLED search on October 2, 2026, and the single row shows the shape of an item.
{
"keyword": "nintendo switch oled",
"totalItems": 181,
"hasNextPage": false,
"summary": { "count": 181, "currency": "USD", "median": 180, "p25": 159.99,
"p75": 219.99, "min": 85.99, "max": 499.99 },
"items": [
{ "itemId": "...", "title": "Nintendo Switch OLED Model White ...",
"soldPrice": "189.99", "soldCurrency": "USD", "shippingPrice": "0.00",
"endedAt": "2026-10-01T...", "condition": "Pre-Owned",
"bestOfferAccepted": null, "url": "https://www.ebay.com/itm/..." }
]
}Every field is listed in the API reference. bestOfferAccepted flags sales where the visible price may be higher than what the buyer paid.
Filter sold items and page through results
ebaySite: ebay.com, ebay.co.uk, ebay.de, ebay.fr, ebay.it, ebay.es, ebay.ca or ebay.com.au. Defaults to ebay.com.itemCondition(new, used) orconditionIdfor eBay's numeric condition IDs.categoryId: an eBay category ID from our category ID reference.minPrice,maxPrice,buyingFormat,itemLocation,soldAfter,soldBefore.pagewithhasNextPagefor more results (see pagination).
These map one to one onto eBay's own search filters; our eBay URL parameters guide shows the LH_Sold, _sacat and _sop values behind each one.
Production tips
- Keep the key on your server. Never ship it in a browser bundle or mobile app.
- Retry 429 and 503 with backoff. Failed requests are not charged. The error guide lists which codes are safe to retry.
- Set
ebaySiteevery time. The API does not guess your user's country. - Cache per keyword. Sold prices change daily, not every second. Refreshing once a day per item is plenty for most pricing apps.
- Many items? Use bulk search for up to 20 keywords per run, or the Card Batch API for trading cards.
eBay sold items API questions
Can the eBay Browse API return sold items?
No. The Browse API item_summary/search endpoint only returns items currently for sale. It has no sold or completed filter, so it cannot be used for sold prices.
Does findCompletedItems still work?
No. findCompletedItems was part of eBay's Finding API, which eBay decommissioned on February 4, 2025. Code that calls it now fails.
How do I get access to the Marketplace Insights API?
eBay lists Marketplace Insights as a Limited Release that is not open to new users. Developers without existing approval generally cannot get access, which is why most teams use a third-party sold items API.
What is the best API to get eBay sold items?
For most developers, a third-party sold listings API that works today. CompSniper's GET /v1/scrape returns up to 240 sold items per request as JSON with a price summary, across 8 eBay marketplaces, with 100 free requests a month.
How far back can I get eBay sold items through an API?
Sold-item search through CompSniper and through Marketplace Insights covers roughly the last 90 days. Longer history exists only inside eBay's Terapeak Product Research dashboard, which has no public API.
Can I get my own eBay sales through the API?
Yes. eBay's Sell APIs and the Trading API return orders for your own seller account. They do not return other sellers' sales, so they cannot be used for market comps.
Written by CompSniper's founder. eBay API status checked October 3, 2026.