eBay Scraper - Products, Sellers, Prices & Monitoring avatar

eBay Scraper - Products, Sellers, Prices & Monitoring

Pricing

from $1.20 / 1,000 listing results

Go to Apify Store
eBay Scraper - Products, Sellers, Prices & Monitoring

eBay Scraper - Products, Sellers, Prices & Monitoring

Scrape eBay by keyword, category, seller or pasted link across 16 country storefronts. Returns id, title, condition, price, buying format, delivery, returns, seller feedback and more, with optional item specifics and full descriptions. Incremental mode tracks changes.

Pricing

from $1.20 / 1,000 listing results

Rating

0.0

(0)

Developer

Abot API

Abot API

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Categories

Share

eBay Marketplace Scraper

Pull structured listing data from eBay across sixteen country storefronts. Search by keyword, by category id or by seller username, or paste links you already have: result pages, seller listing pages, browse category pages and individual item pages are all accepted and can be mixed in one run. Every listing comes back as one flat row with the price, the buying format, delivery, the seller and their feedback score, and, when you ask for it, the full image gallery, the item specifics table and the seller's own description.

Why This Scraper?

  • Sixteen marketplaces, each checked live. United States, United Kingdom, Germany, Australia, Canada, France, Italy, Spain, Ireland, Austria, Switzerland, Netherlands, Poland, Hong Kong, Singapore and Malaysia. Every one was fetched and confirmed to return real, id-bearing listings before it was offered as an option, and prices come back in that storefront's own currency.
  • Around 45 fields per listing, including the low and high end of a variant price range, the pre-discount price and computed discount percentage, bid count and time left on auctions, the sold count, the item location, and the seller's positive-feedback percentage and feedback score. Most of that arrives from the result page itself, so it costs nothing extra.
  • Four ways in. Keyword search, a whole seller's store, a category id, or pasted links. Search filters use the marketplace's own native filters (condition, buying format, price band, delivery, returns, item location, sort order) so they narrow the result set at the source rather than throwing rows away after you have paid for them.
  • A search that matches nothing returns nothing. eBay answers a no-match query with a full page of loosely related suggestions that sit in the same result list as genuine matches. This scraper reads the page's own result count and returns zero rows instead of handing you sixty listings that have nothing to do with your query.
  • Incremental mode for recurring runs. Schedule the same search daily and get only what is NEW, UPDATED or REAPPEARED, with the changed field names listed on every updated row. Auction countdowns are excluded from change detection, so a ticking clock never bills you for a change that did not happen.
  • Resume a large pull from a previous run id without re-returning or re-charging for rows you already have.

Data You Get

Sample shape, values are illustrative placeholders, not from a live listing.

FieldExample
itemId"000000000001"
url"https://www.ebay.com/itm/000000000001"
title"Sample Listing Title"
subtitle"Sample seller strapline"
condition"Good - Refurbished"
conditionId"2030"
brand"Sample Brand"
marketplace"com"
marketplaceDomain"www.ebay.com"
price224.17
priceMax545.25
priceText"$224.17 to $545.25"
currency"USD"
originalPrice263.73
discountPercent15.0
listingType"buy_it_now"
bidCountnull
timeLeftnull
shippingCostnull
shippingText"Free delivery"
freeShippingtrue
itemLocation"United States"
returnsText"Free returns"
freeReturnstrue
soldCount1560
sellerName"examplestore"
sellerUrl"https://www.ebay.com/sch/examplestore/m.html"
sellerFeedbackPercent99.6
sellerFeedbackCount172600
badges["Sample Badge"]
imageUrl"https://i.ebayimg.com/images/g/000000000000/s-l500.webp"
attributes["Buy It Now", "Free delivery", "Located in United States"]
images["https://i.ebayimg.com/images/g/000000000000/s-l1600.jpg"]
itemSpecifics{"Processor": "Sample Processor", "SSD Capacity": "1 TB"}
categoryPath["Electronics", "Computers", "Laptops"]
description"Full seller description text appears here when Read item pages is on."
detailIncompletetrue (present only when Read item pages is on and this listing's item page was still refused after a retry โ€” the row carries its result-card fields and is not billed the item page event)
mpn"SAMPLE-MPN"
model"Sample Model"
color"Black"
availability"In Stock"
quantityAvailable10
quantitySold1560
paymentMethods["PayPal", "Visa"]
returnPolicy"Returns: Seller does not accept returns"
searchQuery"laptop"
pageNumber1
scrapedAt"2026-01-01T00:00:00Z"
changeType"NEW"
changedFields[]

Fields from images down to returnPolicy are null unless Read item pages is on.

How to Use

Search one marketplace by keyword:

{
"mode": "search",
"marketplace": "com",
"queries": ["mechanical keyboard"],
"maxItems": 50
}

Search with the marketplace's own filters, including a multi-select condition:

{
"mode": "search",
"marketplace": "co.uk",
"queries": ["vinyl record"],
"condition": ["new", "used"],
"buyingFormat": "buy_it_now",
"minPrice": 10,
"maxPrice": 60,
"freeShippingOnly": true,
"sortBy": "newly_listed",
"minSellerFeedbackPercent": 98,
"maxItems": 100
}

Pull two whole seller stores with their item pages:

{
"mode": "search",
"marketplace": "de",
"sellerUsernames": ["examplestore", "otherstore"],
"fetchDetails": true,
"maxItems": 200
}

Scrape pasted links, mixing marketplaces and link kinds:

{
"mode": "url",
"urls": [
"https://www.ebay.com/sch/i.html?_nkw=laptop&LH_BIN=1",
"https://www.ebay.co.uk/sch/examplestore/m.html",
"https://www.ebay.de/itm/000000000001",
"https://www.ebay.com/b/PC-Laptops-Netbooks/177"
],
"maxItems": 150
}

Monitor the same search daily and get only what changed:

{
"mode": "search",
"queries": ["pokemon card"],
"incrementalMode": true,
"maxItems": 0
}

Input Parameters

ParameterTypeDefaultDescription
modestringsearchsearch or url.
queriesarray["laptop"]Search keywords. Search mode only.
sellerUsernamesarrayemptySeller usernames whose listing pages are walked. Search mode only.
marketplacestringcomWhich of the sixteen storefronts to search. Search mode only; a pasted link carries its own.
categoryIdstringemptyNumeric category id from the marketplace's own category links.
conditionarrayemptyNew, Open box, the four refurbished grades, Seller refurbished, Used, For parts. Multi-select.
buyingFormatstringanyAny, Buy It Now, Auction, Accepts offers.
minPrice / maxPriceintegeremptyPrice band in the marketplace's own currency.
freeShippingOnlybooleanfalseKeep only listings flagged as free delivery.
freeReturnsOnlybooleanfalseKeep only listings offering free returns.
returnsAcceptedOnlybooleanfalseKeep only listings that accept returns at all.
itemLocationstringdefaultMarketplace default, marketplace country only, same continent, or worldwide.
sortBystringbest_matchBest match, ending soonest, newly listed, price and delivery lowest or highest.
urlsarraytwo examplesResult, seller, browse category and item links. URL mode only.
minSellerFeedbackPercentintegeremptyApplies in both modes. Sellers with no score yet are kept.
fetchDetailsbooleanfalseRead each listing's item page. Adds one Item page event per listing. Refused item pages get a second pass; a listing that still cannot be read ships without details, flagged detailIncomplete, unbilled.
maxItemsinteger20The run's cap. 0 means unlimited.
maxPagesinteger0Result pages per keyword, seller or link. 0 means no limit.
resumeFromRunIdstringemptyContinue one interrupted run from its run or dataset id.
incrementalModebooleanfalseReturn only what changed since the last run of the same search.
stateKeystringemptyName a monitoring campaign, or deliberately share state.
emitUnchangedbooleanfalseAlso return, and bill, UNCHANGED rows.
emitExpiredbooleanfalseAlso return, and bill, EXPIRED rows.
proxyobjectApify Proxy onConnection configuration.
mcpConnectorsarrayemptyOptional MCP connectors to also write results into.
notionParentPageUrlstringemptyNotion parent page id or URL, Notion connector only.
maxNotifyListingsinteger50Cap on items written to each connector.

Output Example

Sample shape, values are illustrative placeholders, not from a live listing.

{
"itemId": "000000000001",
"url": "https://www.ebay.com/itm/000000000001",
"title": "Sample Listing Title",
"subtitle": "Sample seller strapline",
"condition": "Good - Refurbished",
"conditionId": "2030",
"brand": "Sample Brand",
"marketplace": "com",
"marketplaceDomain": "www.ebay.com",
"price": 224.17,
"priceMax": 545.25,
"priceText": "$224.17 to $545.25",
"currency": "USD",
"originalPrice": 263.73,
"discountPercent": 15.0,
"listingType": "buy_it_now",
"bidCount": null,
"timeLeft": null,
"shippingCost": null,
"shippingText": "Free delivery",
"freeShipping": true,
"itemLocation": "United States",
"returnsText": "Free returns",
"freeReturns": true,
"soldCount": 1560,
"sellerName": "examplestore",
"sellerUrl": "https://www.ebay.com/sch/examplestore/m.html",
"sellerFeedbackPercent": 99.6,
"sellerFeedbackCount": 172600,
"badges": ["Sample Badge"],
"imageUrl": "https://i.ebayimg.com/images/g/000000000000/s-l500.webp",
"attributes": ["Buy It Now", "Free delivery", "Located in United States"],
"images": ["https://i.ebayimg.com/images/g/000000000000/s-l1600.jpg"],
"itemSpecifics": { "Processor": "Sample Processor", "SSD Capacity": "1 TB" },
"categoryPath": ["Electronics", "Computers", "Laptops"],
"description": "Full seller description text appears here when Read item pages is on.",
"sellerNotes": "Sample seller notes.",
"mpn": "SAMPLE-MPN",
"model": "Sample Model",
"color": "Black",
"gtin": null,
"listPrice": 263.73,
"availability": "In Stock",
"quantityAvailable": 10,
"quantitySold": 1560,
"paymentMethods": ["PayPal", "Visa"],
"shippingDetails": "Shipping: Sample shipping line",
"returnPolicy": "Returns: Seller does not accept returns",
"listedAt": "2026-01-01T00:00:00Z",
"updatedAt": "2026-01-01T00:00:00Z",
"searchQuery": "laptop",
"sourceUrl": "https://www.ebay.com/sch/i.html?_nkw=laptop",
"pageNumber": 1,
"scrapedAt": "2026-01-01T00:00:00Z",
"changeType": "NEW",
"changedFields": [],
"firstSeenAt": "2026-01-01T00:00:00Z",
"lastSeenAt": "2026-01-01T00:00:00Z"
}

Send results into your apps (MCP connectors)

Results can also be piped straight into the apps you already use, over Model Context Protocol. Authorize a connector under Apify, Settings, API & Integrations, then select it in the Export to your apps (MCP connectors, optional) section of the input.

  • mcpConnectors picks one or more authorized connectors. Leave it empty and nothing happens: the export code never runs and the dataset is byte for byte identical.
  • notionParentPageUrl is required for the Notion connector, which gets one page per listing, and is ignored by every other connector.
  • maxNotifyListings caps how many listings are written to each connector per run. It does not affect the dataset.

What gets written is a condensed, human readable summary per listing: a title plus the key fields flattened to plain text. Nested objects collapse to their main value and arrays are trimmed to a few entries. The complete record always stays in the Apify dataset.

If a connector write fails, the run logs a warning and carries on. Scrape data is never affected.

Known Limits

Stated plainly so you can decide before you run.

  • Sold and completed listings are behind an eBay account and cannot be read. Both the LH_Sold=1 and LH_Complete=1 filters were probed live on 2026-09-04, on two different connection pools: eBay answers them with its sign-in page, not with results. This scraper therefore does not offer a sold-listings toggle rather than offering one that silently returns nothing. If a run does hit a sign-in page (for example from a pasted link carrying those filters), the log says so explicitly and the run does not pretend the search was empty.
  • The Philippines storefront is not offered. ebay.ph redirects to the United States storefront, so listing it as a separate marketplace would be an option that quietly does something else.
  • The Canada storefront is less reliable on the default connection. It answers more consistently on the alternative option in the Connection section, and the run says so at startup when you pick the Canada storefront without one.
  • Some labels are richest on English-language storefronts. The structural fields (item id, title, price, currency, seller, feedback score, image) are read the same way on all sixteen. A handful of derived labels (listingType, freeShipping, soldCount, freeReturns) are parsed from the marketplace's own wording and are most complete on the English-language storefronts. The raw wording is always available in attributes regardless of language.
  • Promoted listings can appear ahead of the requested sort order. That is the marketplace's own behaviour, not something a scraper can undo.
  • conditionId is populated from English condition labels. On other storefronts condition carries the marketplace's own wording and conditionId may be null.
  • Incremental mode deliberately ignores some fields. timeLeft, attributes, scrapedAt, updatedAt, sourceUrl, pageNumber and searchQuery never appear in changedFields: an auction countdown moves on every fetch and would otherwise rewrite every auction row every run. Every real change still shows up, because each of those is also carried by a structured field that is tracked.

Plan Requirement

Apify Proxy is recommended and the default configuration is enough for fifteen of the sixteen marketplaces. No eBay account, API key or other credential is required.