# Amazon Product Scraper (`junglee/amazon-crawler`) Actor

Use this Amazon scraper to collect data based on URL and country from the Amazon website. Extract product information without using the Amazon API, including reviews, prices, descriptions, and Amazon Standard Identification Numbers (ASINs). Download data in various structured formats.

- **URL**: https://apify.com/junglee/amazon-crawler.md
- **Developed by:** [Junglee](https://apify.com/junglee) (Apify)
- **Categories:** E-commerce
- **Stats:** 17,317 total users, 1,229 monthly users, 88.9% runs succeeded, 283 bookmarks
- **User rating**: 4.48 out of 5 stars

## Pricing

from $3.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

### What is Amazon Product Scraper and how does it work?
Amazon Product Scraper is a web scraping tool that enables you to extract product data from Amazon by using Amazon's subcategory URLs or product URLs.

For example, this is an Amazon URL for the Computer Monitors subcategory: 

```https://www.amazon.com/s?i=specialty-aps&bbn=16225007011&rh=n%3A16225007011%2Cn%3A1292115011```

Amazon subcategories typically have ```/s``` in the URL after the Amazon domain, so make sure your URL looks something like the example above.

So just add one or more Amazon URLs in the input field and select the maximum number of items you want to scrape. Then download the data from the output schema. You can even get this data via API without having to log in to the Apify platform.

### Why scrape Amazon products?
Scraping Amazon products can help you to:

➡️ Monitor the performance of categories and subcategories on Amazon so you can put the performance of your products into context.

➡️ Discover up-and-coming brands and products to benchmark your performance within its category based on views, conversions, and reviews.

➡️ Fine-tune your advertising and messaging.

➡️ Use Amazon data to give you an edge in competitive intelligence.

For more inspiration, check out [how web scraping is transforming e-commerce analytics](https://apify.com/industries/ecommerce-and-retail).

### How many results can you scrape with Amazon Product Scraper?

Amazon Product Scraper can return over 100 000 results on average. However, you have to keep in mind that scraping amazon.com has many variables to it and may cause the results to fluctuate case by case. There’s no one-size-fits-all-use-cases number. The maximum number of results may vary depending on the complexity of the input, location, and other factors. Some of the most frequent cases are:

- website gives a different number of results depending on the type/value of the input
- website has an internal limit that no scraper can cross
- scraper has a limit that we are working on improving

Therefore, while we regularly run Actor tests to keep the benchmarks in check, the results may also fluctuate without our knowing. The best way to know for sure for your particular use case is to do a test run yourself.

### How much will scraping Amazon Products cost you?

When it comes to scraping, it can be challenging to estimate the resources needed to extract data as use cases may vary significantly. That's why the best course of action is to run a test scrape with a small sample of input data and limited output. You’ll get your price per scrape, which you’ll then multiply by the number of scrapes you intend to do. 

[Watch this video](https://www.youtube.com/watch?v=kOy8C6_5ZU4) for a few helpful tips. And don't forget that choosing a higher plan will save you money in the long run.

https://www.youtube.com/watch?v=kOy8C6_5ZU4

### 7 pages Amazon limitation
Amazon sometimes restricts search terms to a maximum of 7 pages, please validate the number of pages in the URL. To overcome this limit, try to use one of the regular categories and combine it with the search terms. E.g. instead of just searching for `Diamond rings`, find `Jewelry` or `Women's rings` category and combine them with the search term.

### Is it legal to scrape Amazon?
It is legal to scrape publicly available data such as product descriptions, prices, or ratings. Read our blog post on [the legality of web scraping](https://blog.apify.com/is-web-scraping-legal/) to learn more.

### How do I scrape products on Amazon?
This simple [step-by-step guide](https://blog.apify.com/step-by-step-guide-to-scraping-amazon/#how-do-i-scrape-data-on-amazon) shows you how to use Amazon Product Scraper.

### Want more Amazon scraping options?
Try these 👇
- [Amazon Best Sellers Scraper](https://apify.com/mihails/amazon-bestsellers-scraper)
- [Amazon Reviews Scraper](https://apify.com/lhotanok/amazon-reviews-scraper)
- [Amazon ASINs Scraper](https://apify.com/lhotanok/amazon-asins-scraper)

### Need to find product pairs between Amazon and another online shop?

Use the [AI Product Matcher](https://apify.com/equidem/ai-product-matcher). This AI model allows you to compare items from different web stores, identifying exact matches and comparing real-time data obtained via web scraping. With the AI Product Matcher, you can use scraped product data to monitor product matches across the industry, implement dynamic pricing for your website, replace or complement manual mapping, and obtain realistic estimates against your competition for upcoming promo campaigns. 

Most importantly, it is relatively easy to get started with (just follow [this guide](https://blog.apify.com/product-matching-ai-pricing-intelligence-web-scraping/)), and it can check thousands of pairs of products.

### Input options
When running Amazon Product Scraper, you need to configure what you want to scrape and how it should be extracted. This input is provided either as a JSON file or in the editor on the Apify platform. Most input fields have reasonable default values.

For detailed descriptions and examples for all input fields, please visit the dedicated [Input tab](https://apify.com/vaclavrut/amazon-crawler/input-schema).

Please note the following when using Amazon Product Scraper:
- Price information might be missing if the delivery country has no sellers. Setting a specific "apifyProxyCountry" in proxy settings should help with this.
- There could still be differences in pricing depending on the US state.
- Amazon also shows different offers based on your proxy location.

### Sample output from Amazon Product Scraper

```json
{
    "title": "SanDisk 1TB Extreme microSDXC UHS-I Memory Card with Adapter - Up to 190MB/s, C10, U3, V30, 4K, 5K, A2, Micro SD Card- SDSQXAV-1T00-GN6MA",
    "url": "https://www.amazon.com/dp/B09X7MPX8L",
    "asin": "B09X7MPX8L",
    "inStock": true,
    "inStockText": "Only 8 left in stock - order soon.       Only 8 left in stock - order soon.",
    "brand": "SanDisk",
    "price": {
        "value": 145.5,
        "currency": "$"
    },
    "listPrice": {
        "value": 299.99,
        "currency": "$"
    },
    "shippingPrice": null,
        "stars": 4.8,
        "starsBreakdown": {
        "5star": 0.86,
        "4star": 0.09,
        "3star": 0.02,
        "2star": 0.01,
        "1star": 0.01
    },
    "reviewsCount": 36704,
    "answeredQuestions": 151,
    "breadCrumbs": "Electronics › Computers & Accessories › Computer Accessories & Peripherals › Memory Cards › Micro SD Cards",
    "thumbnailImage": "https://m.media-amazon.com/images/I/716kSUlHouL.__AC_SX300_SY300_QL70_FMwebp_.jpg",
    "description": null,
    "features": [
    "Save time with card offload speeds of up to 190MB/s powered by SanDisk QuickFlow Technology (Up to 190MB/s read speeds, engineered with proprietary technology to reach speeds beyond UHS-I 104MB/s, requires compatible devices capable of reaching such speeds. Based on internal testing; performance may be lower depending upon host device interface, usage conditions and other factors. 1MB=1,000,000 bytes. SanDisk QuickFlow Technology is only available for 64GB, 128GB, 256GB, 400GB, 512GB, and 1TB capacities. 1GB=1,000,000,000 bytes and 1TB=1,000,000,000,000 bytes. Actual user storage less.)",
    "Pair with the SanDisk Professional PRO-READER SD and microSD to achieve maximum speeds (sold separately)",
    "Up to 130MB/s write speeds for fast shooting (Based on internal testing; performance may be lower depending upon host device interface, usage conditions and other factors. 1MB=1,000,000 bytes.)",
    "4K and 5K UHD-ready with UHS Speed Class 3 (U3) and Video Speed Class 30 (V30) (Compatible device required. Full HD (1920x1080), 4K UHD (3840 x 2160), and 5K UHD (5120 X 2880) support may vary based upon host device, file attributes and other factors. See HD page on SanDisk site. UHS Speed Class 3 (U3) designates a performance option designed to support real-time video recording with UHS-enabled host devices. Video Speed Class 30 (V30), sustained video capture rate of 30MB/s, designates a performance option designed to support real-time video recording with UHS-enabled host devices. See the SD Association’s official website.)",
    "Rated A2 for faster loading and in-app performance (A2 performance is 4000 read IOPS, 2000 write IOPS. Results may vary based on host device, app type and other factors)"
    ],
    "variantAsins": [],
    "reviewsLink": "/SanDisk-Extreme-microSDXC-Memory-Adapter/product-reviews/B09X7MPX8L?reviewerType=all_reviews",
    "delivery": "Thursday, January 26",
    "fastestDelivery": "Sunday, January 22",
    "returnPolicy": "Eligible for Return, Refund or Replacement within 30 days of receipt  Eligible for Return, Refund or Replacement within 30 days of receipt",
    "support": "Free Amazon tech support included",
    "variantAttributes": [],
    "priceVariants": null,
    "seller": {
        "name": "Direct Suppliers US",
        "id": "A210SJF12S88M5",
        "url": "/gp/help/seller/at-a-glance.html/ref=dp_merchant_link?ie=UTF8&seller=A210SJF12S88M5&asin=B09X7MPX8L&ref_=dp_merchant_link&isAmazonFulfilled=1",
        "reviewsCount": null,
        "averageRating": null
    },
    "bestsellerRanks": null,
    "locationText": "Select your address"
}
````

### Integrations and Amazon Product Scraper

Last but not least, Amazon Product Scraper can be connected with almost any cloud service or web app thanks to <a href="https://apify.com/integrations"  target="_blank"> integrations on the Apify platform</a>. You can integrate with Make, Zapier, Slack, Airbyte, GitHub, Google Sheets, Google Drive, <a href="https://docs.apify.com/integrations"  target="_blank"> and more</a>. Or you can use <a href="https://docs.apify.com/integrations/webhooks"  target="_blank"> webhooks</a> to carry out an action whenever an event occurs, e.g. get a notification whenever Instagram API Scraper successfully finishes a run.

### Using Amazon Product Scraper with the Apify API

The Apify API gives you programmatic access to the Apify platform. The API is organized around RESTful HTTP endpoints that enable you to manage, schedule, and run Apify actors. The API also lets you access any datasets, monitor actor performance, fetch results, create and update versions, and more.

To access the API using Node.js, use the apify-client NPM package. To access the API using Python, use the apify-client PyPI package.

Check out the <a href="https://docs.apify.com/api/v2"  target="_blank"> Apify API reference</a> docs for full details or click on the <a href="https://apify.com/junglee/free-amazon-product-scraper/api"  target="_blank"> API tab</a> for code examples.

### Error items

When the scraper cannot retrieve data for a given input — for example a product URL returns a 404 or a start URL is malformed — it pushes an **error item** to the dataset instead of silently skipping it. Normal output items are never affected; you can tell them apart by the presence of an `error` field.

#### Error item structure

```json
{
    "error": "product_not_found",
    "errorDescription": "Loaded a 404 page. The product does not exist.",
    "input": "https://www.amazon.com/dp/B0XXXXXXXX",
    "url": "https://www.amazon.com/dp/B0XXXXXXXX"
}
```

#### Error codes reference

| `error`                          | Meaning                                                        |
| -------------------------------- | -------------------------------------------------------------- |
| `invalid_url`                    | One or more start URLs were malformed or not recognized        |
| `invalid_input`                  | Actor failed due to bad configuration (run is also terminated) |
| `product_not_found`              | Product URL returns a 404 page                                 |
| `shortened_url_invalid`          | Amazon shortened URL could not be resolved                     |
| `bestsellers_category_not_found` | Bestsellers category page could not be found                   |
| `no_relevant_reviews_found`      | Reviews exist but none match the active filters                |
| `no_results_found`               | No results were found for the given input                      |

***

### Not your cup of tea? Build your own scraper

Amazon Product Scraper doesn’t exactly do what you need? You can always build your own! We have various [scraper templates](https://apify.com/templates) in Python, JavaScript, and TypeScript to get you started. Alternatively, you can write it from scratch using our [open-source library Crawlee](https://crawlee.dev/). You can keep the scraper to yourself or make it public by adding it to Apify Store (and [find users](https://blog.apify.com/make-regular-passive-income-developing-web-automation-actors-b0392278d085/) for it).

Or let us know if you need a [custom scraping solution](https://apify.com/custom-solutions).

### Your feedback

We’re always working on improving the performance of our Actors. So if you’ve got any technical feedback for xxx or simply found a bug, please create an issue on the Actor’s [Issues tab](https://console.apify.com/actors/BG3WDrGdteHgZgbPK/issues) in Apify Console.

# Actor input Schema

## `categoryOrProductUrls` (type: `array`):

Use a link to the Amazon category you want to scrape, e.g. video games - https://www.amazon.com/s?bbn=16225016011\&rh=n%3A20972781011, https://www.amazon.com/dp/B0B3BVWJ6Y.
You can also filter within the category with almost any filter available, i.e. price, manufacturer, rating, etc.
By using a different URL you can also choose a different Amazon country, e.g. Germany: https://www.amazon.de/. You don't need to set a proxy country to do that.

## `maxItemsPerStartUrl` (type: `integer`):

Enter the maximum number of results you want to scrape per each star URL. This will let the scraper know when to stop.

## `language` (type: `string`):

Language to use on Amazon.

**Disclaimer**: each Amazon domain has a different set of supported languages. If you choose a language that is not supported by the domain, the scraper will use the default language of the domain.

## `proxyCountry` (type: `string`):

You can set proxy country to **avoid geo-blocking** and **access region-specific content**. Amazon shows you the products that can be shipped to your address based on the proxy you use.

*By default*, the scraper **automatically selects** the **proxy country** based on the used Amazon website domain, ensuring low blocking rates and results relevant to the base domain.

## `maxSearchPagesPerStartUrl` (type: `integer`):

Enter the maximum number of search pages to scrape for each start URL. E.g. only scrape the first 5 pages.

This field can also be used with the `maxItemsPerStartUrl` option, the scraper will stop after either one of these limits is reached.

## `maxProductVariantsAsSeparateResults` (type: `integer`):

Enter the maximum number of product variants you want to scrape per each product, outputted as separate results.

**Please beware** that **you can already get** most of the **variant details** changes, in the **`variantDetails` field**, which is outputted by default.

Note that this **will increase the number of requests** and **extend the scraping time**.

## `maxOffers` (type: `integer`):

Enter the maximum number of offers you want to scrape per each product. This will let the scraper know when to stop.

Note that this **will increase the number of requests** and **extend the scraping time**.

## `scrapeSellers` (type: `boolean`):

Enable this option to extract further information about sellers of the product. Scrapes the featured offer seller (main seller).

This option goes hand in hand with the `maxOffers` option bby scraping the seller of each offer. If you set `maxOffers` to 0, only the featured offer seller will be scraped.

Note that this **will increase the number of requests** and **extend the scraping time**.

## `useCaptchaSolver` (type: `boolean`):

If enabled the scraper will automatically solve captchas thrown by Amazon. This will decrease the amount of request retries and increase the speed of the scraper.<br><br>***IMPORTANT*** - This option works well only for the `'.com'` Amazon domain, but even for that one Amazon doesn't show a few product fields after solving a captcha (specifically: 'attributes', 'manufacturer attributes', and 'bestseller ranks')

## `scrapeProductVariantPrices` (type: `boolean`):

Enable this option to extract prices of different variations of a product. Useful when you need prices for each variant.

Note that this **will increase the number of requests** and **extend the scraping time**.

## `scrapeProductDetails` (type: `boolean`):

If enabled, the scraper will extract each found product from the category page in detail (this is the default behavior).

If disabled, the scraper will only extract the quick product information from the category page. Useful for faster and more lightweight searches for products.

## `countryCode` (type: `string`):

The country code to use as the delivery location.

## `zipCode` (type: `string`):

The zip code to use as the delivery location. This is useful for more precise location settings, especially in larger countries.

## `locationDeliverableRoutes` (type: `array`):

The list of routes/page types, for which the deliverable location settings should be applied.

- This is useful for speeding up the scraping process by not applying the location settings to all pages, for which you don't need the localized data for.
- For example, you can set it to `['SEARCH', 'PRODUCT']` to apply the location settings only to search and product pages.
- By default, all pages are included.

## Actor input object example

```json
{
  "categoryOrProductUrls": [
    {
      "url": "https://www.amazon.com/s?k=keyboard"
    }
  ],
  "maxItemsPerStartUrl": 100,
  "language": "en",
  "proxyCountry": "AUTO_SELECT_PROXY_COUNTRY",
  "maxSearchPagesPerStartUrl": 9999,
  "maxOffers": 0,
  "scrapeSellers": false,
  "useCaptchaSolver": false,
  "scrapeProductVariantPrices": false,
  "scrapeProductDetails": true,
  "countryCode": "US",
  "zipCode": "10001",
  "locationDeliverableRoutes": [
    "PRODUCT",
    "SEARCH",
    "OFFERS"
  ]
}
```

# Actor output Schema

## `dataset` (type: `string`):

Dataset containing all scraped product data

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "categoryOrProductUrls": [
        {
            "url": "https://www.amazon.com/s?k=keyboard"
        }
    ],
    "maxItemsPerStartUrl": 100,
    "proxyCountry": "AUTO_SELECT_PROXY_COUNTRY",
    "maxSearchPagesPerStartUrl": 9999,
    "maxProductVariantsAsSeparateResults": 0,
    "maxOffers": 0,
    "locationDeliverableRoutes": [
        "PRODUCT",
        "SEARCH",
        "OFFERS"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("junglee/amazon-crawler").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "categoryOrProductUrls": [{ "url": "https://www.amazon.com/s?k=keyboard" }],
    "maxItemsPerStartUrl": 100,
    "proxyCountry": "AUTO_SELECT_PROXY_COUNTRY",
    "maxSearchPagesPerStartUrl": 9999,
    "maxProductVariantsAsSeparateResults": 0,
    "maxOffers": 0,
    "locationDeliverableRoutes": [
        "PRODUCT",
        "SEARCH",
        "OFFERS",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("junglee/amazon-crawler").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "categoryOrProductUrls": [
    {
      "url": "https://www.amazon.com/s?k=keyboard"
    }
  ],
  "maxItemsPerStartUrl": 100,
  "proxyCountry": "AUTO_SELECT_PROXY_COUNTRY",
  "maxSearchPagesPerStartUrl": 9999,
  "maxProductVariantsAsSeparateResults": 0,
  "maxOffers": 0,
  "locationDeliverableRoutes": [
    "PRODUCT",
    "SEARCH",
    "OFFERS"
  ]
}' |
apify call junglee/amazon-crawler --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=junglee/amazon-crawler",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Amazon Product Scraper",
        "description": "Use this Amazon scraper to collect data based on URL and country from the Amazon website. Extract product information without using the Amazon API, including reviews, prices, descriptions, and Amazon Standard Identification Numbers (ASINs). Download data in various structured formats.",
        "version": "0.0",
        "x-build-id": "chxMYdAQP2sXWn9Ce"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/junglee~amazon-crawler/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-junglee-amazon-crawler",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/junglee~amazon-crawler/runs": {
            "post": {
                "operationId": "runs-sync-junglee-amazon-crawler",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/junglee~amazon-crawler/run-sync": {
            "post": {
                "operationId": "run-sync-junglee-amazon-crawler",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "categoryOrProductUrls"
                ],
                "properties": {
                    "categoryOrProductUrls": {
                        "title": "Enter one or more Amazon category or product URLs",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Use a link to the Amazon category you want to scrape, e.g. video games - https://www.amazon.com/s?bbn=16225016011&rh=n%3A20972781011, https://www.amazon.com/dp/B0B3BVWJ6Y.\n You can also filter within the category with almost any filter available, i.e. price, manufacturer, rating, etc. \n By using a different URL you can also choose a different Amazon country, e.g. Germany: https://www.amazon.de/. You don't need to set a proxy country to do that.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "maxItemsPerStartUrl": {
                        "title": "Max results (per start URL)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Enter the maximum number of results you want to scrape per each star URL. This will let the scraper know when to stop."
                    },
                    "language": {
                        "title": "Language",
                        "enum": [
                            "cs",
                            "da",
                            "de",
                            "en",
                            "es",
                            "fr",
                            "nl",
                            "pl",
                            "pt",
                            "sv",
                            "tr",
                            "he",
                            "ar",
                            "mrta",
                            "hi",
                            "bn",
                            "ta",
                            "te",
                            "kn",
                            "ml",
                            "ko",
                            "zh_CN",
                            "zh_TW",
                            "ja"
                        ],
                        "type": "string",
                        "description": "Language to use on Amazon.\n\n**Disclaimer**: each Amazon domain has a different set of supported languages. If you choose a language that is not supported by the domain, the scraper will use the default language of the domain."
                    },
                    "proxyCountry": {
                        "title": "Proxy country",
                        "enum": [
                            "AUTO_SELECT_PROXY_COUNTRY",
                            "AF",
                            "AL",
                            "DZ",
                            "AS",
                            "AD",
                            "AO",
                            "AI",
                            "AQ",
                            "AG",
                            "AR",
                            "AM",
                            "AW",
                            "AU",
                            "AT",
                            "AZ",
                            "BS",
                            "BH",
                            "BD",
                            "BB",
                            "BY",
                            "BE",
                            "BZ",
                            "BJ",
                            "BM",
                            "BT",
                            "BO",
                            "BQ",
                            "BA",
                            "BW",
                            "BV",
                            "BR",
                            "IO",
                            "VG",
                            "BN",
                            "BG",
                            "BF",
                            "BI",
                            "KH",
                            "CM",
                            "CA",
                            "CV",
                            "KY",
                            "CF",
                            "TD",
                            "CL",
                            "CN",
                            "CX",
                            "CC",
                            "CO",
                            "KM",
                            "CK",
                            "CR",
                            "HR",
                            "CU",
                            "CW",
                            "CY",
                            "CZ",
                            "CD",
                            "DK",
                            "DJ",
                            "DM",
                            "DO",
                            "TL",
                            "EC",
                            "EG",
                            "SV",
                            "GQ",
                            "ER",
                            "EE",
                            "ET",
                            "FK",
                            "FO",
                            "FJ",
                            "FI",
                            "FR",
                            "GF",
                            "PF",
                            "TF",
                            "GA",
                            "GM",
                            "GE",
                            "DE",
                            "GH",
                            "GI",
                            "GR",
                            "GL",
                            "GD",
                            "GP",
                            "GU",
                            "GT",
                            "GG",
                            "GW",
                            "GN",
                            "GY",
                            "HT",
                            "HM",
                            "HN",
                            "HK",
                            "HU",
                            "IS",
                            "IN",
                            "ID",
                            "IR",
                            "IQ",
                            "IE",
                            "IM",
                            "IL",
                            "IT",
                            "CI",
                            "JM",
                            "JP",
                            "JE",
                            "JO",
                            "KZ",
                            "KE",
                            "KI",
                            "XK",
                            "KW",
                            "KG",
                            "LA",
                            "LV",
                            "LB",
                            "LS",
                            "LR",
                            "LY",
                            "LI",
                            "LT",
                            "LU",
                            "MO",
                            "MG",
                            "MW",
                            "MY",
                            "MV",
                            "ML",
                            "MT",
                            "MH",
                            "MQ",
                            "MR",
                            "MU",
                            "YT",
                            "MX",
                            "FM",
                            "MD",
                            "MC",
                            "MN",
                            "ME",
                            "MS",
                            "MA",
                            "MZ",
                            "MM",
                            "NA",
                            "NR",
                            "NP",
                            "NL",
                            "NC",
                            "NZ",
                            "NI",
                            "NE",
                            "NG",
                            "NU",
                            "NF",
                            "KP",
                            "MK",
                            "MP",
                            "NO",
                            "OM",
                            "PK",
                            "PW",
                            "PS",
                            "PA",
                            "PG",
                            "PY",
                            "PE",
                            "PH",
                            "PN",
                            "PL",
                            "PT",
                            "PR",
                            "QA",
                            "CG",
                            "RE",
                            "RO",
                            "RU",
                            "RW",
                            "BL",
                            "SH",
                            "KN",
                            "LC",
                            "MF",
                            "PM",
                            "VC",
                            "WS",
                            "SM",
                            "ST",
                            "SA",
                            "SN",
                            "RS",
                            "SC",
                            "SL",
                            "SG",
                            "SX",
                            "SK",
                            "SI",
                            "SB",
                            "SO",
                            "ZA",
                            "GS",
                            "KR",
                            "SS",
                            "ES",
                            "LK",
                            "SD",
                            "SR",
                            "SJ",
                            "SZ",
                            "SE",
                            "CH",
                            "SY",
                            "TW",
                            "TJ",
                            "TZ",
                            "TH",
                            "TG",
                            "TK",
                            "TO",
                            "TT",
                            "TN",
                            "TR",
                            "TM",
                            "TC",
                            "TV",
                            "UM",
                            "VI",
                            "UG",
                            "UA",
                            "AE",
                            "GB",
                            "US",
                            "UY",
                            "UZ",
                            "VU",
                            "VA",
                            "VE",
                            "VN",
                            "WF",
                            "EH",
                            "YE",
                            "ZM",
                            "ZW",
                            "AX"
                        ],
                        "type": "string",
                        "description": "You can set proxy country to **avoid geo-blocking** and **access region-specific content**. Amazon shows you the products that can be shipped to your address based on the proxy you use.\n\n*By default*, the scraper **automatically selects** the **proxy country** based on the used Amazon website domain, ensuring low blocking rates and results relevant to the base domain.",
                        "default": "AUTO_SELECT_PROXY_COUNTRY"
                    },
                    "maxSearchPagesPerStartUrl": {
                        "title": "Maximum search pages (per start URL)",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Enter the maximum number of search pages to scrape for each start URL. E.g. only scrape the first 5 pages.\n\nThis field can also be used with the `maxItemsPerStartUrl` option, the scraper will stop after either one of these limits is reached."
                    },
                    "maxProductVariantsAsSeparateResults": {
                        "title": "Maximum product variants per product (as separate results)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Enter the maximum number of product variants you want to scrape per each product, outputted as separate results.\n\n**Please beware** that **you can already get** most of the **variant details** changes, in the **`variantDetails` field**, which is outputted by default.\n\nNote that this **will increase the number of requests** and **extend the scraping time**."
                    },
                    "maxOffers": {
                        "title": "Maximum scraped offers",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Enter the maximum number of offers you want to scrape per each product. This will let the scraper know when to stop.\n\nNote that this **will increase the number of requests** and **extend the scraping time**.",
                        "default": 0
                    },
                    "scrapeSellers": {
                        "title": "Scrape sellers",
                        "type": "boolean",
                        "description": "Enable this option to extract further information about sellers of the product. Scrapes the featured offer seller (main seller).\n\nThis option goes hand in hand with the `maxOffers` option bby scraping the seller of each offer. If you set `maxOffers` to 0, only the featured offer seller will be scraped.\n\nNote that this **will increase the number of requests** and **extend the scraping time**.",
                        "default": false
                    },
                    "useCaptchaSolver": {
                        "title": "Use Captcha solver (warning: see description)",
                        "type": "boolean",
                        "description": "If enabled the scraper will automatically solve captchas thrown by Amazon. This will decrease the amount of request retries and increase the speed of the scraper.<br><br>***IMPORTANT*** - This option works well only for the `'.com'` Amazon domain, but even for that one Amazon doesn't show a few product fields after solving a captcha (specifically: 'attributes', 'manufacturer attributes', and 'bestseller ranks')",
                        "default": false
                    },
                    "scrapeProductVariantPrices": {
                        "title": "Scrape product variant prices",
                        "type": "boolean",
                        "description": "Enable this option to extract prices of different variations of a product. Useful when you need prices for each variant.\n\nNote that this **will increase the number of requests** and **extend the scraping time**.",
                        "default": false
                    },
                    "scrapeProductDetails": {
                        "title": "Scrape product details",
                        "type": "boolean",
                        "description": "If enabled, the scraper will extract each found product from the category page in detail (this is the default behavior).\n\nIf disabled, the scraper will only extract the quick product information from the category page. Useful for faster and more lightweight searches for products.",
                        "default": true
                    },
                    "countryCode": {
                        "title": "Country code",
                        "enum": [
                            "AF",
                            "AX",
                            "AL",
                            "DZ",
                            "AS",
                            "AD",
                            "AO",
                            "AI",
                            "AG",
                            "AR",
                            "AM",
                            "AW",
                            "AU",
                            "AT",
                            "AZ",
                            "BS",
                            "BH",
                            "BD",
                            "BB",
                            "BY",
                            "BE",
                            "BZ",
                            "BJ",
                            "BM",
                            "BT",
                            "BO",
                            "BQ",
                            "BA",
                            "BW",
                            "BV",
                            "BR",
                            "IO",
                            "BN",
                            "BG",
                            "BF",
                            "BI",
                            "KH",
                            "CM",
                            "CA",
                            "CV",
                            "KY",
                            "CF",
                            "TD",
                            "CL",
                            "CN",
                            "CX",
                            "CC",
                            "CO",
                            "KM",
                            "CD",
                            "CG",
                            "CK",
                            "CR",
                            "CI",
                            "HR",
                            "CW",
                            "CY",
                            "CZ",
                            "DK",
                            "DJ",
                            "DM",
                            "DO",
                            "EC",
                            "EG",
                            "SV",
                            "GQ",
                            "ER",
                            "EE",
                            "ET",
                            "FK",
                            "FO",
                            "FJ",
                            "FI",
                            "FR",
                            "GF",
                            "PF",
                            "TF",
                            "GA",
                            "GM",
                            "GE",
                            "DE",
                            "GH",
                            "GI",
                            "GR",
                            "GL",
                            "GD",
                            "GP",
                            "GT",
                            "GG",
                            "GW",
                            "GN",
                            "GY",
                            "HT",
                            "HM",
                            "VA",
                            "HN",
                            "HK",
                            "HU",
                            "IS",
                            "IN",
                            "ID",
                            "IQ",
                            "IE",
                            "IM",
                            "IL",
                            "IT",
                            "JM",
                            "JP",
                            "JE",
                            "JO",
                            "KZ",
                            "KE",
                            "KI",
                            "XK",
                            "KW",
                            "KG",
                            "LA",
                            "LV",
                            "LB",
                            "LS",
                            "LR",
                            "LY",
                            "LI",
                            "LT",
                            "LU",
                            "MO",
                            "MK",
                            "MG",
                            "MW",
                            "MY",
                            "MV",
                            "ML",
                            "MT",
                            "MH",
                            "MQ",
                            "MR",
                            "MU",
                            "YT",
                            "MX",
                            "FM",
                            "MD",
                            "MC",
                            "MN",
                            "ME",
                            "MS",
                            "MA",
                            "MZ",
                            "MM",
                            "NA",
                            "NR",
                            "NP",
                            "AN",
                            "NL",
                            "NC",
                            "NZ",
                            "NI",
                            "NE",
                            "NG",
                            "NU",
                            "NF",
                            "NO",
                            "OM",
                            "PK",
                            "PW",
                            "PS",
                            "PA",
                            "PG",
                            "PY",
                            "PE",
                            "PH",
                            "PN",
                            "PL",
                            "PT",
                            "QA",
                            "KR",
                            "RE",
                            "RO",
                            "RU",
                            "RW",
                            "BL",
                            "SH",
                            "KN",
                            "LC",
                            "MF",
                            "PM",
                            "VC",
                            "WS",
                            "SM",
                            "ST",
                            "SA",
                            "SN",
                            "RS",
                            "SC",
                            "SL",
                            "SG",
                            "SX",
                            "SK",
                            "SI",
                            "SB",
                            "SO",
                            "ZA",
                            "GS",
                            "ES",
                            "LK",
                            "SR",
                            "SJ",
                            "SZ",
                            "SE",
                            "CH",
                            "TW",
                            "TJ",
                            "TZ",
                            "TH",
                            "TL",
                            "TG",
                            "TK",
                            "TO",
                            "TT",
                            "TN",
                            "TR",
                            "TM",
                            "TC",
                            "TV",
                            "UG",
                            "UA",
                            "AE",
                            "GB",
                            "UM",
                            "US",
                            "UY",
                            "UZ",
                            "VU",
                            "VE",
                            "VN",
                            "VG",
                            "WF",
                            "EH",
                            "YE",
                            "ZM",
                            "ZW"
                        ],
                        "type": "string",
                        "description": "The country code to use as the delivery location."
                    },
                    "zipCode": {
                        "title": "Zip code",
                        "type": "string",
                        "description": "The zip code to use as the delivery location. This is useful for more precise location settings, especially in larger countries."
                    },
                    "locationDeliverableRoutes": {
                        "title": "Location deliverable routes",
                        "type": "array",
                        "description": "The list of routes/page types, for which the deliverable location settings should be applied.\n- This is useful for speeding up the scraping process by not applying the location settings to all pages, for which you don't need the localized data for.\n- For example, you can set it to `['SEARCH', 'PRODUCT']` to apply the location settings only to search and product pages.\n- By default, all pages are included.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "PRODUCT",
                                "SEARCH",
                                "OFFERS"
                            ],
                            "enumTitles": [
                                "Product detail",
                                "Products search",
                                "Product offers"
                            ]
                        },
                        "default": [
                            "PRODUCT",
                            "SEARCH",
                            "OFFERS"
                        ]
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
