Amazon Scraper API

Docs

ChatGPT Claude

Getting started

Make your first scrape in under 2 minutes. Get an API key, fire one cURL request, parse the response.

Getting started

You’ll have a working Amazon scrape in under 2 minutes.

1. Create an API key

  1. Sign in at app.amazonscraperapi.com.
  2. Open API keys in the left sidebar.
  3. Click Create key. Name it (e.g. local-dev). Copy the value - it’s only shown once.

Your key looks like asa_live_xxxxxxxxxxxxxxxxxxxxxxxx. Treat it like a password.

2. First request - cURL

curl "https://api.amazonscraperapi.com/api/v1/amazon/product?query=B09HN3Q81F&domain=com" \
  -H "Authorization: Bearer asa_live_YOUR_KEY"

You get back JSON:

{
  "asin": "B09HN3Q81F",
  "title": "LEGEND COOKWARE 5-Ply Stainless Steel Cookware Set",
  "price": 299.99,
  "currency": "USD",
  "rating": 4.7,
  "reviews_count": 2481,
  "images": ["https://m.media-amazon.com/images/I/71..."],
  "bullet_points": "5-PLY STAINLESS STEEL ... \n ...",
  "category": [...],
  "buybox": [...]
}

Average response time: ~2.6 s median, ~6 s p95.

3. Same thing in Python

import requests

r = requests.get(
    "https://api.amazonscraperapi.com/api/v1/amazon/product",
    headers={"Authorization": "Bearer asa_live_YOUR_KEY"},
    params={"query": "B09HN3Q81F", "domain": "com"},
)
r.raise_for_status()
product = r.json()
print(product["title"], "-", product["price"], product["currency"])

4. Same thing in Node.js

const res = await fetch(
  "https://api.amazonscraperapi.com/api/v1/amazon/product?query=B09HN3Q81F&domain=com",
  { headers: { Authorization: "Bearer asa_live_YOUR_KEY" } }
);
const product = await res.json();
console.log(product.title, "-", product.price, product.currency);

What costs a credit?

Only successful (HTTP 2xx) responses. Errors, Amazon challenge pages, and timeouts never touch your balance. See pricing and the billing FAQ for the full policy.

Common errors

HTTPBody containsWhat it meansWhat to do
400invalid_paramsASIN or domain malformedCheck your query - ASIN is 10 alphanumeric chars, domain is one of the 20 supported TLDs
401unauthorizedAPI key missing / wrongVerify the Authorization: Bearer … header
429rate_limitedToo many requests from your keyBack off; default rate is generous but not unlimited
501not_implementedYou passed a param that’s on the roadmap but not live (e.g. render_js=true)Remove the param; we won’t charge for 501
502target_unreachable OR extraction_failedAmazon blocked us on all retries, or served a page we couldn’t parseRetry in ~30 s; usually transient