Skip to content

ScrapingBee/amazon-scraper-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 

Repository files navigation

Amazon Scraper API

Amazon Scraper API

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

Contents

What is Amazon scraping?

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.

How it works

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. image

Endpoints

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

Quick start

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.

Code examples — product

Every snippet below is from the official ScrapingBee documentation.

Python

import requests

response = requests.get(
    url='https://app.scrapingbee.com/api/v1/amazon/product',
    params={
        'api_key': 'YOUR-API-KEY',
        'query': 'B0DPDRNSXV',
    },
)

Node.js

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);
})

PHP

$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);

Ruby

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)

Go

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)

Java

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);

Code examples — search

curl

curl "https://app.scrapingbee.com/api/v1/amazon/search?api_key=YOUR-API-KEY&query=iphone+16"

Python

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.

Product API parameters

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).

Search API parameters

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.

Supported Amazon domains

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).

Use cases

  • 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.

Why ScrapingBee

  • 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 domain parameter.
  • 1,000 credits free, no credit card required.

Pricing

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.

FAQ

Is scraping Amazon legal?

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.

What Amazon data can I extract?

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.

How does ScrapingBee handle Amazon's anti-bot system?

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.

How do I get prices in a specific country's currency?

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.

What does it cost per request?

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.

Releases

No releases published

Packages

 
 
 

Contributors