# Amazon Realtime Data Scraper (Cheapest) (`freecamp008/amazon-realtime-data-scraper-cheapest`)

Powerful Amazon web scraper that extracts comprehensive product data including titles, prices, ratings, reviews, images, and detailed specifications. Features advanced proxy rotation with residential IPs to avoid blocks and ensure reliable data collection.

- **URL**: https://beta-securitybyobscurity.apify.com/freecamp008/amazon-realtime-data-scraper-cheapest.md
- **Developed by:** [Camp8 fr0](https://beta-securitybyobscurity.apify.com/freecamp008) (community)
- **Categories:** E-commerce, Developer tools, Automation
- **Stats:** 1 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

$19.00/month + usage

To use this Actor, you pay a monthly rental fee to the developer. The rent is subtracted from your prepaid usage every month after the free trial period.
You also pay for the Apify platform usage, which gets cheaper the higher Apify subscription plan you have.

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

# README

## Amazon Product Scraper Actor

This Apify Actor scrapes Amazon products using Playwright with proxy support for better reliability and to avoid blocking.

### Features

- **Two modes of operation:**

  - **Keyword Search**: Search for products by keyword across multiple pages
  - **Product Details**: Extract detailed information for specific products using ASIN or URL

- **Proxy Support**: Configurable proxy settings using Apify's proxy service

- **Anti-blocking measures**: Realistic user agents and request patterns

- **Structured data output**: Clean, structured JSON output saved to Apify dataset

### Input Parameters

#### Required

- `mode`: Choose between "keyword" or "product-details"

#### For Keyword Search Mode

- `keyword`: Search term (default: "notebook")
- `pages`: Number of search result pages to scrape (1-10, default: 2)

#### For Product Details Mode

- `asin`: Amazon Standard Identification Number (10-character code)
- `url`: Alternative to ASIN - full Amazon product URL

#### Proxy Configuration

- `useApifyProxy`: Enable Apify's proxy service (recommended: true)
- `groups`: Proxy groups to use (default: \["RESIDENTIAL"])
- `countryCode`: Country code for proxy location (default: "US")

#### Performance Settings

- `maxConcurrency`: Maximum concurrent pages (1-5, default: 1)

### Output

#### Keyword Search Mode

Returns an array of products with:

- `title`: Product title
- `image`: Main product image URL
- `price`: Product price
- `reviews`: Rating and review count
- `link`: Product page URL
- `asin`: Product ASIN

#### Product Details Mode

Returns detailed product information including:

- Basic info (title, price, images, rating)
- Product specifications
- Availability status
- Brand information
- Product descriptions
- Technical specifications
- Dimensions and weight
- Best sellers rank
- Category breadcrumbs

### Usage Examples

#### Keyword Search

```json
{
  "mode": "keyword",
  "keyword": "wireless headphones",
  "pages": 3,
  "useApifyProxy": true,
  "proxyGroups": ["RESIDENTIAL"],
  "proxyCountryCode": "US"
}
```

#### Product Details

```json
{
  "mode": "product-details",
  "asin": "B0CHVS3MH1",
  "useApifyProxy": true,
  "proxyGroups": ["RESIDENTIAL"],
  "proxyCountryCode": "US"
}
```

Or using URL:

```json
{
  "mode": "product-details",
  "url": "https://www.amazon.com/dp/B0CHVS3MH1",
  "useApifyProxy": true,
  "proxyGroups": ["RESIDENTIAL"],
  "proxyCountryCode": "US"
}
```

### Best Practices

1. **Use proxies**: Always enable proxy configuration to avoid being blocked
2. **Reasonable concurrency**: Keep maxConcurrency low (1-2) to avoid overwhelming Amazon's servers
3. **Rate limiting**: The Actor includes built-in delays and respectful scraping practices
4. **Error handling**: The Actor handles common errors and retries failed requests

# Actor input Schema

## `mode` (type: `string`):

Choose between keyword search or product details extraction

## `keyword` (type: `string`):

Keyword to search for products (used when mode is 'keyword')

## `pages` (type: `integer`):

Number of search result pages to scrape (used when mode is 'keyword')

## `asin` (type: `string`):

Amazon Standard Identification Number for specific product (used when mode is 'product-details')

## `url` (type: `string`):

Full Amazon product URL (alternative to ASIN, used when mode is 'product-details')

## `useApifyProxy` (type: `boolean`):

Enable Apify's proxy service for better scraping reliability

## `proxyGroups` (type: `array`):

Proxy groups to use (RESIDENTIAL, DATACENTER, etc.)

## `proxyCountryCode` (type: `string`):

Country code for proxy location (e.g., US, GB, DE)

## `maxConcurrency` (type: `integer`):

Maximum number of concurrent pages to process

## Actor input object example

```json
{
  "mode": "keyword",
  "keyword": "notebook",
  "pages": 2,
  "useApifyProxy": true,
  "proxyGroups": [
    "RESIDENTIAL"
  ],
  "proxyCountryCode": "US",
  "maxConcurrency": 1
}
```

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("freecamp008/amazon-realtime-data-scraper-cheapest").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 = {}

# Run the Actor and wait for it to finish
run = client.actor("freecamp008/amazon-realtime-data-scraper-cheapest").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 '{}' |
apify call freecamp008/amazon-realtime-data-scraper-cheapest --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Amazon Realtime Data Scraper (Cheapest)",
        "description": "Powerful Amazon web scraper that extracts comprehensive product data including titles, prices, ratings, reviews, images, and detailed specifications. Features advanced proxy rotation with residential IPs to avoid blocks and ensure reliable data collection.",
        "version": "1.0",
        "x-build-id": "q8JFCLAfocgYlric1"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/freecamp008~amazon-realtime-data-scraper-cheapest/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-freecamp008-amazon-realtime-data-scraper-cheapest",
                "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/freecamp008~amazon-realtime-data-scraper-cheapest/runs": {
            "post": {
                "operationId": "runs-sync-freecamp008-amazon-realtime-data-scraper-cheapest",
                "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/freecamp008~amazon-realtime-data-scraper-cheapest/run-sync": {
            "post": {
                "operationId": "run-sync-freecamp008-amazon-realtime-data-scraper-cheapest",
                "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": [
                    "mode"
                ],
                "properties": {
                    "mode": {
                        "title": "Scraping Mode",
                        "enum": [
                            "keyword",
                            "product-details"
                        ],
                        "type": "string",
                        "description": "Choose between keyword search or product details extraction",
                        "default": "keyword"
                    },
                    "keyword": {
                        "title": "Search Keyword",
                        "type": "string",
                        "description": "Keyword to search for products (used when mode is 'keyword')",
                        "default": "notebook"
                    },
                    "pages": {
                        "title": "Number of Pages",
                        "minimum": 1,
                        "maximum": 10,
                        "type": "integer",
                        "description": "Number of search result pages to scrape (used when mode is 'keyword')",
                        "default": 2
                    },
                    "asin": {
                        "title": "Product ASIN",
                        "type": "string",
                        "description": "Amazon Standard Identification Number for specific product (used when mode is 'product-details')"
                    },
                    "url": {
                        "title": "Amazon Product URL",
                        "type": "string",
                        "description": "Full Amazon product URL (alternative to ASIN, used when mode is 'product-details')"
                    },
                    "useApifyProxy": {
                        "title": "Use Apify Proxy",
                        "type": "boolean",
                        "description": "Enable Apify's proxy service for better scraping reliability",
                        "default": true
                    },
                    "proxyGroups": {
                        "title": "Proxy Groups",
                        "type": "array",
                        "description": "Proxy groups to use (RESIDENTIAL, DATACENTER, etc.)",
                        "default": [
                            "RESIDENTIAL"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "proxyCountryCode": {
                        "title": "Proxy Country Code",
                        "type": "string",
                        "description": "Country code for proxy location (e.g., US, GB, DE)",
                        "default": "US"
                    },
                    "maxConcurrency": {
                        "title": "Max Concurrency",
                        "minimum": 1,
                        "maximum": 5,
                        "type": "integer",
                        "description": "Maximum number of concurrent pages to process",
                        "default": 1
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
