ParseForge Scrapers

eBay Scraper

parseforge/ebay-scraper

E-commerce

Scrape eBay listings and SOLD prices without a login: search or paste URLs, get sold price and date, bids, condition, shipping, location and more. Active, sold and completed modes, 8 marketplaces, filters and pagination. Pay per result.

Run this scraper See the API call
Total users
286
Monthly active
13
Total runs
6K
Bookmarked
3
Rating
1.9 (3)
Last modified
2 days ago

This scraper was last updated on .

What does the eBay Scraper return?

ParseForge

eBay Scraper

Scrape eBay product listings, prices, seller details, and sold data from any search, category, or direct URL. Each result returns the title, price, condition, shipping cost, and seller info in a flat, structured row. Export to CSV, JSON, Excel, or XML.

eBay's official APIs require developer accounts, complex authentication, and strict rate limits that throttle large-scale data collection. This Actor reads the public web pages directly, letting you scrape active listings or confirmed sold prices by search query, category, or direct URL. It handles pagination, proxy rotation, and structured data extraction so you get clean, analysis-ready datasets without writing any code.

Who uses it What they scrape eBay for
E-commerce sellers Monitor competitor pricing and inventory levels for specific products.
Market researchers Analyze market supply, demand trends, and average selling prices by category.
Resellers and flippers Find underpriced items and research confirmed sold prices to set profitable resale values.
Data analysts Build price history databases and track product availability over time.

What it does

This Actor collects eBay product listings or sold items by search query, category, or direct URL and returns each result as a flat row with title, price, condition, shipping, and seller information.

  • ๐Ÿ” Search-based scraping: Enter a search query, category, and filters like condition, price range, or location to target specific listings.
  • ๐Ÿ”— Direct URL input: Paste one or more eBay listing, search, or category page URLs to scrape exactly the pages you need.
  • ๐Ÿ“Š Sold and completed listings: set Mode to sold to get the sold price, sold date, bids and shipping of items that actually sold, or completed to include ended listings that did not sell. No login or cookie needed, see "Sold and completed listings" below.
  • ๐ŸŒ Eight marketplaces: ebay.com, ebay.co.uk, ebay.de, ebay.fr, ebay.it, ebay.es, ebay.ca and ebay.com.au. Pick one in the Input tab or paste a URL from that site; the proxy country follows the site.
  • โš™๏ธ Filters: category ID, condition (New, Open box, Refurbished, Used, For parts), price range, buying format (auction, Buy It Now, Best Offer), item location, free shipping, sort order (including ended recently) and, for sold data, a sold-within-N-days window.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

What you can do with eBay data

๐Ÿ’ฐ Price competitor products.

An e-commerce seller runs the Actor daily on a search for their top 50 products to track competitor prices and adjust their own listings.

๐Ÿ“ˆ Research sold prices for resale.

A vintage clothing reseller searches for sold listings of a specific brand and condition to determine the market value before sourcing inventory.

๐Ÿ“Š Build a market trend dataset.

A data analyst scrapes a category weekly, collecting prices and seller counts to model supply and demand shifts over time.

๐Ÿ›’ Find arbitrage opportunities.

A flipper searches for underpriced Buy It Now listings in a niche category, filtering by condition and price to identify profitable flips.

Why choose this scraper

What you get
No API keys required Scrapes public eBay pages directly with no developer account or token management.
Residential proxies built in Uses Apify's residential proxies to avoid blocking and access geo-specific marketplaces.
Structured output Returns every listing as a clean, flat row with consistent fields for title, price, shipping, and seller.
Flexible input methods Start from a search term, a category ID, or a list of direct URLs.

How it compares

This Actor combines active listing and sold data scraping with flexible search filters and direct URL input, while the competitors below each focus on a narrower slice of eBay data.

Feature ParseForge eBay Product Listing Scraper eBay Sold Listings Search
Scrapes active listings Yes Yes Not listed
Scrapes sold listings Yes Not listed Yes
Search by keyword Yes Yes Yes
Direct URL input Yes Yes Not listed
Condition filter Yes Not listed Not listed
Price range filter Yes Not listed Not listed
Multi-marketplace proxy targeting Yes Not listed Yes

Sold and completed listings

Sold and completed listings need no login and no cookie. eBay sends anonymous web browsers to its sign-in page for these searches, so the Actor requests them the way eBay's own Android app does, which returns the full result list (checked on ebay.com, ebay.co.uk and ebay.de).

  • Mode = active (the default) returns current listings.
  • Mode = sold returns items that sold; completed also returns ended listings that did not sell.
  • If eBay ever redirects a sold search to sign-in anyway, the run stops with a clear message instead of returning wrong data. Turn on "Fall back to active listings" to get current asking prices instead (rows say listingStatus: ACTIVE), or paste an "eBay session cookie" (optional) from a browser where you are signed in.

Sold rows fill soldPrice, soldDate and listingStatus (SOLD, or UNSOLD for ended listings that did not sell), next to bids, shippingCost, totalPrice and bestOfferAccepted where eBay prints them.

Configure the run

Drive the Actor from search queries, categories, and direct URLs, alone or together, and filters run as each listing is read so only matches reach your dataset. The Input tab lists every parameter.

A first run with the defaults:

{
  "maxItems": 10,
  "searchQuery": "laptop",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}

A larger pull:

{
  "maxItems": 200,
  "searchQuery": "laptop",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}

Free users

Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.

Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the eBay Scraper.
  3. Set your inputs and any filters, then click Start.
  4. Export the results as CSV, Excel, JSON, or XML from the Dataset tab.

Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.

Use with AI agents (MCP)

Give an AI agent live access to eBay through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

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

Then prompt it in plain language to run the scraper and read back the results.

Troubleshooting

Why am I getting no results?

Check that your search query or URLs are valid and that your filters are not too restrictive. Try removing optional filters like price range or condition to see if results appear. Also confirm you are using residential proxies, as datacenter IPs are often blocked by eBay. A run that finds nothing ends as failed with the reason, never as an empty success.

Why is the Actor returning fewer items than my maxItems setting?

The Actor stops when it reaches the end of available listings for your query. eBay may cap search results at a certain number of pages. Try narrowing your search with more specific keywords or filters to ensure you capture all relevant items.

I'm getting blocked or seeing CAPTCHAs.

Make sure you are using residential proxies in the proxy configuration. If you are already using them, try increasing the run's delay or reducing concurrency to mimic human browsing behavior.

The data fields are empty or missing for some listings.

eBay's page structure can vary slightly by listing type or region. If specific fields are missing, the listing may not have that data available. Check the raw HTML output option to debug, or try targeting a different regional site.

Can I use both Start URLs and a search query at the same time?

If both are sent, the Start URLs win and the search query is ignored (the Input tab pre-fills a demo query, so pasting a URL never fails). A URL that already has the sold filter (LH_Sold=1) runs in sold mode.

Why are seller fields empty on some runs?

eBay prints the seller line on search cards only for some result layouts. When it is not on the page the fields are null; they are never guessed.

FAQ

Question Answer
Can I scrape sold listings with this Actor? Yes. Set Mode to sold (or completed); no login or cookie is needed. See "Sold and completed listings".
Do I need an eBay API key or developer account? No. This Actor scrapes the public eBay website directly. You do not need to register an app, get an API key, or manage OAuth tokens.
How many listings can I scrape in one run? Free users can scrape up to 10 items as a preview. Paid Apify users can set a maximum up to 1,000,000 items per run.
Can I scrape eBay sites in other countries? Yes: ebay.com, ebay.co.uk, ebay.de, ebay.fr, ebay.it, ebay.es, ebay.ca and ebay.com.au. Choose the marketplace in the Input tab or paste a URL from that site.
What data fields does the Actor return? 50 fields per row, e.g. title, price, priceDisplay, currency, condition, shipping, shippingCost, totalPrice, listingStatus, soldPrice, soldDate, bids, timeLeft, seller (name, feedback score and percent), location, watchers, quantitySold, freeReturns, productId and marketplace. Item-page fields such as specifications, description and identifiers exist in the schema and are filled only when eBay shows them on the search card.
Can I filter by item condition? Yes: New, Open box, Refurbished, Certified refurbished, Seller refurbished, Used, or For parts or not working.
How do I scrape only Buy It Now listings? Check the 'Buy It Now Only' box in the input settings to exclude auction-style listings and return only fixed-price items.
Can I provide a list of specific eBay URLs to scrape? Yes. Use Start URLs for eBay search, category or store pages. If a search query is also set, the URLs win.
Does this Actor handle pagination automatically? Yes. The Actor follows pagination links through search results and category pages until it reaches your max items limit or the end of the listings.
What export formats are supported? You can export your scraped data to CSV, JSON, Excel, or XML directly from the Apify dataset.

๐Ÿ†˜ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.

โš ๏ธ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by eBay Inc. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

What input does the eBay Scraper accept?

FieldTypeWhat it doesDefault
maxItems integer Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000 10
startUrls array Direct URLs to eBay search, category, store or listing pages. Wins over Search Query when both are given (the Console pre-fills Search Query, so pasting a URL never fails). A URL that already carries LH_Sold=1 runs in sold mode. not set
searchQuery string Keywords to search, e.g. laptop or iphone 15 pro 256gb. Ignored when Start URLs are given. laptop
mode string (3 options) Empty = active. active = current listings (default, works without login). sold = items that actually sold, with sold price and date. completed = sold and unsold ended listings. Sold and completed work without any login. not set
ebaySite string (8 options) Which eBay site to search when using Search Query (empty = ebay.com). Start URLs choose their own site. not set
category string eBay category ID or name (e.g., '58058' for Computers/Tablets & Networking) not set
condition string (7 options) Filter by condition. not set
buyingFormat string (4 options) Restrict to auctions, Buy It Now or Best Offer listings. all
minPrice number Minimum price in the marketplace currency (USD on ebay.com, GBP on ebay.co.uk). not set
maxPrice number Maximum price in the marketplace currency. not set
location string Item location: US (domestic), North America or Worldwide. Leave empty for the eBay default. not set
sortOrder string (6 options) How to sort. endedRecently is the useful one for sold and completed listings. not set
buyItNowOnly boolean Legacy switch, same as Buying format = Buy It Now. false
freeShippingOnly boolean Show only items with free shipping false
soldWithinDays integer Sold and completed modes only: keep sales from the last N days. Works best with Sort = endedRecently. not set
ebayCookie string Cookie header copied from a browser where you are signed in to eBay. Optional: sold and completed modes work without it. Only useful if eBay ever starts refusing anonymous sold searches. Used only for this run. not set
fallbackToActiveListings boolean If eBay refuses sold results (eBay redirected the search to sign-in), return active listings instead of failing. Rows are marked listingStatus = ACTIVE so they are never mistaken for sales. not set
proxyConfiguration object Select proxy configuration for scraping. Residential proxies are recommended for eBay. Use the Country option to target eBay regional sites (e.g. GB for ebay.co.uk). {"useApifyProxy":true,"apifyProxyGroups"

How much does the eBay Scraper cost?

from $4.50 per 1,000 results

Charged forWhat it isPrice each
eBay listing One eBay listing row (active, sold or completed) with up to 50 fields: price, sold price and date, bids, condition, shipping, seller and location. $0.0045 to $0.005
Actor Start Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event). $0.06 to $0.065

Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.

How do I call the eBay Scraper API?

One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.

POST ยท run and get results
curl -X POST "https://api.apify.com/v2/acts/parseforge~ebay-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "maxItems": 10,
    "startUrl": "https://www.ebay.com/sch/i.html?_nkw=iphone+14&LH_Sold=1&LH_Complete=1",
    "soldItemsOnly": true,
    "sortBy": "12",
    "country": "ebay.com",
    "maxConcurrency": 3,
    "fallbackToActiveListings": true
  }'

What example inputs can I use?

Use these inputs to see how a run is configured.

input.json
{
  "maxItems": 10,
  "startUrl": "https://www.ebay.com/sch/i.html?_nkw=iphone+14&LH_Sold=1&LH_Complete=1",
  "soldItemsOnly": true,
  "sortBy": "12",
  "country": "ebay.com",
  "maxConcurrency": 3,
  "fallbackToActiveListings": true
}

What do users say about the eBay Scraper?

Rated 1.9 out of 5 across 3 reviews. Read them on Apify.

How do I report an issue with the eBay Scraper?

We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.

Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.

What related scrapers can I use?

Run eBay Scraper on Apify All scrapers