ScrapingBee Amazon scraper API extracts structured product, search, pricing, and review data from Amazon without you having to manage proxies, headless browsers, or anti-bot bypass. Built on the ScrapingBee Web Scraping API, it returns clean JSON from two dedicated endpoints: one for product detail pages (by ASIN), one for search results.
Sign up for 1,000 free credits · Read the docs · Landing page
- What is Amazon scraping?
- How it works
- Endpoints
- Quick start
- Code examples — product
- Code examples — search
- Product API parameters
- Search API parameters
- Supported Amazon domains
- Use cases
- Why ScrapingBee
- Pricing
- FAQ
Amazon scraping is the automated collection of public Amazon data: product details, prices, reviews, search rankings, seller information, and stock availability. An Amazon scraper API sends a request to Amazon on your behalf, renders the page, rotates proxies to avoid blocks, parses the result, and returns it as structured JSON. The alternative is writing your own scraper, which means maintaining proxy pools, handling CAPTCHAs, and rewriting parsers every time Amazon changes its DOM.
You send a GET request to one of two endpoints with your API key and a query parameter. For product pages, query is a 10-character ASIN. For search results, query is the search term. ScrapingBee fetches the page from the right Amazon domain, runs it through a headless browser if needed, rotates proxies, and returns parsed JSON with the fields you'd otherwise have to extract yourself.

| Endpoint | Purpose | Query format |
|---|---|---|
/api/v1/amazon/product |
Product detail page by ASIN | 10-character ASIN (e.g. B0DPDRNSXV) |
/api/v1/amazon/search |
Amazon search results | Search term (URL-encoded) |
Base URL: https://app.scrapingbee.com
Pull a product by ASIN:
curl "https://app.scrapingbee.com/api/v1/amazon/product?api_key=YOUR-API-KEY&query=B0DPDRNSXV"Pull search results:
curl "https://app.scrapingbee.com/api/v1/amazon/search?api_key=YOUR-API-KEY&query=iphone+16"Replace YOUR-API-KEY with the key from your dashboard. The first 1,000 credits are free.
Every snippet below is from the official ScrapingBee documentation.
import requests
response = requests.get(
url='https://app.scrapingbee.com/api/v1/amazon/product',
params={
'api_key': 'YOUR-API-KEY',
'query': 'B0DPDRNSXV',
},
)const axios = require('axios');
axios.get('https://app.scrapingbee.com/api/v1/amazon/product', {
params: {
'api_key': 'YOUR-API-KEY',
'query': 'B0DPDRNSXV',
}
}).then(function (response) {
console.log(response);
})$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://app.scrapingbee.com/api/v1/amazon/product?api_key=YOUR-API-KEY&query=B0DPDRNSXV');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($ch);uri = URI('https://app.scrapingbee.com/api/v1/amazon/product?api_key=YOUR-API-KEY&query=B0DPDRNSXV')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
req = Net::HTTP::Get.new(uri)
res = http.request(req)req, _ := http.NewRequest("GET", "https://app.scrapingbee.com/api/v1/amazon/product?api_key=YOUR-API-KEY&query=B0DPDRNSXV", nil)
client := &http.Client{}
resp, _ := client.Do(req)Content content = Request.Get("https://app.scrapingbee.com/api/v1/amazon/product?api_key=YOUR-API-KEY&query=B0DPDRNSXV")
.execute().returnContent();
System.out.println(content);curl "https://app.scrapingbee.com/api/v1/amazon/search?api_key=YOUR-API-KEY&query=iphone+16"import requests
response = requests.get(
url='https://app.scrapingbee.com/api/v1/amazon/search',
params={
'api_key': 'YOUR-API-KEY',
'query': 'iphone 16',
},
)The Node.js, PHP, Ruby, Go, and Java code is identical to the product endpoint — only the URL path (/amazon/search) and the query value change.
| Parameter | Type | Default | Description |
|---|---|---|---|
api_key |
string, required | — | Your ScrapingBee API key. |
query |
string, required | — | 10-character ASIN of the product. |
light_request |
boolean | true |
true costs 5 credits; false costs 15 credits and uses JavaScript rendering. |
screenshot |
boolean | false |
Returns a base64-encoded screenshot. 15 credits. |
add_html |
boolean | false |
Include the full page HTML in the response. |
device |
string | desktop |
desktop, mobile, or tablet. |
domain |
string | com |
Amazon domain (com, co.uk, de, fr, …). |
country |
string | — | ISO country code for geolocation (us, gb, de, fr). |
zip_code |
string | — | Postal code for delivery-area geolocation. |
language |
string | — | ISO language code (en, es, fr, de, it, ja). |
currency |
string | — | ISO 4217 currency code (USD, EUR, GBP, JPY, CAD). |
| Parameter | Type | Default | Description |
|---|---|---|---|
api_key |
string, required | — | Your ScrapingBee API key. |
query |
string, required | — | Search term. URL-encode it. |
start_page |
integer | 1 |
First page of results to fetch. |
pages |
integer | 1 |
Number of consecutive pages to fetch. |
light_request |
boolean | true |
true costs 10 credits per page; false costs 15. |
screenshot |
boolean | false |
Returns a base64-encoded screenshot. 15 credits per request. |
device |
string | desktop |
desktop, mobile, or tablet. |
domain |
string | com |
Amazon regional domain. |
country |
string | — | ISO country code for geolocation. |
zip_code |
string | — | Postal code for geolocation. |
language |
string | — | ISO language code. |
currency |
string | — | Currency for displayed prices. |
sort_by |
string | — | featured, price_low_to_high, price_high_to_low, most_recent, average_review, bestsellers. |
category_id |
string | — | Filter by Amazon category. |
merchant_id |
string | — | Filter by seller. |
add_html |
boolean | false |
Include raw HTML in the response. |
autoselect_variant |
boolean | false |
Auto-select a product variant on the result page. |
The domain parameter accepts every Amazon regional site, including:
com (US), co.uk (UK), de (Germany), fr (France), it (Italy), es (Spain), nl (Netherlands), pl (Poland), se (Sweden), com.tr (Turkey), ae (UAE), sa (Saudi Arabia), in (India), sg (Singapore), com.au (Australia), co.jp (Japan), com.mx (Mexico), com.br (Brazil), ca (Canada).
- Track competitor prices and stock across one or many ASINs.
- Pull review text and ratings for sentiment analysis or product research.
- Monitor your own listings for buy-box loss, price drift, or seller hijacking.
- Build datasets of products by category for market research.
- Watch best-seller rankings to spot rising products in a category.
- Match catalogue data across Amazon's regional domains.
- Two purpose-built endpoints. No HTML parsing, no XPath maintenance, no broken selectors when Amazon updates its DOM.
- Proxy rotation, headless browsers, and anti-bot bypass are part of the request — you don't manage any of it.
- Geolocation by country and zip code returns the prices, currency, and stock a buyer in that location would see.
- Twenty-plus Amazon regional domains supported through a single
domainparameter. - 1,000 credits free, no credit card required.
ScrapingBee charges in API credits. Costs depend on the parameters you set — light_request=true is the cheapest path; JavaScript rendering and screenshots cost more.
| Plan | Monthly | API credits | Concurrent requests |
|---|---|---|---|
| Free | $0 | 1,000 (one-off) | 5 |
| Freelance | $49 | 250,000 | 10 |
| Startup | $99 | 1,000,000 | 50 |
| Business | $249 | 3,000,000 | 100 |
| Business+ | $599 | 8,000,000 | 200 |
Current pricing: scrapingbee.com/#pricing.
Scraping publicly available Amazon data is generally legal in many jurisdictions, but Amazon's terms of service restrict automated access. The legal picture varies by country, by the type of data collected, and by how you use it. Review the ToS and the regulations that apply to you (GDPR, CCPA) before running anything in production. This repository does not provide legal advice.
Product details (title, price, ratings, reviews count, images, specs, variations, ASIN, sales rank), search results (organic and sponsored listings, prices, refinements), and the seller and shipping fields shown on the page. For reviews and Q&A specifically, check the docs — the Amazon scraper API returns review counts and aggregate ratings on the product endpoint; full review text extraction depends on the parameters you set.
Proxy rotation, headless browsers, and CAPTCHA bypass happen on the API side. For tougher requests, you can set light_request=false to force a full browser render.
Set country and currency. For delivery-zone-specific stock and pricing, also set zip_code. Combined with domain, this returns what a real buyer in that location would see.
A standard product or search request with light_request=true is 5 credits. Setting light_request=false for full JavaScript rendering is 15 credits. Screenshots are 15 credits. Search results cost 10 credits per page on the light request path. Free plan gives you 1,000 credits to evaluate.