Documentation Blog Free tools [email protected]Log in

eBay scraper API

An eBay scraper API that returns listings for a keyword: item id, title, price and struck-through list price, condition, buying format, shipping and returns lines, seller location, sponsored flag and image — across 15 marketplaces.

$0.001 per delivered listing · $2 free every month · Failed runs never billed

POST /v1/scraper/collectors/ebay_search/run
$ curl $QD/ebay_search/run \
    -H "Authorization: Bearer $QD_API_KEY" \
    -d '{"query": "running shoes", "country": "us", "max_results": 50}'
{ "status": "done", "count": 50,
  "results": [
    {
      "item_id": "…",
      "title": "…",
      "price": "…",
      "price_value": … } ],
  "cost": 0.05 }
# 50 listings × $0.001 · nothing delivered, nothing charged
$0.001 / listing2,000 listings on the free $2 every month
Semantic inputquery, condition, buy_it_now_only — no URL lists
Up to 250listings per run, pagination handled for you
No browserread over HTTP/TLS — cheaper and faster than rendering

What an eBay scraper API does

eBay rebuilt its result cards around generic text spans, which broke every scraper that relied on the old s-item classes. This collector reconstructs a row from the card's text roles instead, so it survives the class churn that takes selector-based scrapers offline.

Two details matter and both are handled: the sponsored label is written reversed in the DOM specifically to defeat naive parsers, and the condition chip is not always first — refurbished listings put a seller blurb ahead of it, so the condition is picked by vocabulary rather than by position.

What one listing looks like

Every delivered listing carries these fields. Nullable means the source did not publish it — the field stays empty instead of being guessed.

FieldTypeWhat it holds
rankinteger1-based position across pages.
pageintegerSearch page the row came from.
item_idstringeBay item id.
titlestringListing title.
pricestring · nullablePrice as shown.
price_valuenumber · nullableNumeric price.
list_pricestring · nullableStruck-through price when discounted.
conditionstring · nullableCondition chip (Brand New, Pre-Owned…).
attributesstring[]Variant/brand chips shown under the title.
formatstring · nullableBuying format (Buy It Now, bids…).
shippingstring · nullableShipping/delivery line.
locationstring · nullableSeller location line.
returnsstring · nullableReturns line when shown.
sponsoredbooleanTrue for paid placements.
imagestring · nullableThumbnail URL.
urlstring · nullableListing URL.

Inputs

The whole request. Anything you leave out falls back to the default shown in the catalog.

InputTypeRequiredWhat it does
querystringyesWhat to search on eBay, e.g. "running shoes".
conditionstringnoRestrict to new or used listings. One of: any, new, used.
buy_it_now_onlybooleannoExclude auctions.
countrystringnoISO 3166-1 alpha-2 code — picks the local site AND the proxy exit (default us).
max_resultsintegernoHow many listings to deliver at most (1–250). You pay only for delivered listings.

Pricing

eBay scraper API pricing

$0.001 per delivered listing. A run that delivers nothing costs nothing: blocked pages, challenges and retries are on us, and the $2 monthly allowance covers about 2,000 listings before you spend anything.

$0.001per delivered listing$1 per 1,000 delivered listings
2,000 listingson the free allowance$2 every month, no card
Zero rowszero chargeblocks, captchas and retries are on us
−30%on volume tiersthe catalog returns your key's price

Pay as you go

$0/mo
  • $2 free credit / month
  • 60 requests / min
  • List unit prices

Starter

$19/mo
  • $15 free credit / month
  • 300 requests / min
  • 10% off unit prices

Scale

$299/mo
  • $250 free credit / month
  • 1,200 requests / min
  • 30% off unit prices

Same wallet, same key and same $2 monthly allowance as every other Data API. Prices are launch pricing read live from the billing config — GET /v1/scraper/collectors returns the price your key actually pays.

Integration

One POST, typed rows

Base URL https://api.quanticdata.io/v1, Bearer auth, the same key as every other Data API. Endpoint: POST /v1/scraper/collectors/ebay_search/run.

curl -X POST https://api.quanticdata.io/v1/scraper/collectors/ebay_search/run \
  -H "Authorization: Bearer $QD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query":"running shoes","country":"us","max_results":50}'

What people build with the eBay scraper API

Three shapes of work this endpoint was designed around.

Resale price research

Compare asking prices by condition for the same model across a marketplace.

Auction versus fixed price

Split the market by buying format before deciding how to list.

Grey-market monitoring

Watch which sellers list your product, from which country, at what price.

eBay scraper API versus rolling your own

The differences that actually cost time when you build this in-house.

DIY scraperThis collector
Card markupBreaks with every class renameRebuilt from text roles
Sponsored detectionMissed (the label is reversed in the DOM)Detected
ConditionFirst chip, often the seller's blurbMatched against eBay's condition vocabulary

The index versus the page

eBay's Browse and Finding APIs are real and well documented, and reaching them means registering an application, completing developer onboarding and handling OAuth token refresh. For a team that wants a comparable price series across five marketplaces this quarter, that is a lot of process before the first row.

They also answer from eBay's index with eBay's ranking, while a dataset about the market usually needs the result page as served — including promoted placements and the order buyers actually saw. For comparability the fields that matter are format and shipping: an auction bid mid-flight and a fixed price are not the same measurement, and a cheap item with expensive postage is not cheap.

Limits, filters and the legal bit

Up to 250 listings per run — deep enough that long-tail supply on page four is reachable. The condition and buy_it_now_only filters apply at the source, so narrowing a sweep reduces what you are billed rather than just what you keep. Throughput is your plan's rate limit rather than anything about the collector: 60 requests/minute on pay-as-you-go, up to 1,200 on the top tier.

Collecting publicly visible data is generally lawful in most jurisdictions, and courts have repeatedly declined to treat reading a public page as unauthorised access. eBay's terms restrict automated access, and seller usernames and locations can be personal data depending on context. None of this is legal advice — get some for your actual use case.

FAQ

Questions we get about the eBay scraper API.

Something else? Ask us →

Can I filter to new or used only?

Yes. condition accepts new or used and maps to eBay's own filter ids, and buy_it_now_only drops auctions.

Which marketplaces are supported?

Fifteen, chosen with country: US, UK, IE, DE, FR, IT, ES, NL, BE, AT, CH, PL, CA, AU.

Do you return the seller name?

The result card publishes location, format, shipping and returns, not a seller handle. Where eBay shows a store name in the card it lands in the attribute chips.

Is there a free eBay scraper API?

Every account gets $2 of credit every month with no card, which is about 2,000 delivered listings on this endpoint at $0.001 each. It renews monthly, and a run that delivers nothing is never billed — so a failed or blocked attempt does not eat the allowance.

How much does one run cost?

Multiply the rows you actually receive by $0.001. A run capped at 250 listings — the maximum for this collector — costs $0.25 if every row comes back, and less when the source has fewer. Volume tiers take up to 30% off, and GET /v1/scraper/collectors returns the price your key actually pays.

Why keep the buying format as a column?

Because mixing auctions and fixed-price listings produces a price series that moves for reasons unrelated to the market. Keeping format lets one dataset answer both questions instead of quietly averaging them into a third that means nothing.

Do the filters save money?

Yes — they are applied by eBay before results are collected, so a used-only or Buy-It-Now-only sweep collects and bills fewer rows rather than returning everything for you to discard.

Run the eBay scraper API now

$2 of free credit every month, no card. Your key returns its own prices from GET /v1/scraper/collectors.

Get my free API key
Get my free API key