Skip to content
Amazon

Amazon search

One page (~48) of Amazon search results.

POST/v1/amazon/search
1 credit

Over plain HTTP. Prices follow the local point-of-sale — a Canadian exit answers CAD — so price_text keeps the display string verbatim and currency carries the best-effort guess from its symbol. Sponsored rows come labelled in sponsored rather than dropped.

Request

POSThttps://api.scrapercompany.com/v1/amazon/search

Authenticate with your API key in the x-api-key header (see Authentication).

Body

JSON object. Unknown fields are rejected with 422.

  • qstringrequiredmin length 1, max length 300

    Search query.

  • pageintegerdefault 1min 1, max 20

    Result page.

  • sortstring | null

    Amazon's own sort values.

    One ofdate-desc-rankprice-asc-rankprice-desc-rankrelevanceblanksreview-rank

  • min_ratingnumber | nullmin 0, max 4.5

    Amazon's customer-rating filter (0..4.5).

Example request

curl -X POST "https://api.scrapercompany.com/v1/amazon/search" \
  -H "x-api-key: $SCRAPERCOMPANY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "q": "bathrobe"
  }'

Response

200 — One page of Amazon search results (prices in the local point-of-sale). Metered responses carry x-credits-charged and x-credits-remaining headers (see credit headers).

200 response
{
  "search_parameters": {
    "engine": "amazon_search",
    "q": "bathrobe"
  },
  "products": [
    {
      "asin": "B084PBWBJR",
      "title": "PAVILIA Premium Womens Plush Soft Robe, Fluffy Warm Fleece Sherpa Bathrobe",
      "price": 42.52,
      "price_text": "CAD 42.52",
      "currency": "CAD",
      "rating": 4.6,
      "ratings_count": 13206,
      "url": "https://www.amazon.com/dp/B084PBWBJR",
      "image": "https://m.media-amazon.com/images/I/61VOJmplqeL._AC_UL320_.jpg",
      "sponsored": false
    },
    {
      "asin": "B07FZSP1BR",
      "title": "Alexander Del Rossa Womens Robe, Long Fleece Bathrobe",
      "price": 55,
      "price_text": "CAD 55.00",
      "currency": "CAD",
      "rating": 4.7,
      "ratings_count": 8941,
      "url": "https://www.amazon.com/dp/B07FZSP1BR",
      "sponsored": true
    }
  ],
  "total": 2,
  "meta": {
    "source": "amazon_search",
    "wire_bytes": 110467,
    "elapsed_s": 1.212
  }
}

Errors

Errors return a JSON body with a detail field. Failed requests are not charged. See Errors for the full list and retry advice.

StatusMeaningRetry?
401Unauthorized

Missing or invalid API key.

{"detail":"missing or invalid API key"}
No, fix the request
402Payment Required

Not enough credits for this request. Only returned once credit enforcement is switched on; during the beta metering runs in shadow mode and never blocks.

{"detail":"insufficient credits: this request costs 5, 0 available. Credits renew 2026-11-01."}
No, fix the request
422Unprocessable Content

Request validation failed. detail is a list of problems for schema errors, or a string for semantic checks performed by the endpoint.

{"detail":[{"loc":["body","name"],"msg":"Field required","type":"missing"}]}
No, fix the request
429Too Many Requests

Too many requests: the key's requests-per-minute limit was exceeded, or (once credit enforcement is on) the plan's concurrent-request limit. No rate-limit or Retry-After headers are sent; back off and retry.

{"detail":"rate limit 60/min exceeded"}
Yes, with backoff
502Bad Gateway

The upstream source failed, blocked the request or returned an unusable answer. Safe to retry later; failed requests are not charged.

{"detail":"RuntimeError"}
Yes, with backoff
503Service Unavailable

Temporarily unavailable: a dependency of this endpoint is down, or the upstream source changed its contract. Retry later.

{"detail":"database unavailable: OperationalError"}
Yes, with backoff

Try it

  1. Export your key: export SCRAPERCOMPANY_API_KEY=sk_... (no key yet? request access).
  2. Copy the cURL example above and run it in a terminal.
  3. Or open the interactive playground on api.scrapercompany.com, paste your key and pick this endpoint.

Credits

1 credit per successful call. Failed, blocked and empty results are free. Credit metering is in beta and does not block requests yet.