eBay Scraper — Official API: Search, Details & Prices avatar

eBay Scraper — Official API: Search, Details & Prices

Pricing

Pay per event

Go to Apify Store
eBay Scraper — Official API: Search, Details & Prices

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

qingwa

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Categories

Security

Limited permissions

Share

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

FieldTypeDescription
modeselectsearch or details
queriesstringListKeywords to search (each executed separately)
categoryIdsstringListNarrow to specific eBay category IDs
gtintextfieldSearch by UPC / GTIN
epidtextfieldSearch by eBay Product ID
sellersstringListOnly items from these sellers
itemUrlsstringListItem URLs (details mode)
itemIdsstringListItem IDs (details mode)
marketplaceselect16 eBay marketplaces (US, UK, DE, FR, IT, ES, AT, BE, NL, IE, CH, PL, CA, AU, HK, SG)
minPrice / maxPricenumberPrice range in the marketplace currency
conditionsmulti-selectNEW / USED / UNSPECIFIED
buyingOptionsmulti-selectFIXED_PRICE / AUCTION / BEST_OFFER
freeShippingOnlycheckboxOnly items with free shipping
returnsAcceptedOnlycheckboxOnly items accepting returns
searchInDescriptioncheckboxMatch query against item description too
sortselectbestMatch / priceAsc / priceDesc / newlyListed
maxItemsnumberTotal item cap for the run
includeDetailscheckboxAlso fetch full detail for each search result
newItemsOnlycheckboxMonitoring — only output never-seen items
shipToCountry / shipToZiptextfieldContext for calculated-shipping cost & delivery estimates
ebayAppId / ebayCertIdtextfieldYour eBay API credentials (or use env vars)
requestConcurrencynumberParallel 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:

EventPrice
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"
}