eBay Scraper — Listings, Products, Prices & Sellers avatar

eBay Scraper — Listings, Products, Prices & Sellers

Pricing

from $1.80 / 1,000 product scrapeds

Go to Apify Store
eBay Scraper — Listings, Products, Prices & Sellers

eBay Scraper — Listings, Products, Prices & Sellers

Scrape eBay listings and products by keyword, search URL or seller on 8 eBay sites: prices, shipping, condition, seller ratings, bids and images. Filter by category and price.

Pricing

from $1.80 / 1,000 product scrapeds

Rating

5.0

(1)

Developer

Automation Lab

Automation Lab

Maintained by Community

Actor stats

6

Bookmarked

1.2K

Total users

192

Monthly active users

2 days ago

Last modified

Security

Limited permissions

Share

eBay Scraper

What does eBay Scraper do?

eBay Scraper extracts product data from eBay search results across the US, UK, Germany, France, Italy, Spain, Canada, and Australia. Search by keyword, paste eBay search URLs, or list sellers, and get structured data for every listing and product — prices, currency context, shipping costs, seller ratings, item condition, bid counts, time left, and images. Filter by condition, listing type, price range, seller, category, free shipping, and item location.

Use it for price monitoring, competitive intelligence, dropshipping research, market analysis, and arbitrage between eBay, Amazon, and other marketplaces.

Price monitoring workflow

Schedule recurring eBay searches for the product queries, brands, conditions, or listing types you monitor. Each run captures current price, listPriceString, shipping cost, seller name, condition, listing type, bid count, sold count, discount/coupon text, and scrapedAt so you can export datasets to CSV/JSON, Google Sheets, webhooks, or BI tools.

Example: monitor 20–100 eBay searches daily, normalize price plus shipping in a spreadsheet or database, compare against prior exported datasets, and alert downstream on price drops, new low-priced sellers, auction opportunities, or MAP-policy violations. For cross-merchant benchmarking, use Google Shopping Scraper as the comparison hub, Amazon Scraper for Amazon search-result prices, and compare active listing prices across merchants.

Asking prices are not sold-price history. Active Buy It Now asking prices and current auction bids are not historical realized sale prices or accepted Best Offer prices. Per-listing soldCount is only the sold-volume text displayed on an active listing, not transaction-level prices or dated sales history. For manual sold-comps research, use eBay Product Research in eBay Seller Hub. This Actor provides no Product Research API, signed-in scraping, or sold/completed-listings mode.

Who is it for

  • Dropshippers and resellers who need to compare eBay prices against Amazon, Walmart, or AliExpress to find profitable products and price gaps.
  • E-commerce sellers who want to monitor competitor listings, track pricing trends, and adjust their own pricing strategy in real time.
  • Market researchers analyzing product demand, pricing distributions, and category trends across the world's largest auction marketplace.
  • Deal hunters and flippers tracking auctions ending soon with low bid counts to snipe undervalued items.
  • Data analysts and developers building dashboards, price trackers, or automated sourcing tools on top of structured eBay data.
  • Agencies and consultants who need bulk eBay data for client reports, competitive audits, or market entry analysis.

Why use eBay Scraper?

  • Fast and lightweight — Pure HTTP extraction with Cheerio, no browser needed. Scrapes up to 60 products per page.
  • Anti-bot handling included — Each attempt uses a fresh residential IP, with up to 10 attempts per page if you need them. A search that stays blocked is reported as failed, not as an empty success.
  • Rich product data — Price, original price, shipping cost, condition, seller name, feedback score, sold count, and images, whenever eBay shows them on the search card. Not every card has every field: on some searches eBay shows no seller row or no condition.
  • Eight eBay marketplaces — Select US, UK, DE, FR, IT, ES, CA, or AU. The Actor uses that market's domain, locale, proxy country, and expected currency; US remains the default.
  • Paste any eBay search URL — Set up a search on eBay, including filters we don't list, and paste its URL. Each URL runs on its own eBay site.
  • Flexible filters — Filter by item condition (new, used, refurbished, open box), listing type (auction, Buy It Now), price range, seller, category, free shipping, and item location.
  • Only what you searched for — When eBay has no exact matches and fills the page with "Results matching fewer words", those unrelated rows are neither returned nor charged. Rows eBay promotes outside your price range are dropped too.
  • Clear run status — Every run ends with how many products it got against your limit, and why it stopped.
  • Multiple sort options — Sort by best match, ending soonest, newly listed, or price (low/high).
  • Deduplication built-in — Automatically skips duplicate listings across pages and search queries.
  • Multiple search queries — Run several keyword searches in a single run for efficient batch scraping.
  • Pay-per-event pricing — You only pay for products scraped. No monthly subscription.
  • Export anywhere — Download results as JSON, CSV, Excel, or push directly to Google Sheets, Slack, webhooks, and more.

What data can you extract from eBay?

Each product in the output includes:

FieldDescription
itemIdeBay item ID
titleFull listing title
priceCurrent active listing asking price or auction bid (number), not a realized sale price
priceStringFormatted price (e.g., "$237.36")
listPriceStringOriginal/list price before discount
marketplaceSelected marketplace code, such as US or DE
marketplaceDomaineBay domain used for the search, such as www.ebay.de
currencyExpected ISO currency code for the selected marketplace
shippingCostShipping cost text in the site's language (e.g., "Free delivery", "+$14.99 delivery", "+EUR 5,49 Lieferung"); empty on pickup-only listings
returnPolicyReturn policy text in the site's language, when eBay shows it on the search card
couponCoupon or promo-code text shown in search results, when available
discountTextDiscount or savings text shown in search results, when available
conditionItem condition as eBay shows it in the marketplace's language (e.g., "Brand New", "Pre-Owned", "Good - Refurbished", "Gebraucht"), when eBay shows it on the search card
sellerTypePrivate or business seller, as eBay shows it on EU marketplaces (e.g., "Privat", "Gewerblich"); null where eBay doesn't show it
listingType"Buy It Now" or "Auction"
bidCountNumber of bids (auctions only)
timeLeftTime remaining as eBay shows it, in the site's language (auctions only, e.g., "5d 6h left", "Noch 2 Std 5 Min")
bestOfferWhether the listing accepts Best Offer; no accepted offer price is returned
soldCountSold-volume text displayed on the active listing (e.g., "824", "93+"), not historical sale prices or dated transactions; when eBay shows it on the search card
sellerNameSeller username, when eBay shows it on the search card
sellerFeedbackPercentSeller positive feedback percentage, when eBay shows it on the search card
sellerFeedbackCountTotal seller feedback count, when eBay shows it on the search card
isSponsoredCurrently always null: eBay no longer exposes the sponsored label in a readable form
thumbnailProduct image URL
imagesArray of product image URLs
urlDirect link to listing on eBay
scrapedAtISO timestamp of when data was collected

How much does it cost to scrape eBay?

This Actor uses pay-per-event pricing — you pay only for what you scrape. No monthly subscription. All platform costs (compute, proxy, storage) are included in the per-product price.

Apify plan tierPrice per product
FREE$0.00345
BRONZE$0.003
SILVER$0.00234
GOLD$0.0018
PLATINUM$0.0012
DIAMOND$0.00084

Each run also has a $0.001 actor start fee. The total actor charge is the start event plus the product events at your plan's rate; the Apify pricing panel is authoritative. The start fee is charged with the first product, so invalid input, a search with no matches, or a fully blocked run costs nothing.

From 2026-11-21 the price per product will be FREE and BRONZE $0.003, SILVER $0.0027, and GOLD, PLATINUM and DIAMOND $0.0024. The start fee stays the same.

How to scrape eBay listings step by step

  1. Click Try for free to open the Actor in Apify Console.
  2. Enter one or more search keywords (e.g., "laptop", "airpods", "vintage watches"), paste eBay search URLs, or list sellers.
  3. Choose an eBay marketplace. Leave US selected for the existing ebay.com behavior.
  4. Set filters — condition (new, used, refurbished), listing type (auction, Buy It Now), and price range.
  5. Set the maximum number of products and pages you want.
  6. Choose a sort order — best match, ending soonest, newly listed, or by price.
  7. Click Start and wait for the run to finish.
  8. Download your data as JSON, CSV, or Excel from the Dataset tab.
  9. Optionally, set up a schedule for recurring scrapes (hourly, daily, weekly).

Example input:

{
"searchQueries": ["laptop", "airpods"],
"marketplace": "UK",
"maxProductsPerSearch": 100,
"maxSearchPages": 3,
"sort": "best_match",
"condition": ["new"],
"listingType": "buy_it_now"
}

How do I scrape eBay listings and prices?

ParameterTypeDefaultDescription
searchQueriesarray—Keywords to search on eBay. Each keyword runs a separate search. Add at least one keyword, search URL or seller.
startUrlsarray—eBay search results URLs (/sch/), as { "url": "..." }, with their own filters. Each runs on its own eBay site. The filters below don't apply to them. Must include a keyword or seller.
sellersarray—Only listings from these eBay usernames. Works with keywords or on its own.
marketplacestringUSMarketplace: US, UK, DE, FR, IT, ES, CA, or AU
maxProductsPerSearchinteger100Maximum products to return per keyword
maxSearchPagesinteger5Max search result pages per keyword (up to 20). Each page has up to 60 products.
sortstring"best_match"Sort order: best_match, ending_soonest, newly_listed, price_low, price_high
conditionarray[]Filter by condition: new, open_box, refurbished, used, for_parts. Leave empty for all.
listingTypestring"all"Filter by listing type: all, auction, buy_it_now
minPriceinteger—Minimum price in the selected marketplace's currency
maxPriceinteger—Maximum price in the selected marketplace's currency
categoryIdstring—Limit to one eBay category, using the number from its URL. Needs a keyword or seller.
freeShippingOnlybooleanfalseOnly listings with free shipping
homeCountryOnlybooleanfalseOnly items located in the selected marketplace's country
maxRequestRetriesinteger5Maximum attempts per search page (1-10), shared across anti-bot blocks and other request errors

What data can I extract from eBay?

{
"type": "product",
"itemId": "286393092388",
"title": "Dell Latitude Laptop Computer PC Intel i5 Up To 32GB RAM 1TB SSD Windows 11",
"price": 237.36,
"priceString": "$237.36",
"listPriceString": "$372.48",
"marketplace": "US",
"marketplaceDomain": "www.ebay.com",
"currency": "USD",
"shippingCost": "Free delivery",
"returnPolicy": "Free returns",
"coupon": "Extra 10% off with coupon",
"discountText": "40% off",
"condition": "Good - Refurbished",
"sellerType": null,
"listingType": "Buy It Now",
"bidCount": null,
"timeLeft": "",
"bestOffer": false,
"soldCount": "93+",
"sellerName": "discountcomputerdepot",
"sellerFeedbackPercent": "99.3%",
"sellerFeedbackCount": "153.4K",
"isSponsored": null,
"thumbnail": "https://i.ebayimg.com/images/g/PcAAAeSwFd1plzsw/s-l500.webp",
"images": ["https://i.ebayimg.com/images/g/PcAAAeSwFd1plzsw/s-l500.webp"],
"url": "https://www.ebay.com/itm/286393092388",
"scrapedAt": "2026-03-02T23:49:11.744Z"
}

Tips for best results

  • Start with low limits — Set maxProductsPerSearch to 10-20 for testing before scaling up.
  • Use specific keywords — "apple airpods pro 2nd generation" returns better results than just "airpods".
  • Filter by condition — Use the condition filter to narrow results to "new" or "refurbished" items only.
  • Monitor auctions — Sort by ending_soonest to find auctions about to end with low bid counts.
  • Schedule regular runs — Use Apify Schedules for daily price monitoring, then compare exported datasets downstream.
  • Compare across marketplaces — Cross-reference eBay prices with Amazon Scraper, Walmart, Target, or Google Shopping Scraper data for arbitrage research and cross-merchant monitoring of active listing prices. Use eBay Product Research manually for sold comps; active asking prices are not realized sale prices.
  • Multiple keywords per run — Add several keywords to searchQueries array for efficient batch scraping instead of running separate jobs.
  • Use price filters — Set minPrice and maxPrice to narrow results and reduce unnecessary data extraction.
  • Combine filters — Stack condition, listing type, and price range together for highly targeted results.

Integrations

Connect eBay Scraper to your existing tools and workflows:

  • Google Sheets — Export scraped data directly to Google Sheets for analysis and sharing.
  • Zapier — Trigger actions in 5,000+ apps when new data is scraped.
  • Make (Integromat) — Build automated workflows with scraped eBay data.
  • Slack — Get notified when prices drop below a threshold.
  • Webhooks — Send data to your own API endpoint after each run.
  • Apify API — Programmatically start runs and retrieve results from any language.

Workflow ideas:

  • eBay to Google Sheets price tracker — Schedule daily scrapes and auto-append results to a spreadsheet to track active listing asking-price trends over time, not realized resale values.
  • eBay to Slack auction alerts — Get Slack notifications when auctions ending soon have low bid counts for deal sniping.
  • eBay to your database — Use webhooks to push scraped data directly into your PostgreSQL, MongoDB, or data warehouse.

API usage

Start eBay Scraper runs and retrieve results programmatically using the Apify API.

Node.js:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('automation-lab/ebay-scraper').call({
searchQueries: ['laptop'],
maxProductsPerSearch: 100,
maxSearchPages: 3,
condition: ['new'],
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python:

from apify_client import ApifyClient
client = ApifyClient('YOUR_API_TOKEN')
run = client.actor('automation-lab/ebay-scraper').call(run_input={
'searchQueries': ['laptop'],
'maxProductsPerSearch': 100,
'maxSearchPages': 3,
'condition': ['new'],
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)

cURL:

curl "https://api.apify.com/v2/acts/automation-lab~ebay-scraper/runs" \
-X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-d '{
"searchQueries": ["vintage watches"],
"maxProductsPerSearch": 50,
"condition": ["used"]
}'

Use with AI agents via MCP

eBay Scraper is available as a tool for AI assistants that support the Model Context Protocol (MCP).

Setup for Claude Code

$claude mcp add --transport http apify "https://mcp.apify.com?tools=automation-lab/ebay-scraper"

Setup for Claude Desktop, Cursor, or VS Code

Add this to your MCP config file:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=automation-lab/ebay-scraper"
}
}
}

Example prompts

Once connected, try asking your AI assistant:

  • "Find the cheapest listings for 'vintage watches' on eBay"
  • "Search active eBay listings for 'Pokemon cards' in Germany and compare prices"
  • "Search eBay for 'used MacBook Pro' and compare seller ratings"
  • "Track eBay prices for 'Nintendo Switch' over the last week"

Learn more in the Apify MCP documentation.

Legality

eBay Scraper accesses only publicly available data from eBay search results — the same information any visitor sees in a browser. It does not bypass authentication, access private accounts, or circumvent technical protection measures.

Scraping publicly available data is generally considered legal based on the 2022 US Ninth Circuit ruling in hiQ Labs v. LinkedIn, which affirmed that scraping public data does not violate the Computer Fraud and Abuse Act (CFAA). Similar principles apply in the EU under GDPR, where publicly available non-personal business data can be processed with legitimate interest.

That said, you are responsible for ensuring your use of scraped data complies with applicable laws in your jurisdiction, eBay's Terms of Service, and any relevant data protection regulations. This information is not legal advice.

This Actor is independently operated and is not affiliated with, endorsed by, or sponsored by eBay.

Data handling, dependencies, and support

The Actor uses deterministic HTTP requests and HTML parsing; it does not send inputs or scraped data to an AI provider. Search terms and filters are sent to the selected public eBay marketplace through country-matched Apify residential proxies. The company pays the proxy and platform costs, which are included in the documented Actor price.

Output may include public seller names and feedback shown in eBay search results. Results are stored only in the run's default Apify dataset, while input and operational logs use the run's Apify storage. The Actor creates no separate external cache. Storage retention and deletion follow your Apify account settings, and you can delete runs and their storage in Apify Console.

Failed operations send sanitized diagnostic input, exceptions, and Actor/build/run IDs to our private GlitchTip service for repair. Secret fields and URL queries are removed; reports are retained for 30 days.

If an upstream page remains blocked or unavailable after the bounded retry attempts, the run fails rather than reporting a successful empty search. Products already saved remain available in the dataset with their matching product charges. A recognizable search page with no matching listings can still complete successfully with no products.

For help, open an issue from the Actor's Issues tab in Apify Console. Include a run link and a sanitized input; never include passwords, tokens, or private account data.

FAQ

How many products can I scrape per run? Up to 1,200 products per search keyword (20 pages x ~60 products per page). You can run multiple keywords in a single run for even larger datasets.

How fast is the scraper? Each search page takes a few seconds, more when eBay blocks an attempt and the Actor retries. A full 20-page search (about 1,200 products) typically completes in a few minutes.

Can I scrape eBay outside the US? Yes. Set marketplace to US, UK, DE, FR, IT, ES, CA, or AU. The Actor searches the matching eBay domain with a matching request locale and proxy country, parses localized price formats, and adds marketplace, marketplaceDomain, and currency to every record. US is the default, so existing inputs continue to target ebay.com unchanged.

Why are some seller fields empty? eBay doesn't show seller information on every search result, and not on every marketplace: on ebay.co.uk search pages, for example, seller fields are usually empty. This Actor reads search pages only, so those fields stay empty.

What about auction data? For active auctions, the scraper captures bid count, time remaining, and current price. Use listingType: "auction" to filter for auctions only.

Why is the price null for some products? Some listings show price ranges ("$100.00 to $200.00") or require selecting options before showing a price. The scraper returns the first price in a range when available.

The scraper returns duplicate listings. How do I avoid this? Deduplication is built in and removes duplicates by item ID within a single run. If you see duplicates across separate runs, deduplicate by itemId in your downstream pipeline.

Can I scrape eBay sold/completed listings? Not with this Actor. It extracts active search listings and has no sold-items mode. Neither active listing prices nor per-listing soldCount provide historical realized sale prices or accepted Best Offer prices. Use eBay Product Research manually for sold-comps research. This is a separate eBay tool, not an API or signed-in scraping capability of this Actor.

Can I paste an eBay URL? Yes, any search results URL with a keyword or seller, such as https://www.ebay.com/sch/i.html?_nkw=laptop&LH_BIN=1. Its filters and sort order are kept, and marketplace is taken from the URL. Listing, store and keyword-less category pages aren't supported: a run with such a URL stops right away without a charge. To search a category, add a keyword to the search on eBay, or use categoryId with a keyword.

Can I scrape one seller's listings? Yes. Put the username in sellers, with or without keywords.

Why did I get fewer products than I asked for? The run's status message says why, for example "Got 60 of 100 products: the "Max search pages" limit was reached". Each page has up to 60 products, so raise maxSearchPages for larger limits.

Can I scrape individual eBay product pages? This scraper focuses on search results. It does not navigate to individual product detail pages. All data comes from the search results page, which provides the fields listed in the output section above.

What happens if eBay blocks my requests? The scraper uses residential proxies and automatic retries (configurable via maxRequestRetries). Temporary eBay anti-bot blocks and ordinary errors such as HTTP 5xx or timeouts are retried with a fresh residential IP, up to maxRequestRetries attempts per page in total (5 by default). eBay blocks many attempts, and a blocked attempt costs you nothing. If runs fail with HTTP 403, set a higher value (up to 10) so more searches complete, or run the search again. For anything else, open an issue from the Actor's Issues tab.

Use with AI agents via x402 (no Apify account)

Agent workflows can run this actor through Apify MCP without an Apify account when the MCP client uses a funded x402 wallet. Use the actor-specific MCP endpoint:

https://mcp.apify.com?tools=automation-lab/ebay-scraper&payment=x402

This keeps existing Apify MCP/API usage unchanged; x402 only changes payment/authentication for clients that support it. Learn more in Apify's x402 integration docs.