eBay Scraper — Official API: Search, Details & Prices
Pricing
Pay per event
eBay Scraper — Official API: Search, Details & Prices
Search eBay listings, fetch detailed item info and monitor new arrivals via the official eBay Buy Browse API. No browser, no proxy, no login — just fast, reliable structured data.
Pricing
Pay per event
Rating
0.0
(0)
Developer
qingwa
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Security
Limited permissionsShare
eBay Scraper — Official API: Search, Prices, Details & Monitoring
Extract structured eBay listing and item data through the official eBay Buy Browse API — no browser automation, no proxy, no login cookies, no risk of getting blocked.
Why the official API?
- Stable — the same API eBay's own apps use; no HTML parsing, no layout-change breakage.
- Never blocked — you are an authorised API consumer. No CAPTCHAs, no IP bans.
- No proxy needed — the API is open to any server; you pay nothing for traffic.
- No login / cookies — just an OAuth 2.0 client-credentials token, refreshed automatically.
- Clean structured data — prices, conditions, sellers, shipping, specs, images and more, out of the box.
Two modes
1. Search mode
Search eBay listings by one or more keyword queries, optionally narrowed by category IDs, GTIN (UPC) or ePID, price range, condition, buying format, seller, free shipping and returns. Results are paginated (200 items per request, up to the eBay 10,000-item query window) and deduplicated by itemId across the whole run.
2. Details mode
Fetch the full item record for specific items: HTML description (plus a clean plain-text version), all item specifics, brand / GTIN / MPN / ePID, marketing price with discount, estimated sold & available quantity, bid count, return terms and delivery estimates. Accepts v1 item IDs, numeric legacy IDs and any eBay-domain item URL.
Monitoring mode (newItemsOnly)
Combine with either mode to output only item IDs never seen before. The seen set is persisted across runs in a Key-Value Store, so the actor doubles as a new-arrival monitor — ideal for staying on top of fresh listings in a niche.
Input
| Field | Type | Description |
|---|---|---|
mode | select | search or details |
queries | stringList | Keywords to search (each executed separately) |
categoryIds | stringList | Narrow to specific eBay category IDs |
gtin | textfield | Search by UPC / GTIN |
epid | textfield | Search by eBay Product ID |
sellers | stringList | Only items from these sellers |
itemUrls | stringList | Item URLs (details mode) |
itemIds | stringList | Item IDs (details mode) |
marketplace | select | 16 eBay marketplaces (US, UK, DE, FR, IT, ES, AT, BE, NL, IE, CH, PL, CA, AU, HK, SG) |
minPrice / maxPrice | number | Price range in the marketplace currency |
conditions | multi-select | NEW / USED / UNSPECIFIED |
buyingOptions | multi-select | FIXED_PRICE / AUCTION / BEST_OFFER |
freeShippingOnly | checkbox | Only items with free shipping |
returnsAcceptedOnly | checkbox | Only items accepting returns |
searchInDescription | checkbox | Match query against item description too |
sort | select | bestMatch / priceAsc / priceDesc / newlyListed |
maxItems | number | Total item cap for the run |
includeDetails | checkbox | Also fetch full detail for each search result |
newItemsOnly | checkbox | Monitoring — only output never-seen items |
shipToCountry / shipToZip | textfield | Context for calculated-shipping cost & delivery estimates |
ebayAppId / ebayCertId | textfield | Your eBay API credentials (or use env vars) |
requestConcurrency | number | Parallel detail requests (default 5) |
Output
Each dataset record is a flat dictionary with recordType = listing or detail.
Listing records include: itemId, legacyItemId, title, price{value,currency}, priceText, condition, conditionId, buyingOptions, itemWebUrl, imageUrl, seller{username, feedbackScore, feedbackPercentage}, itemLocation, categories, shippingOptions, itemCreationDate, itemEndDate, marketplace, scrapedAt.
Detail records additionally include: description (raw HTML), descriptionText (cleaned, capped at 20,000 chars), additionalImages, itemSpecifics, brand, gtin, mpn, epid, estimatedSoldQuantity, estimatedAvailableQuantity, bidCount, currentBidPrice, returnTerms, marketingPrice.
Pricing
This actor uses pay-per-event pricing:
| Event | Price |
|---|---|
| Actor start | $0.00005 |
| Listing record | $0.0025 |
| Detail record | $0.004 |
The first 20 output records of every run are free. Billing is batched — you are never charged per-row overhead.
API quota & your own keys
The eBay Browse API allows 5,000 calls per day per keyset, shared between search and detail calls. The actor tracks and reports its own call count in the run log.
You can use your own eBay Developer credentials via the ebayAppId / ebayCertId inputs (or the EBAY_APP_ID / EBAY_CERT_ID environment variables) to get your own independent 5,000/day quota.
FAQ
Does this actor give me sold/completed-item history?
No. eBay's public APIs do not expose completed-sale history. The estimatedSoldQuantity field is an eBay-provided demand estimate and is the closest available signal.
Do I need a proxy or browser? No. This is a pure API client — one HTTP request per call, no headless browser, no proxy.
How many items can I get in one run?
Up to 10,000 per search query (the eBay query window). Use maxItems to cap the run.
What happens if one item fails? It is logged and skipped; the run continues. Failed items are counted in the run summary.
Example input
{"mode": "search","queries": ["wireless headphones", "bluetooth speaker"],"marketplace": "EBAY_US","conditions": ["NEW"],"buyingOptions": ["FIXED_PRICE"],"freeShippingOnly": true,"sort": "newlyListed","maxItems": 200,"includeDetails": true,"requestConcurrency": 5}
Example details input
{"mode": "details","itemUrls": ["https://www.ebay.com/itm/386123456789","https://www.ebay.co.uk/itm/sony-headphones/2505883821?var=1"],"itemIds": ["v1|123456789012|0"],"marketplace": "EBAY_US","shipToCountry": "US","shipToZip": "10001"}