# Amazon Scraper API - Extract Product Data at Scale > Source: https://scrape.do/products/ready-api/amazon-scraper/ Extract product data, prices, offers, search results, deals, Best Sellers charts, and seller profiles from Amazon with a single API call. Structured JSON responses, no blocks, no CAPTCHAs. > Each successful request costs **1 credits**. **Structured Amazon Data Ready-to-Use At Scale** Extract product details, prices, all offers, search results, deals, Best Sellers charts, and seller profiles from Amazon. Structured JSON responses with ZIP code based geo-targeting and language selectors. ![Structured Amazon Data Ready-to-Use At Scale](/uploads/amazon-scraper-api.png) ## Highlights ### Full Control with Language and ZIP Code Parameters - Access local deals, real-time stock availability, and accurate shipping times for **any specific location on Earth.** - Our geocode and zipcode parameters let you see exactly what customers see from New York to Tokyo, from London to São Paulo. ### JSON Output in Seconds, Without Blocks - Scrape.do is built for speed and scale and processes **millions of requests daily** without breaking a sweat. - Whether you need regular price tracking or large-scale product data extraction from Amazon, get structured JSON responses in seconds with zero blocks or CAPTCHAs. ## How It Works ### Product Page Extract complete product information including title, price, ratings, images, and specifications from any Amazon product page. ![Product Page](/uploads/amazon-pdp.png) **cURL (API mode)** ```bash curl --location --request GET 'https://api.scrape.do/plugin/amazon/pdp?token=&asin=B0C7BKZ883&geocode=US' ``` **Python (API mode)** ```python import requests import json token = "" asin = "B0C7BKZ883" geocode = "US" url = f"https://api.scrape.do/plugin/amazon/pdp?token={token}&asin={asin}&geocode={geocode}" response = requests.request("GET", url) print(json.dumps(response.json(), indent=2)) ``` **Node.js (API mode)** ```javascript const axios = require('axios'); const token = ""; const asin = "B0C7BKZ883"; const geocode = "US"; const url = `https://api.scrape.do/plugin/amazon/pdp?token=${token}&asin=${asin}&geocode=${geocode}`; axios.get(url) .then(response => { console.log(JSON.stringify(response.data, null, 2)); }) .catch(error => { console.error(error); }); ``` *(Go, Ruby, Java, C#, PHP examples are also available on the HTML version.)* **Example response** ```json { "asin": "B0C7BKZ883", "is_sponsored": false, "brand": "Gogoonike", "name": "Adjustable Laptop Stand for Desk...", "url": "https://www.amazon.com/dp/B0C7BKZ883", "rating": 4.6, "total_ratings": 2712, "price": 14.99, "list_price": 39.99, "currency": "USD", "is_prime": true, "images": [ { "url": "https://m.media-amazon.com/images/..." } ], "best_seller_rankings": [ { "category": "Office Products", "rank": 249 }, { "category": "Laptop Stands", "rank": 2 } ], "status": "success" } ``` ### Search Results Search Amazon for any keyword and get structured results including product listings, prices, ratings, and sponsored status. ![Search Results](/uploads/amazon-search-results-scraper.png) **cURL (API mode)** ```bash curl --location --request GET 'https://api.scrape.do/plugin/amazon/search?token=&keyword=laptop%20stands&geocode=US&page=1' ``` **Python (API mode)** ```python import requests import json token = "" keyword = "laptop stands" geocode = "US" page = 1 url = f"https://api.scrape.do/plugin/amazon/search?token={token}&keyword={keyword}&geocode={geocode}&page={page}" response = requests.request("GET", url) print(json.dumps(response.json(), indent=2)) ``` **Node.js (API mode)** ```javascript const axios = require('axios'); const token = ""; const keyword = encodeURIComponent("laptop stands"); const geocode = "US"; const page = 1; const url = `https://api.scrape.do/plugin/amazon/search?token=${token}&keyword=${keyword}&geocode=${geocode}&page=${page}`; axios.get(url) .then(response => { console.log(JSON.stringify(response.data, null, 2)); }) .catch(error => { console.error(error); }); ``` *(Go, Ruby, Java, C#, PHP examples are also available on the HTML version.)* **Example response** ```json { "keyword": "laptop stands", "page": 1, "products": [ { "asin": "B0C1HGKNG7", "title": "JBL Tune 520BT - Wireless On-Ear...", "url": "https://www.amazon.com/JBL-Tune-520BT...", "imageUrl": "https://m.media-amazon.com/images/...", "price": { "currencyCode": "USD", "amount": 29.95 }, "rating": { "value": 4.6, "stars": 5 }, "reviewCount": "(9.1K)", "isSponsored": false, "isPrime": false, "position": 3, "badge": "Overall Pick" }, { "asin": "B0CBL1TQMP", "title": "JBL Tune 520BT - Wireless On-Ear...", "url": "https://www.amazon.com/JBL-Tune-520BT...", "imageUrl": "https://m.media-amazon.com/images/...", "price": { "currencyCode": "USD", "amount": 29.95 }, "rating": { "value": 4.6, "stars": 5 }, "reviewCount": "(9.1K)", "isSponsored": false, "isPrime": false, "position": 4 } ], "status": "success" } ``` ### Offers List Get all seller offers for a product including prices, shipping costs, seller ratings, and Buy Box status. ![Offers List](/uploads/amazon-sellers-scraper.png) **cURL (API mode)** ```bash curl --location --request GET 'https://api.scrape.do/plugin/amazon/offer-listing?token=&asin=B0DGJ7HYG1&geocode=US' ``` **Python (API mode)** ```python import requests import json token = "" asin = "B0DGJ7HYG1" geocode = "US" url = f"https://api.scrape.do/plugin/amazon/offer-listing?token={token}&asin={asin}&geocode={geocode}" response = requests.request("GET", url) print(json.dumps(response.json(), indent=2)) ``` **Node.js (API mode)** ```javascript const axios = require('axios'); const token = ""; const asin = "B0DGJ7HYG1"; const geocode = "US"; const url = `https://api.scrape.do/plugin/amazon/offer-listing?token=${token}&asin=${asin}&geocode=${geocode}`; axios.get(url) .then(response => { console.log(JSON.stringify(response.data, null, 2)); }) .catch(error => { console.error(error); }); ``` *(Go, Ruby, Java, C#, PHP examples are also available on the HTML version.)* **Example response** ```json { "asin": "B0DGJ7HYG1", "status": "success", "offers": [ { "offerHeader": "New", "merchantName": "Amazon Resale", "shippingTime": { "deliveryDate": "December 23 - 29" }, "listingPrice": { "currencyCode": "USD", "amount": 99.99 }, "listPrice": { "currencyCode": "USD", "amount": 179 }, "discount": { "percentage": 44.14, "amount": 79.01 }, "shipping": { "currencyCode": "USD", "amount": 0 }, "isFulfilledByAmazon": true, "isBuyBoxWinner": true, "quantity": 3 }, { "offerHeader": "New", "sellerId": "ALAQLAKJ574UN", "merchantName": "6ave", "shippingTime": { "deliveryDate": "Thursday, December 11" }, "listingPrice": { "currencyCode": "USD", "amount": 196.98 }, "shipping": { "currencyCode": "USD", "amount": 0 }, "isFulfilledByAmazon": false, "isBuyBoxWinner": false, "quantity": 30 } ] } ``` ### Deals Get Amazon's discounted products as a paginated grid with both the current price and the price before the deal. Scope by category node, price range, and sort order. ![Deals](/uploads/amazon-deals-scraper.png) **cURL (API mode)** ```bash curl --location --request GET 'https://api.scrape.do/plugin/amazon/deals?token=&geocode=US' ``` **Python (API mode)** ```python import requests import json token = "" geocode = "US" url = f"https://api.scrape.do/plugin/amazon/deals?token={token}&geocode={geocode}" response = requests.request("GET", url) print(json.dumps(response.json(), indent=2)) ``` **Node.js (API mode)** ```javascript const axios = require('axios'); const token = ""; const geocode = "US"; const url = `https://api.scrape.do/plugin/amazon/deals?token=${token}&geocode=${geocode}`; axios.get(url) .then(response => { console.log(JSON.stringify(response.data, null, 2)); }) .catch(error => { console.error(error); }); ``` *(Go, Ruby, Java, C#, PHP examples are also available on the HTML version.)* **Example response** ```json { "page": 1, "products": [ { "asin": "B0GQ2VXKY7", "title": "The Killer Isn't Alice: The 46,600 Suspect...", "url": "https://www.amazon.com/dp/B0GQ2VXKY7", "imageUrl": "https://m.media-amazon.com/images/...", "price": { "currencyCode": "USD", "amount": 15.99 }, "price_before_deal": { "currencyCode": "USD", "amount": 19.99 }, "rating": { "value": 4.5, "count": 1284, "stars": 5 }, "reviewCount": "(1.2K)", "isSponsored": false, "position": 1 } ], "filters": [ { "name": "Eligible for Free Shipping", "options": [ { "name": "Free Shipping by Amazon", "link": "https://www.amazon.com/s?rh=..." } ] } ], "pagination": { "current_page": 1, "has_next": true } } ``` ### Best Sellers Pull the Best Sellers or New Releases chart for any category, ranked 1 to 100, with prices and ratings for every position Amazon renders a product card for. ![Best Sellers](/uploads/amazon-bestsellers-scraper.png) **cURL (API mode)** ```bash curl --location --request GET 'https://api.scrape.do/plugin/amazon/bestsellers?token=&category=electronics&geocode=US' ``` **Python (API mode)** ```python import requests import json token = "" category = "electronics" geocode = "US" url = f"https://api.scrape.do/plugin/amazon/bestsellers?token={token}&category={category}&geocode={geocode}" response = requests.request("GET", url) print(json.dumps(response.json(), indent=2)) ``` **Node.js (API mode)** ```javascript const axios = require('axios'); const token = ""; const category = "electronics"; const geocode = "US"; const url = `https://api.scrape.do/plugin/amazon/bestsellers?token=${token}&category=${category}&geocode=${geocode}`; axios.get(url) .then(response => { console.log(JSON.stringify(response.data, null, 2)); }) .catch(error => { console.error(error); }); ``` *(Go, Ruby, Java, C#, PHP examples are also available on the HTML version.)* **Example response** ```json { "category": "electronics", "type": "bestsellers", "page": 1, "ranking": [ { "rank": 1, "asin": "B08JHCVHTY", "url": "https://www.amazon.com/dp/B08JHCVHTY" }, { "rank": 2, "asin": "B0DCH8VDXF", "url": "https://www.amazon.com/dp/B0DCH8VDXF" } ], "products": [ { "rank": 2, "asin": "B0DCH8VDXF", "title": "Apple EarPods Headphones with USB-C Plug...", "url": "https://www.amazon.com/dp/B0DCH8VDXF", "imageUrl": "https://images-na.ssl-images-amazon.com/images/...", "price": { "currencyCode": "USD", "amount": 19 }, "rating": { "value": 4.5, "count": 17902, "stars": 5 }, "reviewCount": "17,902" } ], "ranking_count": 50, "products_count": 30, "pagination": { "current_page": 1, "has_next": true } } ``` ### Seller Profile Look up any seller ID and get the display name, about text, positive feedback percentage, and the business details Amazon publishes, including the full trader block on EU marketplaces. ![Seller Profile](/uploads/amazon-seller-scraper.png) **cURL (API mode)** ```bash curl --location --request GET 'https://api.scrape.do/plugin/amazon/seller?token=&seller=A2L77EE7U53NWQ&geocode=US' ``` **Python (API mode)** ```python import requests import json token = "" seller = "A2L77EE7U53NWQ" geocode = "US" url = f"https://api.scrape.do/plugin/amazon/seller?token={token}&seller={seller}&geocode={geocode}" response = requests.request("GET", url) print(json.dumps(response.json(), indent=2)) ``` **Node.js (API mode)** ```javascript const axios = require('axios'); const token = ""; const seller = "A2L77EE7U53NWQ"; const geocode = "US"; const url = `https://api.scrape.do/plugin/amazon/seller?token=${token}&seller=${seller}&geocode=${geocode}`; axios.get(url) .then(response => { console.log(JSON.stringify(response.data, null, 2)); }) .catch(error => { console.error(error); }); ``` *(Go, Ruby, Java, C#, PHP examples are also available on the HTML version.)* **Example response** ```json { "seller_id": "AOPPU1CKKHCUB", "name": "Granicell Direct", "about": "Granicell Direct is committed to providing each customer with...", "rating": { "positive_percentage": 98 }, "business_details": { "business_name": "GuangZhouGuanLiKeJiYouXianGongSi", "business_type": "Privately-owned business", "trade_register_number": "91440113MAE7GPX47B", "vat_number": "DE452659022", "phone_number": "+8615989069563", "email": "granicell@163.com", "business_address": [ "...", "510000", "CN" ] } } ``` ### Raw HTML Get raw HTML from any Amazon page with ZIP code geo-targeting. Parse your own way or use for custom data extraction. ![Raw HTML](/uploads/amazon-pdp.png) **cURL (API mode)** ```bash curl --location --request GET 'https://api.scrape.do/plugin/amazon/?token=&url=https://www.amazon.com/dp/B0C7BKZ883&geocode=US' ``` **Python (API mode)** ```python import requests token = "" url = "https://www.amazon.com/dp/B0C7BKZ883" geocode = "US" api_url = f"https://api.scrape.do/plugin/amazon/?token={token}&url={url}&geocode={geocode}" response = requests.request("GET", api_url) print(response.text) ``` **Node.js (API mode)** ```javascript const axios = require('axios'); const token = ""; const targetUrl = encodeURIComponent("https://www.amazon.com/dp/B0C7BKZ883"); const geocode = "US"; const url = `https://api.scrape.do/plugin/amazon/?token=${token}&url=${targetUrl}&geocode=${geocode}`; axios.get(url) .then(response => { console.log(response.data); }) .catch(error => { console.error(error); }); ``` *(Go, Ruby, Java, C#, PHP examples are also available on the HTML version.)* **Example response** ```html Adjustable Laptop Stand...

Adjustable Laptop Stand for Desk, Ergonomic Computer Stand...

14 99 4.6 out of 5 stars 2,712 ratings ``` ## FAQ ### What is an Amazon scraper? An Amazon scraper is a tool or an API that is used to automatically retrieve data from Amazon product pages, categories, search results, and more. These scrapers let you extract data from hundreds, even millions of Amazon pages without manual labor. ### What data can I extract from Amazon? Our Amazon Scraper API supports seven endpoints: Product Detail Pages (PDP) for product info, prices, images, and ratings; All Offers for every seller's price and shipping info; Search Results for keyword, category, and seller-catalog scraping; Deals for discounted products with the price before the deal; Best Sellers for ranked Best Sellers and New Releases charts; Seller Profile for seller names, feedback percentage, and business details; and Raw HTML with advanced geo-targeting for custom parsing needs. ### Which Amazon marketplaces are supported? We support 23 Amazon marketplaces including US, UK, Germany, France, Italy, Spain, Canada, Australia, Japan, India, Brazil, Mexico, Turkey, Netherlands, Ireland, South Africa, and more. Use the geocode parameter to target any marketplace. The Deals endpoint is currently available for the US marketplace. ### How does ZIP-code geo-targeting work? Amazon shows different prices and availability based on delivery location. Our API lets you specify both country (geocode) and ZIP code (zipcode) to get location-specific pricing and shipping information, perfect for price monitoring across regions. ### What format does the API return? The API returns structured JSON responses with parsed product data including ASIN, title, price, ratings, images, best seller rankings, and technical details. No HTML parsing required on your end. You can also set include_html=true to receive the full raw HTML alongside the structured data in a single response. ### How do I handle Amazon's anti-bot protection? You don't have to. Our Amazon Scraper API automatically handles AWS WAF, CAPTCHAs, and all anti-bot measures. Just send your request and receive clean data, we handle the rest. ### I need more information.. We got you! Visit our [Amazon scraper API documentation page here](/documentation/amazon-scraper-api/) for in-depth overview of Scrape.do's capabilities.