eBay Sold Items Scraper avatar

eBay Sold Items Scraper

Pricing

$1.20 / 1,000 sold listings

Go to Apify Store
eBay Sold Items Scraper

eBay Sold Items Scraper

Pull eBay's own record of completed and sold listings for any keyword or search link: the real sold date and sale price, plus condition, format, delivery cost and item location. Filter by price, condition, category and date, choose the eBay site, and get results in that site's own currency.

Pricing

$1.20 / 1,000 sold listings

Rating

0.0

(0)

Developer

Hamza

Hamza

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Turn any list of keywords or eBay search links into a clean dataset of completed and sold listings — the sold date and the price each one actually changed hands for, straight from eBay's own public record of finished sales. It is built for anyone who prices against real transactions instead of asking prices: resellers valuing stock, sellers setting a competitive price, analysts building comparables, and brands watching what their products really sell for.

What you can do with it

  • Value inventory against real sold prices — see what identical items actually sold for, not just what sellers are asking today.
  • Track a market over time by scheduling a run with a date cutoff, so each run picks up only the sales that closed since the last one.
  • Build price comparables for a product from its recent completed sales, with the sold date, condition and buying format on every row.
  • Compare sold prices across conditions — new, used and refurbished — with a single filter.
  • Research demand by pulling the recent sold history behind a keyword or category and counting how many units moved.
  • Feed realized-price data into your own pricing model, valuation tool or spreadsheet.

What you get

One row per sold listing. Abridged sample:

{
"query": "iphone 15",
"marketplace": "US",
"itemId": "327313873278",
"title": "Apple iPhone 15 128GB Unlocked - Very Good Condition",
"soldDate": "2026-08-17",
"soldPrice": { "amount": 512.0, "currency": "USD" },
"bestOfferAccepted": false,
"priceIsListingPrice": false,
"condition": "Used",
"buyingFormat": "BUY_IT_NOW",
"shippingCost": 0,
"location": "United States",
"imageUrl": "https://i.ebayimg.com/images/g/1x8AAOSwabcDeFgh/s-l500.webp",
"url": "https://www.ebay.com/itm/327313873278",
"scrapedAt": "2026-08-18T12:00:00.000Z"
}

Input reference

SettingTypeDefaultWhat it does
Search querieslist of textiphone 15The keywords to look up in eBay's sold and completed listings. Each entry can also be a full eBay search link — its keyword, site, category, price band and condition are picked up automatically. Required.
Maximum sold records per querywhole number200Stop after this many sold records for each query. Results come back newest first, so a small limit returns the most recent sales. Maximum 10,000.
Only sales on or after (YYYY-MM-DD)textA date such as 2026-08-01. Only sales on or after it are returned, and collection stops as soon as it reaches older sales — ideal for scheduled runs that pick up only what is new since the last one. Leave empty for no cutoff.
Item conditionchoiceAny conditionOnly return sales of items in this condition: any, new, used or refurbished.
CategorytextA numeric eBay category id (for example 9355 for cell phones) to scope every query to one category, applied together with the keyword. Leave empty for all categories.
Minimum sold pricewhole numberOnly return sales at or above this price, in the selected site's own currency. Leave empty for no minimum.
Maximum sold pricewhole numberOnly return sales at or below this price. Leave empty for no maximum.
eBay sitechoiceUnited States (ebay.com)Which country's eBay site to read. Sold history and prices differ between sites, and prices come back in that site's own currency.
Parallel querieswhole number4How many queries to work on at the same time. Higher is faster on runs with many queries. Maximum 10.

Output fields

FieldTypeDescription
querytextThe keyword or link this row was found by, so results are easy to join back.
marketplacetextThe eBay site the row was read from.
itemIdtexteBay's listing identifier for the sold item.
titletextListing title as shown to shoppers.
soldDatetextThe date the sale completed, as YYYY-MM-DD.
soldPriceobjectThe sale price and its currency: { amount, currency }.
bestOfferAcceptedtrue/falseTrue when the sale closed as an accepted best offer.
priceIsListingPricetrue/falseTrue when the shown amount is the original listing price rather than the amount actually paid. This is only ever true on accepted best-offer sales, where eBay keeps the accepted amount private.
conditiontextItem condition, taken from eBay's own condition labels.
buyingFormattextHow it was bought: AUCTION, BUY_IT_NOW or BEST_OFFER.
shippingCostnumberDelivery cost shown on the sold listing, when one is shown.
locationtextWhere the item was located.
imageUrltextThumbnail image link.
urltextClean listing link.
scrapedAttextWhen the row was collected.

Pricing

You pay per result, with no monthly minimum.

What you are charged forPrice
Sold listing — one sold record added to your dataset$1.20 per 1,000

There is nothing else to pay. Every field above is included in that one charge.

Worked example. Five keywords, each collecting the 200 most recent sales, produce 1,000 rows: 1,000 × $0.0012 = $1.20 per run. Run daily for a month it is about $36. A one-off deep pull of 10,000 sold records costs $12. Queries that turn out to have no completed sales are reported in the run summary and are not charged.

Limits & what this actor cannot do

  • Sold results are eBay's own public record of completed and sold listings. eBay shows a rolling recent window of finished sales, not the entire lifetime history of a product, so this returns recent sales rather than every sale ever made.
  • On an accepted best-offer sale, eBay publishes the original listing price with a line through it and keeps the amount actually paid private. Those rows are flagged with bestOfferAccepted and priceIsListingPrice set to true, and the price shown is the listing price — never the realized amount. Standard sales carry the true price paid.
  • Seller details are not part of a sold record — eBay does not publish the seller on completed-listing results, so no seller information is returned.
  • eBay's own headline result total for a search is a rounded estimate and is not shown on sold pages at all; the actor returns the individual sold records eBay actually serves rather than a summary count.
  • A multi-quantity listing can sell more than once, and each completed sale is returned as its own row.
  • Sold history and prices differ between eBay sites; results reflect the site you choose, in that site's own currency.
  • A sold record describes a completed sale; the live market keeps moving, so a past sale price is history, not a quote for what the same item would fetch today.
  • A query with no completed sales behind it returns no rows for that query — a real answer, reported in the run summary, not an error.
  • Speed depends on the size of the job and on eBay's own response times; no fixed throughput is promised.
  • eBay's terms govern automated access. You are responsible for using the data lawfully and in line with the source site's terms, and for handling any personal data in line with applicable privacy law.

FAQ

Do I need an eBay account? No. The actor reads only what eBay shows the public.

Does it need my login or password? No. There is nothing to connect and nothing to configure — paste your keywords and press start.

Are these the actual prices items sold for? For standard sales, yes — the realized sale price. For accepted best-offer sales eBay keeps the agreed amount private and shows the original listing price instead, so those rows are clearly flagged and their price is the listing price, not what the buyer paid.

How far back does the sold history go? eBay publishes a rolling recent window of completed listings, so this returns recent sales, not a product's entire lifetime history. Use the date cutoff to keep scheduled runs to only what has sold since the last one.

Can I schedule it? Yes. Schedule it hourly, daily or weekly from the Apify console, and pair it with the date cutoff so each run collects only new sales.

Is the data complete? It is complete for the recent completed sales eBay publishes openly. Where eBay withholds something — the accepted amount on a best-offer sale, sales older than its public window — the actor says so instead of guessing.