eBay Sold Listings API
Pricing
from $2.00 / 1,000 results
eBay Sold Listings API
Extract recent sold eBay listings with prices, shipping costs, sale dates, conditions, sellers, and URLs. Search eight marketplaces with date, condition, and price filters, then export structured data or access it through the Apify API.
Pricing
from $2.00 / 1,000 results
Rating
0.0
(0)
Developer
Epic Scrapers
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
5 days ago
Last modified
Categories
Share
eBay Sold Products Scraper
Get structured data from completed and sold eBay listings. Use the data to research sold prices, validate product demand, compare marketplaces, and monitor second-hand products.
The Actor searches recent eBay sales by keyword. It returns the item title, sold price, shipping cost, total price, condition, sale date, seller, item location, image, and listing URL. You do not need an eBay API key or an eBay seller account.
Why use this eBay sold listings scraper?
A current listing shows an asking price. A sold listing shows a price that a buyer accepted. This data can help you make better pricing and sourcing decisions.
Use this Actor to:
- Research the market value of used products.
- Find recent eBay sold prices.
- Compare product demand across eBay marketplaces.
- Check prices before you buy products for resale.
- Monitor collectibles, electronics, fashion, parts, and refurbished products.
- Build price history, market research, and product analytics tools.
- Export eBay sales data for a spreadsheet, database, dashboard, or AI workflow.
Main features
- Search one or more product keywords in one run.
- Get only completed and sold eBay items.
- Select new items, used items, or all conditions.
- Set a minimum price and a maximum price.
- Set the number of days to search.
- Set a result limit for each keyword.
- Search eight eBay marketplaces.
- Get structured JSON data in an Apify dataset.
- Export results in JSON, CSV, Excel, XML, or RSS format.
- Run the scraper manually, on a schedule, through the API, or in an Apify integration.
Supported eBay marketplaces
| Input value | Marketplace | Typical currency |
|---|---|---|
ebay.com | United States | USD |
ebay.co.uk | United Kingdom | GBP |
ebay.de | Germany | EUR |
ebay.fr | France | EUR |
ebay.it | Italy | EUR |
ebay.es | Spain | EUR |
ebay.ca | Canada | CAD |
ebay.com.au | Australia | AUD |
How to scrape sold items on eBay
- Open the Actor in Apify Console.
- Add one or more terms to Search keywords.
- Select the eBay site.
- Set the condition, date range, price range, and result limit.
- Select Start.
- Open the Dataset tab when the run is complete.
- Download the data or send it to another service.
For a first test, use this input:
{"keywords": ["iphone 12", "sony wh-1000xm5"],"site": "ebay.com","condition": "used","days": 30,"minPrice": 50,"maxPrice": 1000,"maxItems": 100}
Input
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
keywords | array of strings | Yes | — | Product names or search terms. |
site | string | No | ebay.com | eBay marketplace to search. Use a value from the supported marketplace table. |
condition | string | No | all | Condition filter. Use all, new, or used. |
days | integer | No | 30 | Get listings sold in the last specified number of days. Minimum value: 1. |
minPrice | number | No | — | Minimum sold price in the currency of the selected marketplace. |
maxPrice | number | No | — | Maximum sold price in the currency of the selected marketplace. |
maxItems | integer | No | 100 | Maximum number of results for each keyword. Minimum value: 1. |
If you use multiple keywords, the Actor applies maxItems to each keyword. For example, two keywords and maxItems: 100 can produce up to 200 records.
Output
The Actor stores one record for each sold listing in the default dataset. A record has this format:
{"searchQuery": "iphone 12","site": "ebay.com","listingId": "128010523042","title": "Apple iPhone 12 Pro Max - 128 GB","url": "https://www.ebay.com/itm/128010523042","imageUrl": "https://i.ebayimg.com/images/g/example/s-l225.jpg","soldPrice": 159.99,"currency": "USD","shippingPrice": 8.49,"shippingText": "+$8.49 delivery","totalPrice": 168.48,"condition": "Parts Only","conditionDetails": null,"soldAt": "2026-08-04T00:00:00.000Z","soldDateText": "Sold Aug 4, 2026","seller": {"username": "example_seller","feedbackScore": null,"feedbackPercent": null,"isStore": false},"itemLocation": "Located in United States","quantitySold": 0,"isPromoted": false,"hasBestOffer": false,"returnsAccepted": false}
Output field reference
| Field | Description |
|---|---|
searchQuery | Keyword that found the listing. |
site | eBay marketplace that the Actor searched. |
listingId | Unique eBay listing ID. |
title | Listing title. |
url | URL of the eBay item. |
imageUrl | URL of the primary item image. |
soldPrice | Item sale price, without the shipping price. |
currency | ISO currency code, such as USD, GBP, EUR, CAD, or AUD. |
shippingPrice | Numeric shipping price. Free shipping has the value 0. |
shippingText | Shipping text from the listing. |
totalPrice | Sum of soldPrice and shippingPrice, when both values are available. |
condition | Item condition shown by eBay. |
conditionDetails | Additional condition data, when available. |
soldAt | Sale date in ISO 8601 format. |
soldDateText | Original sale-date text. |
seller | Seller name and available seller data. |
itemLocation | Item location text. |
quantitySold | Sold quantity, when available. |
isPromoted | Indicates if the result is a promoted listing. |
hasBestOffer | Indicates if best-offer text is present. |
returnsAccepted | Indicates if return text is present. |
Some fields can be null. eBay does not supply all fields for all listings and marketplaces.
Run with the Apify API
Use your Apify API token and send a POST request:
curl "https://api.apify.com/v2/acts/epicscrapers~ebay-sold-products/runs?token=YOUR_APIFY_TOKEN" \-X POST \-H "Content-Type: application/json" \-d '{"keywords": ["vintage watch"],"site": "ebay.com","condition": "used","days": 14,"maxItems": 50}'
The request starts a run. Use the run response to get the default dataset ID and download the results.
Run with the Apify JavaScript client
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('epicscrapers/ebay-sold-products').call({keywords: ['vintage watch'],site: 'ebay.com',condition: 'used',days: 14,maxItems: 50,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Run with the Apify Python client
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("epicscrapers/ebay-sold-products").call(run_input={"keywords": ["vintage watch"],"site": "ebay.com","condition": "used","days": 14,"maxItems": 50,})items = client.dataset(run["defaultDatasetId"]).list_items().itemsprint(items)
Automate eBay sold-price research
You can schedule the Actor in Apify Console. For example, run the same searches each day and send new data to Google Sheets, Make, Zapier, Slack, a webhook, or your database. You can also connect the dataset to an AI agent for product classification or price analysis.
Use a stable set of keywords and filters when you compare results over time. Store the sale date, listing ID, sold price, shipping price, and currency with each record.
Limits and data quality
- eBay can change its service or result format. Such a change can affect the available data.
- A listing can omit seller, shipping, quantity, location, or condition data.
hasBestOffershows that best-offer text is present. It does not show the private offer amount.totalPriceis the item price plus the displayed shipping price. It does not include tax, import fees, or other charges.- Currency and price filters apply to the selected marketplace.
- Search results can change between runs.
- The Actor uses an Apify Residential Proxy. The run must have access to this proxy service.
Responsible use
Use this Actor only for lawful purposes. Follow the eBay terms, applicable laws, and data protection rules. Do not use the data to send spam or to make prohibited profiles of persons.
Support
If you find a problem, open an issue on the Actor page. Include the input, marketplace, run ID, and a short description of the expected result. Do not include your Apify API token.
Legal notice
This Actor is an independent data extraction tool. It is not an official eBay product and is not endorsed by eBay. eBay is a trademark of eBay Inc.