Getting started

Amazon Data API quick start

Account to parsed JSON in three steps. No SDK, no build tooling, no config file.

Create an account

The free plan gives you 50 requests a month with no card. We generate your first API key during signup, so you land on the dashboard with something you can paste straight away.

Create free account

Send your key with the request

Either header works — pick whichever your HTTP client makes easiest.

Authentication
# preferred
x-api-key: ac_live_a1b2c3…

# equivalent
Authorization: Bearer ac_live_a1b2c3…

Call an endpoint

Here is a product search against the US marketplace with a New York delivery postcode.

curl -sS "https://amazoncrawler.com/v1/products/search?query=wireless+mouse&marketplace=US&zip=10001" \
  -H "x-api-key: YOUR_API_KEY"

What comes back

200 OK X-Cache: MISS
{
  "page": 1,
  "sort": null,
  "count": 20,
  "query": "wireless mouse",
  "results": [
    {
      "url": "https://www.amazon.com/dp/B07CMS5Q6P/ref=sr_1_1_sspa",
      "asin": "B07CMS5Q6P",
      "badge": "Best Seller",
      "image": "https://m.media-amazon.com/images/I/51sg9BLSMTL.jpg",
      "price": {
        "amount": 29.99,
        "display": "$29.99",
        "currency": "USD",
        "list_price": 49.99
      },
      "prime": false,
      "title": "Logitech G305 Lightspeed Wireless Gaming Mouse - Black | HERO sensor, 12,000 DPI, Six programmable buttons, 250-hour battery, On-board memory",
      "rating": 4.6,
      "delivery": "FREE delivery Mon, Aug 10 on $35 of items shipped by Amazon",
      "position": 4,
      "sponsored": true,
      "reviews_count": 39364,
      "bought_past_month": "10K+ bought in past month"
    },
    {
      "url": "https://www.amazon.com/dp/B005EJH6Z4/ref=sr_1_2_ffob_sspa",
      "asin": "B005EJH6Z4",
      "badge": null,
      "image": "https://m.media-amazon.com/images/I/61YQeAUIboL.jpg",
      "price": {
        "amount": 12.58,
        "display": "$12.58",
        "currency": "USD",
        "list_price": null
      },
      "prime": false,
      "title": "Amazon Basics 2.4 GHz Wireless Optical Computer Mouse with USB Nano Receiver",
      "rating": 4.5,
      "delivery": "FREE delivery Mon, Aug 10 on $35 of items shipped by Amazon",
      "position": 5,
      "sponsored": true,
      "reviews_count": 69507,
      "bought_past_month": "10K+ bought in past month"
    }
  ],
  "marketplace": "US",
  "has_next_page": true,
  "total_results": 42555
}

Check your budget without spending it

GET /v1/usage returns your current plan, credits used and reset date. It requires a key but costs nothing — safe to poll from a health check.

Free endpoints
# your quota state — no credits charged
curl "https://amazoncrawler.com/v1/usage" -H "x-api-key: $AC_KEY"

# machine-readable endpoint index — no key needed
curl "https://amazoncrawler.com/v1/"

Handle the two failures that actually happen

Almost every real-world error is one of these. Both are transient and both are safe to retry with backoff — neither is charged against your credits.

StatusMeaningWhat to do
429 Rate limit or monthly credits exhausted. Read Retry-After, sleep, retry. If it is the quota, upgrade or wait for the reset.
502 / 504 Amazon returned something unusable, or timed out. Retry with exponential backoff. Roughly 1 in 500 requests on busy surfaces.
retry.py
import time, requests

def fetch(path, params, tries=4):
    for attempt in range(tries):
        r = requests.get(f"https://amazoncrawler.com/v1{path}", params=params,
                         headers={"x-api-key": KEY}, timeout=30)
        if r.status_code < 400:
            return r.json()
        if r.status_code in (429, 502, 504):
            time.sleep(2 ** attempt)
            continue
        r.raise_for_status()  # 4xx: your request, not our infrastructure
    raise RuntimeError("exhausted retries")

Next