eBay Scraper — Product Listings & Prices
Pricing
from $3.00 / 1,000 listings
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
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
currencycode 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
priceandpriceMaxas two separate numbers, never collapsed to one or averaged. - Shipping cost is its own field, never folded into the price — and
freeShippingis 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
subtitleand never contaminatescondition.
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_pricesweeps 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
bidsandtimeLeftfields. - 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,watchersand 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
| Parameter | Type | Default | Description |
|---|---|---|---|
searchUrls | array | — | Paste 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. |
query | string | "" | 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. |
category | string | 0 | Search 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. |
seller | string | "" | 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_descriptions | string | "" | 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_now | string | "" | Only return fixed-price listings you can buy immediately. |
auction | string | "" | Only return listings currently up for bidding. |
accepts_offers | string | "" | Only return listings where the seller will consider an offer below the asking price. |
condition | string | "" | 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_price | string | "" | Only return listings priced at or above this amount, in the marketplace currency. Leave empty for no minimum. |
max_price | string | "" | Only return listings priced at or below this amount. Leave empty for no maximum. |
item_location | string | "" | Only return items shipping from a chosen region. Use this to avoid long international delivery times. |
free_shipping | string | "" | Only return listings that ship at no extra cost. |
fast_delivery | string | "" | Only return listings eBay expects to arrive within 2 to 4 days. |
returns_accepted | string | "" | Only return listings from sellers who accept returns. |
free_returns | string | "" | Only return listings where sending an item back costs you nothing. |
authenticity_guarantee | string | "" | Only return items eBay inspects and verifies before they reach the buyer. Available on sneakers, watches, handbags, jewelry and trading cards. |
deals_only | string | "" | Only return listings eBay has flagged as discounted. |
sort | string | 12 | Order in which eBay returns the listings. |
maxItems | integer | 100 | Maximum 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
| Parameter | Type | Default | Description |
|---|---|---|---|
concurrency | integer | 8 | How many requests to run in parallel. Lower this if you see failures. |
proxyConfiguration | object | Apify Proxy | Proxy 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
| Field | Type | Description |
|---|---|---|
itemId | string | Item ID |
url | string | Listing URL |
title | string | Title |
condition | string | Condition |
subtitle | string | Listing subtitle (as shown) |
buyingFormat | string | Buying format |
newlyListed | boolean | Newly listed |
Price & Value & Location
| Field | Type | Description |
|---|---|---|
price | number | Price |
priceMax | number | Price (high end of range) |
priceDisplay | string | Price (as shown) |
currency | string | Currency |
originalPrice | number | Original price (seller's) |
shippingCost | number | Shipping cost |
freeShipping | boolean | Free shipping |
freeReturns | boolean | Free returns |
couponOffer | string | Coupon offer (as shown) |
multiBuyOffer | string | Multi-buy offer (as shown) |
itemLocation | string | Item location |
distanceMiles | number | Distance (miles) |
Contacts & Media
| Field | Type | Description |
|---|---|---|
sellerName | string | Seller |
sellerFeedbackPercent | number | Seller positive feedback (%) |
sellerFeedbackScore | string | Seller feedback score (as shown) |
imageUrl | string | Image URL |
Details & Timestamps
| Field | Type | Description |
|---|---|---|
soldQuantity | number | Quantity sold |
watchers | number | Watchers |
topRatedSeller | boolean | Top Rated Plus seller |
ebayProgram | string | eBay programme |
availabilityNote | string | Availability note |
bids | number | Bids |
timeLeft | string | Time 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
queryempty and fill insellerto 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" -bodyis a valid query and behaves exactly as it does on the site. search_descriptionsgives 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_locationset 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
maxItemsnear 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.
| Results | Price |
|---|---|
| 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 plan | Price |
|---|---|
| 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
Legal & Ethical Use
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.