eBay Sold Scraper · Price Analytics avatar

eBay Sold Scraper · Price Analytics

Pricing

from $3.00 / 1,000 results

Go to Apify Store
eBay Sold Scraper · Price Analytics

eBay Sold Scraper · Price Analytics

Scrape eBay sold listings for real transaction prices. Filter by date range and condition. Returns avg, median, and recommended price analytics per query. Supports 8 eBay marketplaces.

Pricing

from $3.00 / 1,000 results

Rating

0.0

(0)

Developer

Ale

Ale

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

eBay Sold Listings Scraper

Scrape completed eBay sales for real transaction prices. For every query, the actor produces a summary record with avg price, median price, P10/P90 bands, and a recommended sell price. No post-processing needed.

Built for sellers, resellers, and pricing teams who need to answer one question quickly: what does this item actually sell for?


What It Does

  • Scrapes sold and completed listings from any eBay marketplace
  • Outputs a per-query analytics record: avg, median, P10, P90, and recommended price
  • Filters to items sold within a configurable window (up to 90 days)
  • Accepts keyword queries and direct eBay sold-search URLs
  • Captures condition, shipping cost, best-offer flag, and sale date per listing
  • Runs multiple queries in one actor invocation

Sample Output

[
{
"recordType": "listing",
"itemId": "325871204933",
"title": "Vintage Rolex Oyster Perpetual Date Ref 1500 Steel 34mm Automatic Watch",
"url": "https://www.ebay.com/itm/325871204933",
"marketplace": "ebay.com",
"soldPrice": 3850.00,
"currency": "USD",
"condition": "Pre-Owned",
"soldDate": "2026-06-01T14:22:00.000Z",
"shippingCost": 0.00,
"freeShipping": true,
"isBestOfferAccepted": false,
"imageUrl": "https://i.ebayimg.com/images/g/abc123/s-l500.jpg",
"searchQuery": "vintage rolex",
"scrapedAt": "2026-06-13T09:15:00.000Z"
},
{
"recordType": "analytics",
"searchQuery": "vintage rolex",
"marketplace": "ebay.com",
"totalSalesFound": 94,
"avgSoldPrice": 4812.50,
"medianSoldPrice": 4650.00,
"recommendedPrice": 4417.50,
"priceLow": 1200.00,
"priceHigh": 9800.00,
"p10Price": 2100.00,
"p90Price": 7400.00,
"currency": "USD",
"daysAnalyzed": 30,
"scrapedAt": "2026-06-13T09:15:44.000Z"
}
]

The dataset mixes recordType: "listing" rows with one recordType: "analytics" row per query at the end.


Pricing

$0.001 per actor start + $0.003 per listing record. About $3 per 1,000 listings.

Analytics summary records aren't charged. You only pay for the listing rows.

New to Apify? Every account gets a $5 free monthly platform credit, enough for around 1,600 listing results on this actor before you commit to paying anything. Test extensively first.


Input

FieldTypeDefaultDescription
searchQueriesarray of stringsSearch terms. Each term produces its own result set and analytics record.
startUrlsarray of {url}Direct eBay sold-search URLs. Useful with pre-filtered category or condition constraints.
marketplacestring"ebay.com"eBay domain to scrape. See Supported Marketplaces below.
maxResultsinteger100Maximum listing records per query.
soldWithinDaysinteger30Only include items sold within this many days. Maximum is 90 (eBay's historical limit).
conditionarray of stringsFilter by condition: "new", "used", "refurbished", "open_box", "for_parts".
sortBystring"best_match"Sort order for results.
minPricefloatMinimum sold price filter.
maxPricefloatMaximum sold price filter.
categoryIdstringeBay category ID to narrow results (e.g. "9355" for Cell Phones).
includeAnalyticsbooleantrueAppends one recordType: "analytics" record per query after its listings.
concurrencyinteger5Parallel workers. Advanced: lower this for more conservative throughput.

At least one of searchQueries or startUrls is required.

Example Input

{
"searchQueries": ["vintage rolex", "rolex submariner 16610"],
"marketplace": "ebay.com",
"maxResults": 100,
"soldWithinDays": 30,
"includeAnalytics": true
}

Output Fields

Listing record fields

FieldTypeDescription
recordTypestringAlways "listing".
itemIdstringeBay item ID.
titlestringFull listing title.
urlstringCanonical eBay listing URL.
marketplacestringeBay domain the listing was found on.
soldPricenumberFinal sold price.
currencystringISO 4217 currency code (e.g. USD, GBP, EUR).
conditionstringCondition label as listed (e.g. Pre-Owned, New).
soldDatestringISO 8601 timestamp of when the item sold.
shippingCostnumberStated shipping cost. 0 when free.
freeShippingbooleantrue if the seller offered free shipping.
isBestOfferAcceptedbooleantrue if the final price was the result of a Best Offer.
imageUrlstringPrimary listing image URL.
searchQuerystringThe query or URL that produced this result.
scrapedAtstringISO 8601 timestamp of when this record was collected.

Analytics record fields

FieldTypeDescription
recordTypestringAlways "analytics".
searchQuerystringThe query this summary covers.
marketplacestringeBay domain.
totalSalesFoundintegerNumber of sold listings analysed.
avgSoldPricenumberArithmetic mean of all sold prices.
medianSoldPricenumberMedian sold price (50th percentile).
recommendedPricenumberSuggested list price: 95% of median, giving a competitive edge over recent comps.
priceLownumberLowest sold price in the result set.
priceHighnumberHighest sold price in the result set.
p10Pricenumber10th percentile price (bottom 10% of sales).
p90Pricenumber90th percentile price (top 10% of sales).
currencystringISO 4217 currency code.
daysAnalyzedintegerThe soldWithinDays window used for this run.
scrapedAtstringISO 8601 timestamp.

Use with AI Agents (MCP)

Connect this actor to any MCP-compatible AI client: Claude Desktop, Claude.ai, Cursor, VS Code, LangChain, LlamaIndex, or custom agents.

Apify MCP server URL:

https://mcp.apify.com?tools=santamaria-automations/ebay-sold-scraper

Example prompt once connected:

"Use ebay-sold-scraper to analyse the last 30 days of 'vintage rolex' sales on ebay.com. Show me the median price, recommended selling price, and P10/P90 range."

Clients that support dynamic tool discovery (Claude.ai, VS Code) will receive the full input schema automatically.


Why This Scraper

Built-in price analytics means you don't need to export to a spreadsheet to get avg and median. The recommendedPrice field (95% of median) gives you a competitive anchor price in the response. HTTP-only, 128MB RAM, no browser overhead.


Common Use Cases

  • Reseller pricing: Anchor your list price on real sold comps, not wishful asking prices
  • Inventory valuation: Bulk-query a catalogue of SKUs and pull the median sold price for each
  • Trend analysis: Schedule recurring runs and store the analytics records to track how median price shifts week over week
  • Arbitrage research: Cross-reference recommendedPrice against supplier costs to surface margin-positive opportunities

Supported Marketplaces

ValueMarketplace
ebay.comUnited States (default)
ebay.co.ukUnited Kingdom
ebay.deGermany
ebay.frFrance
ebay.itItaly
ebay.esSpain
ebay.com.auAustralia
ebay.caCanada
ebay.atAustria
ebay.nlNetherlands

  • eBay Product Scraper: Scrapes active (unsold) eBay listings. Use it alongside this actor to compare asking prices against what items actually sell for.

Support

For bugs, feature requests, or marketplaces not yet supported, open a ticket on the Issues tab. We typically respond within 24 hours.

Contact: contact@nanoscrape.com