eBay Listings Scraper - Search Results to CSV/JSON avatar

eBay Listings Scraper - Search Results to CSV/JSON

Pricing

from $1.40 / 1,000 listings

Go to Apify Store
eBay Listings Scraper - Search Results to CSV/JSON

eBay Listings Scraper - Search Results to CSV/JSON

[💵 $2 / 1K] Scrape eBay search results at scale: title, price, shipping, total price paid, condition, item aspects, bids, location, seller and image. 5 markets, condition and price filters, no start fee. Clean rows, no empty carousel tiles.

Pricing

from $1.40 / 1,000 listings

Rating

0.0

(0)

Developer

WebData Labs

WebData Labs

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

2 days ago

Last modified

Share

eBay Listings Scraper - Search Results to CSV, JSON and Excel

Turn any eBay search into a clean structured dataset - with the shipping-inclusive total price already computed, and none of the empty filler rows.

This eBay scraper pages through eBay search results and returns every listing as a row: title, price, shipping, total price, condition, item aspects, bids, location, item ID and a direct link. It runs on residential proxies, retries on eBay's challenge pages instead of reporting an empty result, and works across 5 eBay markets.

✅ What you get

  • Every listing from a search, paged automatically up to your limit
  • totalPrice = price + shipping - the number people forget to compare on
  • Normalized condition - eBay's dozen labels collapsed to new, open_box, refurbished, used, for_parts
  • Item aspects - size, brand, model, straight off the listing card
  • Auction detail - listing type, bid count, Best Offer availability
  • 5 markets - US, UK, DE, AU, CA, with the right currency per market
  • eBay-side filters - condition, auction vs Buy It Now, price range, free shipping, seller location
  • No empty rows. eBay pads results with "shop by model" carousel tiles that carry a title and no price. Those are dropped, so you are never billed for a row with no data in it.
  • No Actor start fee. You pay per listing, nothing else.

🔎 Why use this eBay scraper

  • Total price, not just price. A $69.99 listing with $14.95 shipping loses to a $79 listing with free delivery. totalPrice makes the comparison correct by default.
  • Clean rows only. Competing scrapers emit eBay's carousel tiles as listings - rows with a title and nothing else, which you pay for and then filter out. We drop them at parse time.
  • It does not lie about being blocked. eBay serves its bot challenge and its sign-in redirect as HTTP 200. A naive scraper parses that as "0 listings found". This one detects the wall, rotates the proxy session and retries; a query it truly cannot fetch is reported in the run's OUTPUT and skipped, never billed.
  • Filters pushed to eBay. Price, condition and listing-type filters are applied by eBay before we scrape, so you are not billed for rows you would have thrown away.

📊 What data you get

FieldTypeDescription
querystringThe search this row came from
marketstringUS, UK, DE, AU or CA
pageintegerResults page the listing appeared on
positionintegerPosition within that page
itemIdstringeBay item number
titlestringListing title
pricenumberListing price (low end of a variant range)
priceRawstringThe price exactly as eBay printed it
shippingCostnumberShipping (0 for free delivery, null if not stated)
totalPricenumberprice + shippingCost
currencystringISO currency of the market
conditionstringeBay's condition label
conditionGroupstringNormalized: new, open_box, refurbished, used, for_parts
itemAspectsarrayRemaining subtitle facts (size, brand, model)
listingTypestringauction or buy_it_now
bidsCountintegerNumber of bids (auctions only)
bestOfferAvailablebooleanSeller accepts Best Offer
itemLocationstringWhere the item ships from
authenticityGuaranteebooleanCovered by eBay Authenticity Guarantee
urlstringDirect link, tracking parameters stripped
imagestringThumbnail URL

👥 Who it's for

  • Resellers and arbitrage buyers scanning a category for underpriced listings.
  • Pricing and e-commerce teams tracking what competitors ask for a SKU, week over week.
  • Brand and IP teams monitoring who is listing their product and from where.
  • Market researchers measuring supply, condition mix and price spread in a category.
  • Developers who need eBay search as a JSON endpoint without an eBay developer account.

⚙️ How to scrape eBay search results

  1. Click Try for free.
  2. Put your keywords into Search queries - one line per search.
  3. Pick the eBay market you care about.
  4. Set Max listings per query (100 is a good first run) and any filters - condition, price range, auction vs Buy It Now.
  5. Run it.
  6. Open the Listings view, then export to CSV, JSON or Excel, or pull it from the API.

🚀 Ready-made tasks

Prefilled versions of this Actor for common jobs. Open one, hit run, adjust the keyword - no configuration needed.

TaskWhat it does
Monitor sneaker prices on eBayNew sneaker listings over $40, with size and total cost, for resale sourcing
Track used electronics prices on eBayUsed Buy It Now electronics - what headphones, vacuums and gadgets go for now
Find eBay auctions ending soonAuctions sorted by ending soonest, with current bid and bid count
Export eBay UK listings to CSVeBay.co.uk results in GBP with delivery cost and seller location
Scrape trading card listings on eBayGraded and raw card listings with asking price, condition and seller

📥 Input

{
"searchQueries": ["nike dunk low panda", "sony wh-1000xm4"],
"market": "US",
"maxListingsPerSearch": 100,
"condition": "new",
"listingType": "buy_it_now",
"minPrice": 40,
"freeShippingOnly": false,
"sort": "best_match"
}
FieldTypeDefaultDescription
searchQueriesarrayrequiredKeywords to search
marketstringUSUS, UK, DE, AU, CA
maxListingsPerSearchinteger100Listings per query. 0 = no limit
conditionstringanynew, open_box, refurbished, used, for_parts
listingTypestringallauction or buy_it_now
minPrice / maxPriceintegerunsetPrice filters applied by eBay
freeShippingOnlybooleanfalseOnly free-delivery listings
sellerLocationstringanydomestic or worldwide
sortstringbest_matchnewly_listed, ending_soonest, price_low, price_high

📤 Output

{
"query": "nike dunk low panda",
"market": "US",
"page": 1,
"position": 6,
"itemId": "356739122665",
"title": "Nike Dunk Low Retro MEN'S White Black Panda DD1391-100 Sneakers Shoes",
"price": 69.99,
"priceRaw": "$69.99",
"shippingCost": 5.93,
"totalPrice": 75.92,
"currency": "USD",
"condition": "Brand New",
"conditionGroup": "new",
"itemAspects": ["US M 11 + more", "Nike"],
"listingType": "buy_it_now",
"bidsCount": null,
"bestOfferAvailable": false,
"itemLocation": "United States",
"authenticityGuarantee": false,
"url": "https://www.ebay.com/itm/356739122665",
"image": "https://i.ebayimg.com/images/g/IHQAAOSwJk9n8DLx/s-l140.webp"
}

💵 How much does it cost to scrape eBay?

You are billed per listing returned, with no Actor start fee.

Apify planPrice per listing
Free$0.0020
Bronze / Silver$0.0017
Gold$0.0014
Platinum / Diamond$0.0010

Costed example: the default run - one query, 100 listings - costs $0.20 on the Free plan and $0.10 on Platinum. Ten queries at 100 listings each is $2.00 / $1.00.

The levers that change your bill: maxListingsPerSearch, the number of searchQueries, and using the price/condition filters so eBay drops irrelevant listings before we ever return them.

🔁 Run it on the Apify platform

Schedule it daily or weekly to track a category over time, call it from the REST API or the JavaScript and Python clients, pipe results into Make, Zapier, Google Sheets, Airtable or a webhook, and get alerted if a run fails.

⚠️ Limits and caveats

  • eBay paginates to roughly 8,000 results per search. Past that, narrow the query or add a price band.
  • No sponsored flag. eBay renders the Sponsored badge as a transparent reversed string plus a base64 SVG, on every card. We could not read a reliable organic/promoted split, and would rather omit the field than ship a boolean that is true for every row.
  • Some listings omit a condition. Those come back with condition: null and conditionGroup: "unknown" rather than a guess.
  • Mercari Sold Comps Scraper - real sold prices and median comps for Mercari.
  • Poshmark Sold Comps Scraper - sold prices for fashion resale.
  • Website Contact Extractor, Google Maps lead scrapers - the rest of the WebData Labs lane.

❓ FAQ

How many listings can I get per search? Up to roughly 8,000, which is eBay's own pagination limit. Set maxListingsPerSearch to whatever you need under that.

Why is shippingCost sometimes null? Because eBay did not state a shipping price on that card - usually calculated-at-checkout shipping. 0 means genuinely free; null means unknown, and those rows are left out of any total you compute.

Is scraping eBay legal? The Actor collects publicly visible listing data only, with no login and no personal data. You are responsible for how you use the data in your jurisdiction.

Does it work outside the US? Yes - UK, Germany, Australia and Canada via the market input.

🛠️ Support

Something wrong with a run? Open an issue on the Actor and include the run URL, the input JSON you used, and what you expected.