# Amazon Scraper API > Source: https://scrape.do/documentation/amazon-scraper-api/ Extract structured product data from Amazon at scale ![Amazon Scraper API](/uploads/amazon-scraper-api.png) The Amazon Scraper API is a specialized plugin that extracts structured data from Amazon.com and all international Amazon marketplaces. Unlike raw HTML scraping that requires parsing, this API returns clean, structured JSON responses with product details, pricing, seller offers, and search results (ready to use in your applications). > [!NOTE] > **Credit Usage:** Each successful Amazon Scraper API request costs **1 credit**. For bulk processing, use the [Async API with plugins](/documentation/async-api/plugins/). ## Key Features - **Structured JSON Output**: Get parsed product data including ASIN, title, price, ratings, images, and technical details without writing HTML parsers. - **Location Targeting**: Pass a `zipcode` for ZIP-level marketplaces or `countryName` for marketplaces without ZIP-level delivery to localize pricing, stock availability, and shipping information. - **Multi-Marketplace Support**: Scrape from 23 Amazon marketplaces including US, UK, Germany, Ireland, and more. - **Language Selection**: Request pages in specific languages supported by each marketplace. - **Include HTML Option**: Add `include_html=true` to any structured endpoint to receive the full raw HTML alongside the parsed JSON data. - **Automatic Session Management**: Sessions are automatically maintained for each marketplace and supported location combination. - **No Blocks or CAPTCHAs**: All anti-bot measures are handled automatically by Scrape.do. --- ## Endpoints | Endpoint | Method | Output | Description | Details | |----------|--------|--------|-------------|---------| | `/plugin/amazon/pdp` | GET | JSON | Extract product details, descriptions, pricing, images, and specifications | [more](/documentation/amazon-scraper-api/pdp) | | `/plugin/amazon/offer-listing` | GET | JSON | Get all seller offers with prices and shipping info | [more](/documentation/amazon-scraper-api/offer-listing) | | `/plugin/amazon/search` | GET | JSON | Search results with product listings and rankings | [more](/documentation/amazon-scraper-api/search) | | `/plugin/amazon/deals` | GET | JSON | Discounted products with current and pre-deal prices, filterable by category and price | [more](/documentation/amazon-scraper-api/deals) | | `/plugin/amazon/bestsellers` | GET | JSON | Best Sellers and New Releases chart for a category, with ranks, prices, and ratings | [more](/documentation/amazon-scraper-api/bestsellers) | | `/plugin/amazon/seller` | GET | JSON | Seller profile: display name, business details, and feedback percentage | [more](/documentation/amazon-scraper-api/seller) | | `/plugin/amazon/` | GET | HTML | Raw HTML from any Amazon URL with geo-targeting | [more](/documentation/amazon-scraper-api/raw-html) | --- ## Location Parameters Amazon displays different prices, stock levels, and shipping options based on the delivery location. Use `zipcode` for marketplaces that support ZIP-level delivery localization, or `countryName` for marketplaces where Amazon uses country-level delivery settings. Use only one location parameter per request. Passing `countryName` that just names the marketplace's own home country (for example, `countryName=Turkey` with `geocode=tr`) is unnecessary and ignored because that marketplace is already localized to it. The structured endpoints (`/pdp`, `/offer-listing`, `/search`) return parsed JSON for both ZIP-level and country-level requests. ### ZIP-Level Marketplaces | Geocode | Country | Format | Example ZIP Codes | |---------|---------|--------|-------------------| | `us` | United States | Numeric | `14217`, `32216`, `90210` | | `gb` / `uk` | United Kingdom | Alphanumeric | `AB44 1LE`, `SW1A 1AA`, `M1 1AE` | | `de` | Germany | Numeric | `10115`, `80331`, `20095` | | `fr` | France | Numeric | `75001`, `13001`, `69001` | | `it` | Italy | Numeric | `00100`, `20121`, `80100` | | `es` | Spain | Numeric | `28001`, `08001`, `41001` | | `ca` | Canada | Alphanumeric | `K1W 0C8`, `M5V 3L9`, `V6B 4Y8` | | `jp` | Japan | Numeric | `100-0001`, `530-0001`, `460-0008` | | `in` | India | Numeric | `560001`, `400001`, `110001` | | `ie` | Ireland | Eircode | `D02 AF30` | | `za` | South Africa | Numeric | `2000` | ### Country-Level Marketplaces For `tr`, `br`, `au`, `mx`, `nl`, `be`, `pl`, `se`, `ae`, `sa`, `sg`, and `eg`, pass `countryName` when you need a country-level delivery location instead of a ZIP code. > [!WARNING] > ZIP code format is validated per marketplace. Invalid formats are rejected with an error message showing the expected format. --- ## Language Parameter The `language` parameter allows you to request Amazon pages in a specific language. This is useful when scraping international marketplaces where multiple languages are available. ### Supported Languages by Country | Country | Geocode | Supported Languages | |---------|---------|---------------------| | United States | `us` | EN, ES | | United Kingdom | `gb` | EN | | Germany | `de` | DE, EN, CS, NL, PL, TR, DA | | France | `fr` | FR, EN | | Italy | `it` | IT, EN | | Spain | `es` | ES, PT, EN | | Canada | `ca` | EN, FR | | Australia | `au` | EN | | Japan | `jp` | JA, EN, ZH | | India | `in` | EN, HI, TA, TE, KN, ML, BN, MR | | Brazil | `br` | PT | | Mexico | `mx` | ES | | Turkey | `tr` | TR | | Netherlands | `nl` | NL, EN | | Singapore | `sg` | EN | | UAE | `ae` | EN, AR | | Saudi Arabia | `sa` | AR, EN | | Poland | `pl` | PL | | Sweden | `se` | SV, EN | | Belgium | `be` | NL, FR, EN | | Egypt | `eg` | EN, AR | > [!NOTE] > Language codes must be in ISO 639-1 format (uppercase). If an unsupported language is specified, the API will return an error listing valid options. ## Error Handling All endpoints return errors in a consistent format: ```json { "error": "error_code", "message": "Human readable error message" } ``` ### Common Error Codes | Status Code | Error | Description | |-------------|-------|-------------| | `400` | `invalid_zipcode` | ZIP code format doesn't match country requirements | | `400` | `language_not_supported` | Requested language not available for the geocode | | `400` | `token is required` | Missing authentication token | | `429` | `concurrent limit exceeded` | Too many simultaneous requests | | `502` | `amazon session client timeout` | Session expired; retry the request | ---