How to get eBay sold prices with an API
eBay retired public access to completed-sales data for most developers. Here is how to pull real eBay sold prices as JSON with a simple REST API, with copy-paste examples.
Sold prices are the ground truth of resale. Whether you are pricing inventory, building a valuation tool, or feeding a model, you need what items actually sold for, not what sellers are asking. This guide shows how to get eBay sold prices programmatically as clean JSON.
Why this is harder than it should be
eBay's own Marketplace Insights API (which exposes sold data) is a restricted, limited-release program that most developers cannot get into. The public Browse API only returns active listings. And scraping eBay's "sold" search yourself means fighting bot protection, rotating proxies, parsing shifting HTML, and handling logins. Most teams do not want to own that.
The simple path: a sold-listings API
The eBay Sold Listings API wraps all of that. You send one keyword, you get back up to 240 completed sales as JSON, each with price, sale date, condition, shipping, and seller. One request:
curl 'https://api.ebaysoldlistingsapi.com/scrape?keyword=nintendo+switch+oled' \
-H 'Authorization: Bearer YOUR_API_KEY'The response is the raw sale record, ready for your database:
{
"keyword": "nintendo switch oled",
"ebaySite": "ebay.com",
"count": 199,
"results": [
{
"title": "Nintendo Switch OLED ... 64GB Wi-Fi",
"soldPrice": "149.99",
"soldCurrency": "USD",
"endedAt": "2026-09-23",
"condition": "Used",
"shippingPrice": "0.00",
"sellerUsername": "..."
}
]
}Compute a price from it
Because you get the raw sales, you decide the statistic. Median is the most robust "what's it worth" number:
import requests, statistics
r = requests.get(
"https://api.ebaysoldlistingsapi.com/scrape",
params={"keyword": "nintendo switch oled"},
headers={"Authorization": "Bearer YOUR_API_KEY"},
).json()
prices = sorted(float(i["soldPrice"]) for i in r["results"] if i.get("soldPrice"))
print("median:", statistics.median(prices), "n:", len(prices))Other marketplaces
Pass ebaySite to query any of eight marketplaces (ebay.com, ebay.co.uk, ebay.de, ebay.com.au, ebay.ca, ebay.fr, ebay.it, ebay.es). Prices come back in that marketplace's local currency, not normalized, so you always see what buyers actually paid.
Getting started
Create a free key (50 requests a month, no card), then send your first request. See the full API reference for every parameter and field.
Does eBay have a public sold listings API?
eBay's Marketplace Insights API exposes sold data but is a restricted limited-release program most developers cannot access. The eBay Sold Listings API is an independent service that returns completed sales as JSON without that gatekeeping.
How many results per request?
Up to 240 completed sales per keyword per request, with pagination for more.
Is it free to start?
Yes, the free plan includes 50 requests per month with no credit card.
Try it with real data
Get completed eBay sales as JSON. Fifty free requests a month, no card required.
Get your API key