# Amazon scraper API — $0.001 per product

> Amazon scraper API: Amazon search results for a keyword — ASIN, price, rating, reviews. $0.001 per delivered product, nothing delivered means nothing charged.

[Home](https://quanticdata.io/)/[Collectors](https://quanticdata.io/collectors/)/*Amazon scraper API*

# 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.

[Get my free API key](https://app.quanticdata.io/register) [See the request](/collectors/amazon-scraper-api/#integration)

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

POST /v1/scraper/collectors/amazon_search/run

```
$ 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
```

**$0.001 / product**2,000 products on the free $2 every month

**Semantic input**query, country, max_results — no URL lists

**Up to 200**products per run, pagination handled for you

**No browser**read over HTTP/TLS — cheaper and faster than rendering

On this page: [What it is](/collectors/amazon-scraper-api/#what) [Output fields](/collectors/amazon-scraper-api/#output) [Inputs](/collectors/amazon-scraper-api/#input) [Pricing](/collectors/amazon-scraper-api/#pricing) [Integration](/collectors/amazon-scraper-api/#integration) [Use cases](/collectors/amazon-scraper-api/#use-cases) [Versus the alternatives](/collectors/amazon-scraper-api/#compare) [FAQ](/collectors/amazon-scraper-api/#faq)

## 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.

Input is meaning, not a URL *query* *country* *max_results*

## 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.

**$0.001**per delivered product*$1 per 1,000 delivered products*

**2,000 products**on the free allowance*$2 every month, no card*

**Zero rows**zero charge*blocks, captchas and retries are on us*

**−30%**on volume tiers*the 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

Most popular

### Growth

$79/mo

- $50 free credit / month

- 600 requests / min

- 20% 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](https://quanticdata.io/web-data-api-for-ai/). 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/amazon_search/run`.

```
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}'
```

```
import requests

r = requests.post(
    "https://api.quanticdata.io/v1/scraper/collectors/amazon_search/run",
    headers={"Authorization": f"Bearer {QD_API_KEY}"},
    json={
        "query": "running shoes",
        "country": "us",
        "max_results": 40
    },
    timeout=120,
)
for row in r.json()["payload"]["results"]:
    print(row)
```

```
const res = await fetch(
  "https://api.quanticdata.io/v1/scraper/collectors/amazon_search/run",
  {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.QD_API_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({"query":"running shoes","country":"us","max_results":40}),
  },
);
const { payload } = await res.json();
console.table(payload.results);
```

```
claude mcp add quantumproxies \
  -e QUANTUMPROXIES_API_KEY=qd_live_your_key_here \
  -- npx -y quantumproxies-mcp

# then, in the chat:
> run the amazon_search collector with query="running shoes" and country="us"
```

## 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.

## FAQ

Questions we get about the Amazon scraper API.

[Something else? Ask us →](mailto:hello@quanticdata.io)

### 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](https://quanticdata.io/collectors/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`.

[Get my free API key](https://app.quanticdata.io/register)

Related: [All 32 collectors](https://quanticdata.io/collectors/) [Amazon product API](https://quanticdata.io/collectors/amazon-product-api/) [eBay scraper API](https://quanticdata.io/collectors/ebay-scraper-api/) [AliExpress scraper API](https://quanticdata.io/collectors/aliexpress-scraper-api/) [Documentation](https://quanticdata.io/docs/)

---

Source: https://quanticdata.io/collectors/amazon-scraper-api/ · Site index for AI: https://quanticdata.io/llms.txt
