eBay Sold Listings Search
Pricing
from $4.00 / 1,000 results
eBay Sold Listings Search
Get confirmed eBay sold prices — not asking prices. Search by keyword across 8 marketplaces, filter by date range, and export clean structured data for comps, resale pricing, and market research.
Pricing
from $4.00 / 1,000 results
Rating
4.9
(8)
Developer
Caffein Dev
Maintained by CommunityActor stats
30
Bookmarked
1.2K
Total users
332
Monthly active users
1.3 days
Issues response
3 days ago
Last modified
Categories
Share
eBay Sold Listings API (Real Sold Items Only)
Fetch real sold listings from eBay — actual completed sales with final prices. This Actor returns sold items only, not active listings and not completed-but-unsold items.
Built for price analysis, resale tools, market research, and pricing intelligence.
🔎 What This API Provides
This Apify Actor extracts eBay sold listings and returns structured, machine-readable data for each sale:
- Final sold price
- Currency
- Sale end date
- Listing title
- Item URL
- Item ID
✅ Every result represents an item that actually sold ❌ No active listings ❌ No unsold “completed” listings ❌ No estimated or AI-generated prices
⚙️ Input
{"keywords": ["rtx 4080", "rtx 4090"],"categoryId": "58058", // Computers/Tablets & Networking"subcategoryId": "", // optional, overrides categoryId when set"daysToScrape": 30,"count": 100,"ebaySite": "ebay.com","sortOrder": "endedRecently","minPrice": 100,"maxPrice": 500,"itemLocation": "default","itemCondition": "any"}
| Field | Type | Default | Description |
|---|---|---|---|
keywords | string[] | required | 1–6 search terms. Each runs as a separate search with the same filters. Results are tagged with keyword for easy filtering. |
keyword | string | — | Deprecated. Use keywords array instead. Accepted for backward compatibility. |
search | string | — | Deprecated. Alias for keyword. Use keywords array instead. Accepted for backward compatibility with callers that send search. Backslash-escaped quotes (\") in the value are unescaped before the search runs. |
daysToScrape | number | 30 | Days back to scrape (1–90) |
count | number | 100 | Max results per keyword |
categoryId | string | "0" | Main category filter. Use "0" for All Categories. |
subcategoryId | string | "" | Optional subcategory filter. If set, overrides categoryId (maps to _sacat). Displayed as Category -> Subcategory in the input UI. |
ebaySite | string | ebay.com | eBay marketplace (see supported sites) |
sortOrder | string | endedRecently | endedRecently · timeNewlyListed · pricePlusPostageLowest · pricePlusPostageHighest · distanceNearest |
minPrice | number | — | Minimum sold price filter |
maxPrice | number | — | Maximum sold price filter |
itemLocation | string | default | default · domestic · worldwide |
itemCondition | string | any | any · new · used |
Supported eBay Sites
ebay.com · ebay.co.uk · ebay.de · ebay.fr · ebay.it · ebay.es · ebay.ca · ebay.com.au
📤 Output
{"itemId": "306671421088","url": "https://www.ebay.com/itm/306671421088","title": "Apple iPhone 13 Pro Max - 128GB - Unlocked - Cracked Back","condition": "Pre-Owned","conditionId": 3000,"endedAt": "2025-12-22T05:00:00.000Z","soldPrice": "215","soldCurrency": "USD","shippingPrice": "6.20","shippingCurrency": "USD","shippingType": "paid","totalPrice": "221.20","sellerUsername": "example_seller","sellerPositivePercent": 99.2,"sellerFeedbackScore": 1842,"scrapedAt": "2026-01-19T21:53:17.613Z"}
| Field | Description |
|---|---|
itemId | eBay item ID |
url | Full listing URL |
title | Listing title |
condition | Localized eBay condition label as shown on the search card (e.g. "Pre-Owned" on ebay.com, "Gebraucht" on ebay.de, "Neuf" on ebay.fr, "Nuovo" on ebay.it, "Usado" on ebay.es). null when eBay didn't display one. This is the authoritative field — what the buyer actually saw. |
conditionId | Best-effort numeric eBay condition ID resolved from condition via a static lookup table. null when condition is null or the label isn't in the lookup table (eBay can introduce new or locale-specific labels at any time — always check condition first). Common IDs: 1000 New · 1500 Open box / New Other · 1750 New with defects · 2000–2030 Refurbished tiers (Certified / Excellent / Very Good / Good) · 2500 Seller Refurbished · 2750 Like New · 3000 Used / Pre-Owned · 7000 For parts. Full reference |
categoryId | Category id used for the search (_sacat) |
category | Selected category label from the search page dropdown |
endedAt | Sale completion timestamp (ISO 8601) |
soldPrice | Final transaction price |
soldCurrency | Currency code (e.g. USD, GBP) |
shippingPrice | Shipping cost (null if not disclosed) |
shippingCurrency | Currency of shipping price |
shippingType | free · paid · pickup · unknown |
totalPrice | soldPrice + shippingPrice when currencies match, otherwise equals soldPrice |
sellerUsername | Seller username (best-effort) |
sellerPositivePercent | Positive feedback % (best-effort) |
sellerFeedbackScore | Feedback count (best-effort) |
scrapedAt | Scrape timestamp (ISO 8601) |
👥 Who This API Is For
- Developers building pricing APIs or resale tools
- Data analysts and researchers
- Professional resellers and flippers
- SaaS founders validating secondary market prices
📞 Support & Feedback
For issues, questions, or feature requests, please contact the Actor author via Apify.
Category IDs & Subcategory IDs
Pass a category ID as categoryId (main categories) or subcategoryId (subcategories) in your input. When subcategoryId is set it overrides categoryId — the output always reflects the effective category used.
🔍 Browse & search all category IDs and subcategory IDs →