Amazon scraper API
An Amazon scraper API that turns a keyword into product rows: ASIN, title, brand, current and list price, star rating, review count, sponsored flag, image and a clean /dp/ URL — across 22 marketplaces, billed per delivered product.
$0.001 per delivered product · $2 free every month · Failed runs never billed
$ curl $QD/amazon_search/run \
-H "Authorization: Bearer $QD_API_KEY" \
-d '{"query": "running shoes", "country": "us", "max_results": 40}'
{ "status": "done", "count": 40,
"results": [
{
"asin": "…",
"title": "…",
"brand": "…",
"price": "…" } ],
"cost": 0.04 }
# 40 products × $0.001 · nothing delivered, nothing charged
What an Amazon scraper API does
Amazon publishes the search page server-side, so the data does not need a browser — it needs an exit Amazon has not decided to challenge. A share of requests comes back as a bot-check interstitial that answers HTTP 200 with an empty shell, which is precisely how naive scrapers end up storing nothing and thinking they succeeded.
This collector treats that as the normal case: it checks that the results container is actually present, retries on a fresh residential exit when it is not, and only then parses. Pages are walked up to the depth you ask for, ASINs are de-duplicated across them, and prices are returned both as shown and as numbers.
What one product looks like
Every delivered product carries these fields. Nullable means the source did not publish it — the field stays empty instead of being guessed.
| Field | Type | What it holds |
|---|---|---|
rank | integer | 1-based position across pages. |
page | integer | Search page the row came from. |
asin | string | Amazon product id. |
title | string · nullable | Product title. |
brand | string · nullable | Brand line when the layout shows one. |
price | string · nullable | Current price as shown. |
price_value | number · nullable | Numeric current price. |
list_price | string · nullable | Struck-through list price when discounted. |
rating | number · nullable | Star rating (1–5). |
reviews | integer · nullable | Review count (1.4K → 1400). |
sponsored | boolean | True for paid placements. |
image | string · nullable | Thumbnail URL. |
url | string | Clean product URL (https://host/dp/ASIN). |
delivery | string · nullable | Delivery promise snippet. |
Inputs
The whole request. Anything you leave out falls back to the default shown in the catalog.
| Input | Type | Required | What it does |
|---|---|---|---|
query | string | yes | What to search on Amazon, e.g. "running shoes". |
country | string | no | ISO 3166-1 alpha-2 code — picks the local site AND the proxy exit (default us). |
max_results | integer | no | How many products to deliver at most (1–200). You pay only for delivered products. |
Pricing
Amazon scraper API pricing
$0.001 per delivered product. A run that delivers nothing costs nothing: blocked pages, challenges and retries are on us, and the $2 monthly allowance covers about 2,000 products before you spend anything.
Pay as you go
- $2 free credit / month
- 60 requests / min
- List unit prices
Starter
- $15 free credit / month
- 300 requests / min
- 10% off unit prices
Growth
- $50 free credit / month
- 600 requests / min
- 20% off unit prices
Scale
- $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/.
curl -X POST https://api.quanticdata.io/v1/scraper/collectors/amazon_search/run \
-H "Authorization: Bearer $QD_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query":"running shoes","country":"us","max_results":40}'
What people build with the Amazon scraper API
Three shapes of work this endpoint was designed around.
Price monitoring
Track your own and competitor listings by keyword, with list price and current price side by side.
Assortment research
See who owns the first page for a category in a given marketplace, and how much of it is sponsored.
Catalogue seeding
Collect ASINs for a niche and feed them to the Amazon product collector for full detail.
Amazon scraper API versus rolling your own
The differences that actually cost time when you build this in-house.
| DIY scraper | This collector | |
|---|---|---|
| Bot check | Returns an empty page as a success | Detected and retried on a fresh exit |
| Marketplaces | One domain hardcoded | 22 marketplaces from one country field |
| Sponsored rows | Mixed in silently | Flagged on every row |
Why the affiliate API is not a data source
Amazon's Product Advertising API is gated on an Associates account in good standing, and throughput is metered against qualifying sales. It is an affiliate tool wearing an API's clothes: a research team, a brand protecting its listings and anyone building a dataset all fail the eligibility test before they reach the rate limits.
It also answers the wrong question. PA-API describes items you already name. A dataset about a category needs to know what a shopper searching that category is shown — in what order, with which sponsored placements interleaved, in which country. That is a property of the results page, and it is what makes a share-of-search series meaningful.
Limits, retries and the legal bit
Up to 200 products per run, pagination handled internally. Blocked pages and bot-check interstitials are retried on fresh exits and never billed, so the row count you receive is the row count you pay for. 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. Amazon's terms restrict automated access, the analysis differs by country, and what you do with the data afterwards carries its own rules. None of this is legal advice — get some for your actual use case.
Which Amazon marketplaces are supported?
Twenty-two, selected by the country field: US, CA, MX, BR, UK, IE, DE, FR, IT, ES, NL, SE, PL, BE, JP, IN, AU, SG, AE, SA, TR and amazon.com.be. The same country also picks the proxy exit.
Can I get Amazon reviews?
Not beyond what the search and product pages publish. Amazon puts review pages behind a login after the first screen, and this API does not log into anyone's account. Rating and review count are on every product row.
Do I pay for blocked pages?
No. Billing is per delivered row: if the interstitial wins every retry, the run reports the failure and charges nothing.
Is there a free Amazon scraper API?
Every account gets $2 of credit every month with no card, which is about 2,000 delivered products 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 200 products — the maximum for this collector — costs $0.2 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.
Can I feed this straight into a dataset?
Yes — rows are flat and typed, with a numeric price alongside the display string, so a run drops into a warehouse table or a CSV without a cleaning pass. The sponsored flag is worth keeping as a column rather than filtering at collection: it lets the same dataset answer organic and paid questions.
How do I go from search to full product detail?
Chain it. Collect ASINs cheaply here, then push the ones worth watching through the Amazon product API collector. Discovery wide, enrichment narrow — the pattern that keeps a catalogue pipeline affordable.
Run the Amazon scraper API now
$2 of free credit every month, no card. Your key returns its own prices from GET /v1/scraper/collectors.