Amazon product API
An Amazon product API for a list of ASINs: title, brand, current and list price, rating, review count, availability, delivery promise, seller, image, breadcrumb categories and feature bullets. Pass ASINs or /dp/ URLs and get one row per product.
$0.003 per delivered product · $2 free every month · Failed runs never billed
$ curl $QD/amazon_product/run \
-H "Authorization: Bearer $QD_API_KEY" \
-d '{"asins": ["B0DPHTLDYK", "B0DT1KPWHP"], "country": "us", "max_results": 10}'
{ "status": "done", "count": 10,
"results": [
{
"asin": "…",
"url": "…",
"title": "…",
"brand": "…" } ],
"cost": 0.03 }
# 10 products × $0.003 · nothing delivered, nothing charged
What an Amazon product API does
A product page is where the commercial truth lives: whether the item is actually in stock, what the buy box says today, which category tree Amazon files it under. This collector fetches one page per ASIN through the same TLS tier as the search collector, with the same interstitial detection and retry.
Amazon runs several detail layouts. The fashion layout, for instance, has no byline, no feature bullets and no merchant block at all — so those fields come back null rather than being invented from a neighbouring element. ASINs that never return a product page are listed under failed: never billed, never turned into an empty row.
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 |
|---|---|---|
asin | string | Amazon product id. |
url | string | Clean product URL. |
title | string | Product title. |
brand | string · nullable | Brand when the layout exposes it. |
price | string · nullable | Current price as shown. |
price_value | number · nullable | Numeric current price. |
list_price | string · nullable | List price when discounted. |
rating | number · nullable | Star rating (1–5). |
reviews | integer · nullable | Review count. |
availability | string · nullable | Stock line ("In Stock"…). |
delivery | string · nullable | Delivery promise. |
seller | string · nullable | Seller/merchant when shown. |
image | string · nullable | Main image URL. |
categories | string[] | Breadcrumb trail. |
features | string[] | Feature bullets (empty on layouts without them). |
Inputs
The whole request. Anything you leave out falls back to the default shown in the catalog.
| Input | Type | Required | What it does |
|---|---|---|---|
asins | array | yes | Amazon product ids or /dp/ URLs (one per line). |
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–50). You pay only for delivered products. |
Pricing
Amazon product API pricing
$0.003 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 666 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_product/run \
-H "Authorization: Bearer $QD_API_KEY" \
-H "Content-Type: application/json" \
-d '{"asins":["B0DPHTLDYK","B0DT1KPWHP"],"country":"us","max_results":10}'
What people build with the Amazon product API
Three shapes of work this endpoint was designed around.
Buy-box and stock monitoring
Re-run a list of ASINs on a schedule and record price, availability and delivery promise over time.
Competitor teardown
Pull the full detail for a competitor's catalogue in one call per product.
Catalogue enrichment
Fill your own PIM with Amazon's category path, rating and review count.
Amazon product API versus rolling your own
The differences that actually cost time when you build this in-house.
| DIY scraper | This collector | |
|---|---|---|
| Input | A URL you must build correctly | ASIN, bare code or any /dp/ URL |
| Missing fields | Empty strings that look like data | Explicit nulls when the layout lacks them |
| Failed lookups | Silently dropped | Returned under failed, never billed |
Catalogue attributes versus what the page says
The Product Advertising API returns Amazon's catalogue view of an item to an approved affiliate. This returns the detail page as rendered: the availability line, the delivery promise, the seller currently winning the listing, the struck-through price. Those are per-visitor, per-country rendering decisions, and they are what most price and availability work is actually measuring.
For a pipeline, the useful property is that failures are separated rather than smoothed. An ASIN that never resolves lands in failed instead of arriving as a row of nulls that quietly drags an average price down three weeks later.
Limits, failure handling and the legal bit
Up to 50 ASINs per run; larger id lists are simply more runs, and because runs are independent they parallelise rather than queue. Unresolvable ASINs return under failed and are never billed. 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 and the analysis differs by country. None of this is legal advice — get some for your actual use case.
What do I pass — ASIN or URL?
Either. A bare ASIN, a lowercase one, or a full product URL: the collector extracts the code from /dp/, /gp/product/ and /gp/aw/d/ links and normalizes it.
Why is brand sometimes null?
Because that layout does not publish it. Amazon serves different detail templates and the fashion one has no byline block; rather than scrape a nearby element that happens to look like a brand, the field stays null.
How many ASINs per run?
Up to 50, fetched three at a time. Runs of ten or fewer return synchronously; larger ones return a run id you poll.
Is there a free Amazon product API?
Every account gets $2 of credit every month with no card, which is about 666 delivered products on this endpoint at $0.003 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.003. A run capped at 50 products — the maximum for this collector — costs $0.15 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.
What happens to ASINs that no longer exist?
They come back under failed rather than as rows of nulls, and they are not billed. That separation matters in a pipeline: a delisted product is a finding, and it should not look identical to a fetch that broke.
Can I pass product URLs instead of ASINs?
Yes. The array accepts bare ASINs or full /dp/ URLs and normalises both, so whatever form your catalogue already stores can go in without a cleanup step.
Run the Amazon product API now
$2 of free credit every month, no card. Your key returns its own prices from GET /v1/scraper/collectors.