Documentation Python quickstart Blog Free tools Enterprise solutions hello@quanticdata.ioLog in
All collectors

Amazon product API

E-commerce · v1.1.0 · amazon_product

$0.008 / product

$8.00 / 1K · pay per delivered product

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.008 per delivered product · $2 free every month · Failed runs never billed

What it does

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.

Inputs

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

InputTypeRequiredWhat it does
asinsarrayyesAmazon product ids or /dp/ URLs (one per line).
countrystringnoISO 3166-1 alpha-2 code — picks the local site AND the proxy exit (default us).
max_resultsintegernoHow many products to deliver at most (1–50). You pay only for delivered products.

Outputs — 37 fields, one row per product

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.

FieldTypeWhat it holds
asinstringAmazon product id.
urlstringClean product URL.
titlestringProduct title.
brandstring · nullableBrand when the layout exposes it.
pricestring · nullableCurrent price as shown.
price_valuenumber · nullableNumeric current price.
list_pricestring · nullableList price when discounted.
ratingnumber · nullableStar rating (1–5).
reviewsinteger · nullableReview count.
availabilitystring · nullableStock line ("In Stock"…).
deliverystring · nullableDelivery promise.
sellerstring · nullableSeller/merchant when shown.
imagestring · nullableMain image URL.
categoriesstring[]Breadcrumb trail.
featuresstring[]Feature bullets (empty on layouts without them).
currencystring · nullableISO currency of the price.
discount_percentinteger · nullableDiscount off the list price as shown (30 for -30%).
couponstring · nullableCoupon text when the page offers one.
promotionstring · nullablePromotion line under the price when shown.
deal_badgestring · nullableDeal badge ("Limited time deal").
rating_histogramobject · nullableShare of ratings per star, in percent: { 5_star, 4_star, 3_star, 2_star, 1_star }.
bought_past_monthstring · nullableRecent sales line as shown ("10K+ bought in past month").
in_stockboolean · nullableFalse when the stock line says unavailable.
delivery_datestring · nullableStandard delivery date as shown ("Friday, October 9").
delivery_pricestring · nullableStandard delivery price as shown ("FREE", "$6.99").
seller_idstring · nullableMerchant id of the buy-box seller.
ships_fromstring · nullableWho ships the buy-box offer.
other_offers_countinteger · nullableNumber of other new/used offers.
other_offers_fromstring · nullableLowest price among the other offers.
returnsstring · nullableReturns line of the buy box.
best_sellers_rankobject[]Best Sellers Rank entries: { rank, category }.
imagesstring[]Gallery images, largest rendition.
parent_asinstring · nullableParent ASIN of the variation family.
variant_dimensionsstring[]Variation dimensions ("Color", "Size").
variantsobject[]Every variant of the family: { asin, <dimension>: value }.
specsobjectSpecification table (overview + product information).
descriptionstring · nullableProduct description text when the page has one.

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_product/run.

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

Example response

POST /v1/scraper/collectors/amazon_product/run
$ 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.08 }
# 10 products × $0.008 · nothing delivered, nothing charged

Try it

Amazon product, running now

Change the input and run it against the live collector — nothing to install, no sign-up.

Run it from your own code, on your own inputs

Same collector, same rows — $2 of free API credit every month, no card.

Get my free API key
Amazon product API: from asins and country, QuanticData reads the Amazon product page and returns one row per product with title, asin and brand, at $0.008 per delivered product.
You send asins and country; the run goes out through a residential exit and comes back as products with asin, title and brand — 37 fields on every row — and you are billed $0.008 for each product actually delivered, nothing for a run that delivers none.
$0.008 / product250 products on the free $2 every month
Semantic inputasins, country, max_results — no URL lists
Up to 50products per run, pagination handled for you
No browserread over HTTP/TLS — cheaper and faster than rendering

Pricing

Amazon product API pricing

$0.008 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 250 products before you spend anything.

$0.008per delivered product$8 per 1,000 delivered products
250 productson 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

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.

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 scraperThis collector
InputA URL you must build correctlyASIN, bare code or any /dp/ URL
Missing fieldsEmpty strings that look like dataExplicit nulls when the layout lacks them
Failed lookupsSilently droppedReturned under failed, never billed

What people search for

Live autocomplete demand around Amazon product, pulled with our own Keyword ideas collector.

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.

Amazon product API: the POST to the amazon_product collector, 10 products delivered and the bill, 10 × $0.008 = $0.08 in usage.cost_usd; zero products would cost $0.
The same call you would paste into a terminal: a Bearer key, asins and country in the body, and back the envelope every QuanticData endpoint returns — type, message, payload — where count is how many products arrived and usage.cost_usd is $0.08, which is 10 × $0.008. A run that delivers nothing costs nothing. The key is good for 60 req/min on the free tier.

Sources and standards

The platform documentation and standards this collector is built against — check any claim on this page against the primary source:

FAQ

Questions we get about the Amazon product API.

Something else? Ask us

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 250 delivered products on this endpoint at $0.008 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.008. A run capped at 50 products — the maximum for this collector — costs $0.4 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.

Run in dashboard
Illustration: three coloured zones of the page that is read (Amazon product page) turn into clean JSON with the fields title, asin and brand; 37 fields on every row.