eBay Scraper — Product Listings & Prices avatar

eBay Scraper — Product Listings & Prices

Pricing

from $3.00 / 1,000 listings

Go to Apify Store
eBay Scraper — Product Listings & Prices

eBay Scraper — Product Listings & Prices

[💰 $3.0 / 1K] Extract eBay listings at scale — price, price range, currency, buying format, condition, shipping cost, item location, seller name and feedback, bids and time left. Filter by 35 departments, 7 conditions, price band, auction or Buy It Now, and seller. Export to JSON, CSV or Excel.

Pricing

from $3.00 / 1,000 listings

Rating

0.0

(0)

Developer

SolidCode

SolidCode

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Share

Pull live product listings from eBay at scale — asking price, price range, currency, buying format, condition, shipping cost, item location, seller identity and image, on every row. Built for resellers, pricing analysts and e-commerce teams who need to see what an entire category is actually listed at right now, instead of clicking through eBay's search results one page at a time.

Why This Scraper?

  • 30 fields on every listing — item ID, canonical listing URL, title, price, price range, currency, buying format, condition, shipping cost, free-returns flag, item location, seller name and feedback, quantity sold, watchers, bids, time left and image URL. Every one is a typed, named column you can sort and filter on directly.
  • Item ID, listing URL, title, price, price-as-shown, currency, buying format and image URL on 100% of listings — measured across 1,875 listings spanning 5 item-location scopes and 5 product categories, not a single-category spot check.
  • 18 filters, every one measured to change the result set — 35 eBay departments, 7 condition grades, 5 sort orders, 3 item-location scopes, minimum and maximum price, free shipping, free returns, fast delivery, authenticity guarantee and deals-only.
  • Auction, Buy It Now and Best Offer are three independent switches, not one either/or dropdown — 71 of 71 auction listings kept the Auction label, including the 13 that also showed an offer row, and every auction row carries its live bid count and time remaining.
  • Pull a seller's whole catalogue with no keyword at all — leave the query blank, name the seller, and 240 of 240 returned rows came back from that seller. Every other filter still stacks on top of it.
  • Price and currency always travel together — one sampled slice of 75 listings came back priced entirely in Colombian pesos, so every row carries its own currency code and a mixed-marketplace export never silently averages two different units.
  • Price ranges keep both ends — a listing shown as "$23.29 to $31.99" gives you price and priceMax as two separate numbers, never collapsed to one or averaged.
  • Shipping cost is its own field, never folded into the price — and freeShipping is a real true/false, so "ships free" and "shipping unknown" stay distinguishable when you compute a landed cost.
  • Condition is a closed 11-label eBay vocabulary — Brand New, Open Box, four refurbished grades, For parts or not working, and the rest. Seller marketing copy turns up where a condition should be on 18.7% of listings — it ships separately as subtitle and never contaminates condition.

Use Cases

Pricing & Competitive Intelligence

  • Track the live asking price of a SKU across every seller offering it, with shipping cost kept separate so you can compare landed cost rather than headline price.
  • Watch a competitor's shopfront by seller name and see their whole catalogue, pricing and Top Rated Plus status in one run.
  • Measure how much of a category is auction versus fixed-price versus offer-accepting, using the three buying-format switches independently.
  • Build price-band histograms from min_price / max_price sweeps over one keyword.

Reselling & Sourcing

  • Find underpriced inventory by combining a condition grade with a maximum price and sorting by price plus shipping, lowest first.
  • Surface ending-soon auctions with low bid counts using the Ending Soonest sort and the bids and timeLeft fields.
  • Filter to refurbished grades — excellent, very good, good and certified — to source a specific quality tier rather than a generic "used" bucket.
  • Restrict to United States, North America or Worldwide item locations to keep delivery times and import duties predictable.

Market Research

  • Size a category by pulling thousands of active listings per search across 35 eBay departments and counting brands, formats and condition mix.
  • Track seasonal price movement by running the same keyword on a schedule and diffing the price and quantity-sold columns.
  • Quantify demand signals from soldQuantity, watchers and the availability note that eBay shows on low-stock listings.
  • Compare promotion intensity across sellers using the coupon offer, multi-buy offer and original-price fields.

Brand Protection & Authenticity

  • Monitor listings using your brand name outside your own authorised sellers.
  • Use the authenticity-guarantee filter to separate eBay-verified sneakers, watches, handbags, jewelry and trading cards from unverified ones.
  • Spot grey-market pricing by combining an item-location scope with a price ceiling.

Data Enrichment & Integration

  • Feed live marketplace pricing into a repricing engine or an internal BI dashboard.
  • Enrich a product catalogue with real resale prices, condition mix and image URLs.
  • Push results straight to Google Sheets, a warehouse or a webhook the moment a run finishes.

Getting Started

Simplest run

{
"query": "baseball caps",
"category": "0",
"sort": "12",
"search_descriptions": "",
"buy_it_now": "",
"auction": "",
"accepts_offers": "",
"condition": "",
"min_price": "",
"max_price": "",
"free_shipping": "",
"fast_delivery": "",
"returns_accepted": "",
"free_returns": "",
"authenticity_guarantee": "",
"deals_only": "",
"item_location": "",
"seller": "",
"maxItems": 100
}

Paste a filtered search URL from the site

Set your filters on the site, then copy the address bar URL — every filter in it is carried through.

{
"searchUrls": [
"https://www.ebay.com/sch/i.html?_nkw=baseball caps&_sacat=0&_sop=12&LH_TitleDesc=&LH_BIN=&LH_Auction=&LH_BO=&LH_ItemCondition=&_udlo=&_udhi=&LH_FS=&LH_FAST=&LH_RPA=&LH_FR=&LH_AV=&LH_Savings=&LH_PrefLoc=&_ssn="
],
"maxItems": 0
}

Input Reference

What to Scrape

ParameterTypeDefaultDescription
searchUrlsarrayPaste eBay search addresses here. Run your search on eBay, set any filters you like using eBay's own left-hand panel, then copy the address from your browser's address bar - it will start with "ebay.com/sch/". Everything you set on eBay is kept, and the filters below are ignored for that address. Category browse pages ("ebay.com/b/...") and seller shopfronts ("ebay.com/usr/...") are not search addresses and will not work - search for the seller's name, or set the Seller field below, instead.
querystring""Keywords to search for, for example "iphone 16 pro 256gb". eBay's own search syntax works here: put a phrase in quotes for an exact match, and put a minus in front of a word to exclude it. Leave this empty and fill in seller below to pull that seller's entire catalogue instead. Give every run either query or seller — the other settings narrow a search down rather than being one. Used only when Search URLs is empty.
categorystring0Search inside one eBay department only. Leave on "All categories" to search everything. To use a narrower sub-category, set it on eBay itself and paste the resulting address into Search URLs above.
sellerstring""Only return listings from one eBay seller, for example "detroitaxle". Works with or without keywords: leave query empty and this alone will pull that seller's entire catalogue, and the filters below still apply on top of it.
search_descriptionsstring""By default eBay matches your keywords against listing titles only. Turn this on to match the full item description as well. It changes which listings match, and for multi-word searches it is usually the stricter of the two.
buy_it_nowstring""Only return fixed-price listings you can buy immediately.
auctionstring""Only return listings currently up for bidding.
accepts_offersstring""Only return listings where the seller will consider an offer below the asking price.
conditionstring""Only return items in one condition. eBay words these differently in different departments - in clothing "New" reads as "New with tags", in electronics it reads "Brand New".
min_pricestring""Only return listings priced at or above this amount, in the marketplace currency. Leave empty for no minimum.
max_pricestring""Only return listings priced at or below this amount. Leave empty for no maximum.
item_locationstring""Only return items shipping from a chosen region. Use this to avoid long international delivery times.
free_shippingstring""Only return listings that ship at no extra cost.
fast_deliverystring""Only return listings eBay expects to arrive within 2 to 4 days.
returns_acceptedstring""Only return listings from sellers who accept returns.
free_returnsstring""Only return listings where sending an item back costs you nothing.
authenticity_guaranteestring""Only return items eBay inspects and verifies before they reach the buyer. Available on sneakers, watches, handbags, jewelry and trading cards.
deals_onlystring""Only return listings eBay has flagged as discounted.
sortstring12Order in which eBay returns the listings.
maxItemsinteger100Maximum listings per search URL (0 = collect everything each search returns). A single eBay search stops serving deeper pages somewhere in the 6,300-11,000+ range depending on the query, so use several narrower searches to collect more.

Options

ParameterTypeDefaultDescription
concurrencyinteger8How many requests to run in parallel. Lower this if you see failures.
proxyConfigurationobjectApify ProxyProxy settings for the run.

Output

Every listing is one dataset row. The examples below are real captured listings; only the seller handle has been replaced with a placeholder.

{
"itemId": "236069583529",
"url": "https://www.ebay.com/itm/236069583529",
"title": "TOZO O2 True Open Ear Wireless Earbuds Lightweight Comfort Headphones",
"condition": "Certified - Refurbished",
"subtitle": "Certified - Refurbished",
"buyingFormat": "Buy It Now",
"newlyListed": null,
"price": 23.29,
"priceMax": 31.99,
"priceDisplay": "$23.29",
"currency": "USD",
"originalPrice": 35.99,
"shippingCost": null,
"freeShipping": true,
"freeReturns": true,
"couponOffer": null,
"multiBuyOffer": null,
"itemLocation": "United States",
"distanceMiles": null,
"sellerName": "example_seller",
"sellerFeedbackPercent": 100.0,
"sellerFeedbackScore": "1.3K",
"imageUrl": "https://i.ebayimg.com/images/g/4pUAAOSwhX1oCafJ/s-l500.jpg",
"soldQuantity": 190,
"watchers": null,
"topRatedSeller": true,
"ebayProgram": "eBay Refurbished",
"availabilityNote": null,
"bids": null,
"timeLeft": null
}

An auction listing carries the same 30 fields. These are the ones that read differently:

{
"itemId": "287495230984",
"title": "Antique Wollensak Optical Co Junior Foldable Camera with Case 6\" by 4.5\"",
"buyingFormat": "Auction",
"price": 60.0,
"priceDisplay": "$60.00",
"bids": 0,
"timeLeft": "4d 6h",
"shippingCost": 12.99,
"freeShipping": false,
"condition": null
}

Core Fields

FieldTypeDescription
itemIdstringItem ID
urlstringListing URL
titlestringTitle
conditionstringCondition
subtitlestringListing subtitle (as shown)
buyingFormatstringBuying format
newlyListedbooleanNewly listed

Price & Value & Location

FieldTypeDescription
pricenumberPrice
priceMaxnumberPrice (high end of range)
priceDisplaystringPrice (as shown)
currencystringCurrency
originalPricenumberOriginal price (seller's)
shippingCostnumberShipping cost
freeShippingbooleanFree shipping
freeReturnsbooleanFree returns
couponOfferstringCoupon offer (as shown)
multiBuyOfferstringMulti-buy offer (as shown)
itemLocationstringItem location
distanceMilesnumberDistance (miles)

Contacts & Media

FieldTypeDescription
sellerNamestringSeller
sellerFeedbackPercentnumberSeller positive feedback (%)
sellerFeedbackScorestringSeller feedback score (as shown)
imageUrlstringImage URL

Details & Timestamps

FieldTypeDescription
soldQuantitynumberQuantity sold
watchersnumberWatchers
topRatedSellerbooleanTop Rated Plus seller
ebayProgramstringeBay programme
availabilityNotestringAvailability note
bidsnumberBids
timeLeftstringTime left

Tips for Best Results

  • One search has a floor and a ceiling of its own. Full walks measured between about 6,300 and 11,000+ listings before eBay stops serving deeper pages, and where a given query lands inside that range depends on the query. To collect a whole category, split it into several narrower searches — by department, price band or condition — and run them in the same job rather than pushing one broad search deeper.
  • Leave query empty and fill in seller to get a seller's entire catalogue. Every other filter still applies on top, so seller plus a price band or a single department is a clean way to slice a large shopfront. A run needs either a keyword or a seller — filters alone are refinements and cannot carry a search by themselves.
  • eBay's own search syntax works inside query. Wrap a phrase in quotes for an exact match, and put a minus in front of a word to exclude it — "nikon f3" -body is a valid query and behaves exactly as it does on the site.
  • search_descriptions gives you a different result set, not a bigger one. Measured on a four-word query it moved the match count from 659 down to 536, because every keyword then has to appear in the title or the description. Use it to change what matches, not to widen a search.
  • item_location set to Worldwide returns more than the default, not fewer. eBay's default quietly prefers items that can reach you; switching to Worldwide lifted the same query from 659 to 670 matches.
  • Narrow filter combinations cost more per row than broad ones. A condition grade plus Buy It Now on a niche keyword may only have ~50 genuine matches, and the run still works through full-size result pages looking for them. Set maxItems near what you realistically expect rather than leaving a large ceiling on a narrow search.
  • Active listings only. eBay puts sold and completed listings behind a sign-in wall, so this actor covers what is currently for sale. Everything returned is a live listing you or your buyers could act on today.

Pricing

From $3.00 per 1,000 results.

ResultsPrice
100$0.30
1,000$3.00
10,000$30.00
100,000$300.00

Those are the rates on Gold and above. Higher-volume plans pay less per result:

Your Apify planPrice
No discount$3.60
Bronze$3.40
Silver$3.20
Gold and above$3.00

Per 1,000 results.

A "result" is any listing row in the output dataset. When you run several searches at once, a listing matching more than one of them is de-duplicated before it reaches the dataset, so you are never charged twice for the same listing. Platform fees (compute, storage) are additional and depend on your Apify plan.

Integrations

Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:

  • Zapier / Make / n8n — Workflow automation
  • Google Sheets — Direct spreadsheet export
  • Slack / Email — Notifications on new results
  • Webhooks — Trigger custom APIs on run completion
  • Apify API — Full programmatic access

This is an unofficial scraper. It is not affiliated with, endorsed by, or connected to Ebay.com or its operators in any way. All trademarks belong to their respective owners.

This actor is intended for legitimate market research and analytics. You are responsible for complying with applicable laws and with Ebay.com's Terms of Service.

Results may include personal data such as contact details. Treat them accordingly: do not use them for spam, harassment, or any unlawful purpose, and follow applicable privacy rules when storing or processing them.