eBay Scraper - Products, Sellers, Prices & Monitoring
Pricing
from $1.20 / 1,000 listing results
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
Maintained by CommunityActor 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.
| Field | Example |
|---|---|
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." |
detailIncomplete | true (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" |
quantityAvailable | 10 |
quantitySold | 1560 |
paymentMethods | ["PayPal", "Visa"] |
returnPolicy | "Returns: Seller does not accept returns" |
searchQuery | "laptop" |
pageNumber | 1 |
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
| Parameter | Type | Default | Description |
|---|---|---|---|
mode | string | search | search or url. |
queries | array | ["laptop"] | Search keywords. Search mode only. |
sellerUsernames | array | empty | Seller usernames whose listing pages are walked. Search mode only. |
marketplace | string | com | Which of the sixteen storefronts to search. Search mode only; a pasted link carries its own. |
categoryId | string | empty | Numeric category id from the marketplace's own category links. |
condition | array | empty | New, Open box, the four refurbished grades, Seller refurbished, Used, For parts. Multi-select. |
buyingFormat | string | any | Any, Buy It Now, Auction, Accepts offers. |
minPrice / maxPrice | integer | empty | Price band in the marketplace's own currency. |
freeShippingOnly | boolean | false | Keep only listings flagged as free delivery. |
freeReturnsOnly | boolean | false | Keep only listings offering free returns. |
returnsAcceptedOnly | boolean | false | Keep only listings that accept returns at all. |
itemLocation | string | default | Marketplace default, marketplace country only, same continent, or worldwide. |
sortBy | string | best_match | Best match, ending soonest, newly listed, price and delivery lowest or highest. |
urls | array | two examples | Result, seller, browse category and item links. URL mode only. |
minSellerFeedbackPercent | integer | empty | Applies in both modes. Sellers with no score yet are kept. |
fetchDetails | boolean | false | Read 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. |
maxItems | integer | 20 | The run's cap. 0 means unlimited. |
maxPages | integer | 0 | Result pages per keyword, seller or link. 0 means no limit. |
resumeFromRunId | string | empty | Continue one interrupted run from its run or dataset id. |
incrementalMode | boolean | false | Return only what changed since the last run of the same search. |
stateKey | string | empty | Name a monitoring campaign, or deliberately share state. |
emitUnchanged | boolean | false | Also return, and bill, UNCHANGED rows. |
emitExpired | boolean | false | Also return, and bill, EXPIRED rows. |
proxy | object | Apify Proxy on | Connection configuration. |
mcpConnectors | array | empty | Optional MCP connectors to also write results into. |
notionParentPageUrl | string | empty | Notion parent page id or URL, Notion connector only. |
maxNotifyListings | integer | 50 | Cap 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.
mcpConnectorspicks one or more authorized connectors. Leave it empty and nothing happens: the export code never runs and the dataset is byte for byte identical.notionParentPageUrlis required for the Notion connector, which gets one page per listing, and is ignored by every other connector.maxNotifyListingscaps 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=1andLH_Complete=1filters 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.phredirects 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 inattributesregardless 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.
conditionIdis populated from English condition labels. On other storefrontsconditioncarries the marketplace's own wording andconditionIdmay benull.- Incremental mode deliberately ignores some fields.
timeLeft,attributes,scrapedAt,updatedAt,sourceUrl,pageNumberandsearchQuerynever appear inchangedFields: 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.