# Cheap Amazon Scraper: Extract Products, Offers, Prices (`fayoussef/cheap-amazon-scraper`) Actor

Fast, reliable Amazon scraper. Extract product details, search results, seller offers and raw HTML from 21 marketplaces with geo-targeting and ZIP-level pricing.

- **URL**: https://apify.com/fayoussef/cheap-amazon-scraper.md
- **Developed by:** [youssef farhan](https://apify.com/fayoussef) (community)
- **Categories:** E-commerce, Automation, MCP servers
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.50 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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

## Amazon Product Scraper — Search, ASIN Details, Offers & Prices, 21 Marketplaces ($0.50 / 1,000 Results) 🛒

**Amazon Scraper is a fast, pay-as-you-go API tool that extracts structured Amazon data — product details, search-result rankings, seller (Buy Box) offers, and raw HTML — from 21 Amazon marketplaces with ZIP-level pricing and geo-targeting.** Results come back flat and JSON-ready for spreadsheets, dashboards, price-monitoring, and data pipelines. Pricing is simple: **$0.50 per 1,000 results.**

> ### 🔑 First time here? You need a free API key.
>
> **[👉 Click here to create your FREE account → get 1,000 requests/month, no credit card](https://scrape.do/?fpr=automationbyexperts)**
>
> It takes 30 seconds. Copy the API token from your dashboard, paste it into the **API Key** field, and you're scraping.

**In one line:** point the actor at keywords, ASINs, or Amazon URLs → get clean rows of price, rating, stock, seller, and Buy Box data you can act on.

***

### ✨ What you can scrape

| Mode | Input | What you get |
|------|-------|--------------|
| 🔍 **Search results** | Keywords | Ranked products: ASIN, title, price, rating, reviews, Prime, sponsored flag, badges, delivery |
| 📦 **Product details** | ASINs | Full PDP: price & list price, brand, rating, stock, seller, images, shipping, best-seller ranks, specs |
| 💰 **Seller offers** | ASINs | Every offer on the listing: merchant, condition, price, shipping, FBA, Buy Box winner |
| 📄 **Raw HTML** | Amazon URLs | Complete geo-targeted HTML for custom parsing of any page type |

### 🚀 Key features

- **💸 Live cost & quota check on every run** — before scraping, the actor reports your available concurrency and how many requests remain this month, plus an estimate of what the job will cost. No surprises.
- **🌍 21 marketplaces** — US, UK, DE, FR, IT, ES, CA, JP, IN, AU, and more.
- **📍 ZIP-level accuracy** — set a postal code to lock delivery location for true local pricing & stock.
- **⚡ Smart concurrency** — automatically caps parallelism to your plan's available lanes so you never get rate-limited.
- **🔗 One-click enrichment** — optionally expand every search result into its full product page.
- **🛡️ Premium proxy mode** — flip on residential/mobile proxies for the toughest pages.
- **🧯 Safety caps** — set a max-items limit or auto-stop when your quota can't cover the job.

### 📥 Input example

```json
{
  "apiKey": "YOUR_API_KEY",
  "mode": "search",
  "keywords": ["laptop stand", "wireless mouse"],
  "maxPages": 2,
  "geocode": "US",
  "zipcode": "10001",
  "enrichWithProductDetails": false,
  "maxConcurrency": 5
}
```

Scrape specific products instead:

```json
{
  "apiKey": "YOUR_API_KEY",
  "mode": "product",
  "asins": ["B0C7BKZ883", "B0DGJ7HYG1"],
  "geocode": "US"
}
```

### 📤 Output samples

Every row is **flat** (no nested objects) — ready for the dataset table, CSV, Excel, or JSON export. Below are real records straight from the API.

#### 🔍 Search result (with `enrichWithProductDetails` on)

When enrichment is enabled, every search hit is merged with its full product page — brand, list price, discount, stock, best-seller rank, images and feature bullets — all flattened onto one row.

```json
{
  "_type": "product",
  "asin": "B004YAVF8I",
  "title": "Logitech M185 Wireless Mouse, 2.4GHz with USB Mini Receiver, 12-Month Battery Life, 1000 DPI Optical Tracking, Ambidextrous, Compatible with PC, Mac, Laptop - Swift Grey",
  "brand": "Logitech",
  "price": 13.9,
  "currency": "USD",
  "list_price": 17.99,
  "discount_percent": 22.7,
  "rating": 4.5,
  "rating_stars": 5,
  "ratings_total": 42527,
  "reviews_count": 42500,
  "is_prime": null,
  "is_sponsored": false,
  "badge": "Overall Pick",
  "sales_volume": "10K+ bought in past month",
  "availability": "In Stock",
  "sold_by": "Amazon.com",
  "delivery_date": "Tomorrow, Jun 23",
  "delivery_free": true,
  "position": 3,
  "image": "https://m.media-amazon.com/images/I/51WN5aXZWIL._AC_UY218_.jpg",
  "keyword": "wireless mouse",
  "page": 1,
  "geocode": "US",
  "url": "https://www.amazon.com/dp/B004YAVF8I",
  "other_sellers_count": 20,
  "best_seller_rank": 1,
  "best_seller_category": "Computer Mice",
  "climate_pledge_friendly": true,
  "images_count": 10,
  "image_urls": "https://m.media-amazon.com/images/I/51WN5aXZWIL._AC_SL1500_.jpg | https://m.media-amazon.com/images/I/61Ti5DDDOYL._AC_SL1500_.jpg | ...8 more",
  "features": "Compact Mouse: comfortable contoured shape... | Durable and Reliable: up to 1 year of battery life... | Universal Compatibility: Windows PC, Mac, or laptop... | Plug and Play Simplicity...",
  "variants_count": 8
}
```

> Without enrichment you still get the core search fields (`asin`, `title`, `price`, `currency`, `rating`, `rating_stars`, `reviews_count`, `is_prime`, `is_sponsored`, `badge`, `sales_volume`, `delivery_date`, `position`, `image`, `url`) — just without the merged product-page columns.

#### 📦 Product details (mode: `product`)

```json
{
  "_type": "product",
  "asin": "B0C7BKZ883",
  "title": "Adjustable Laptop Stand for Desk, Metal Foldable Laptop Riser Holder, Portable Desktop Book Stands, Ventilated Cooling Computer Notebook Stand Compatible with 10-15.6” Laptops",
  "brand": "Gogoonike",
  "price": 16.99,
  "currency": "USD",
  "list_price": 17.99,
  "discount_percent": 5.6,
  "rating": 4.6,
  "ratings_total": 3918,
  "is_prime": true,
  "has_buy_box": true,
  "availability": "In Stock",
  "sold_by": "Tonmom Tech",
  "max_quantity": 999,
  "other_sellers_count": 2,
  "sales_volume": "9K+ bought in past month",
  "best_seller_rank": 551,
  "best_seller_category": "Office Products",
  "climate_pledge_friendly": true,
  "images_count": 7,
  "videos_count": 6,
  "variants_count": 2,
  "image": "https://m.media-amazon.com/images/I/71Api8I7QML._AC_SL1500_.jpg",
  "image_urls": "https://m.media-amazon.com/images/I/71Api8I7QML._AC_SL1500_.jpg | ...6 more",
  "features": "【Adjustable & Ergonomic】 ... | 【Sturdy & Protective】 ... | 【Heat Dissipation】 ... | 【Portable & Foldable】 ... | 【Broad Compatibility】 ...",
  "geocode": "US",
  "url": "https://www.amazon.com/dp/B0C7BKZ883"
}
```

#### 💰 Seller offer (mode: `offers`)

One row **per offer** on the listing — perfect for Buy Box monitoring and repricing.

```json
{
  "_type": "offer",
  "asin": "B0DGJ7HYG1",
  "condition": "New",
  "seller": "Amazon.com",
  "seller_id": "ATVPDKIKX0DER",
  "price": 148.99,
  "currency": "USD",
  "list_price": 179,
  "discount_percent": 16.77,
  "shipping_cost": 0,
  "ships_from": null,
  "fulfilled_by_amazon": true,
  "buy_box_winner": true,
  "is_prime": true,
  "delivery_date": "Saturday, June 27",
  "quantity": 3,
  "geocode": "US",
  "url": "https://www.amazon.com/dp/B0DGJ7HYG1"
}
```

#### 📄 Raw HTML (mode: `raw_html`)

```json
{
  "_type": "raw_html",
  "url": "https://www.amazon.com/dp/B0C7BKZ883",
  "geocode": "US",
  "html": "<!doctype html><html lang=\"en-us\">... full geo-targeted page source ..."
}
```

#### 📋 Full field reference

| Field | Type | Appears in | Description |
|-------|------|-----------|-------------|
| `_type` | string | all | `product`, `offer`, or `raw_html` |
| `asin` | string | all | 10-char Amazon product ID |
| `title` | string | product | Product name |
| `brand` | string | product | Manufacturer / brand |
| `price` | number | product, offer | Current price |
| `currency` | string | product, offer | ISO currency code |
| `list_price` | number | product, offer | Original / strike-through price |
| `discount_percent` | number | product, offer | Computed % off list price |
| `rating` | number | product | Average star rating (0–5) |
| `rating_stars` | number | product (search) | Rounded star bucket |
| `ratings_total` | number | product | Total number of ratings |
| `reviews_count` | number | product (search) | Review count, parsed to integer |
| `is_prime` | boolean | product, offer | Prime eligible |
| `is_sponsored` | boolean | product (search) | Sponsored/ad placement |
| `has_buy_box` | boolean | product (PDP) | Seller holds the Buy Box |
| `badge` | string | product (search) | e.g. "Overall Pick", "Best Seller" |
| `sales_volume` | string | product | e.g. "10K+ bought in past month" |
| `availability` | string | product | Stock status text |
| `sold_by` | string | product | Current seller name |
| `max_quantity` | number | product (PDP) | Max units purchasable |
| `other_sellers_count` | number | product | Number of competing sellers |
| `best_seller_rank` | number | product | Top best-seller rank |
| `best_seller_category` | string | product | Category of that rank |
| `climate_pledge_friendly` | boolean | product | Climate Pledge badge |
| `images_count` | number | product | Number of product images |
| `videos_count` | number | product (PDP) | Number of product videos |
| `variants_count` | number | product | Number of variations |
| `image` | string | product | Main image URL |
| `image_urls` | string | product | Up to 10 hi-res image URLs, `|`-joined |
| `features` | string | product | "About this item" bullets, `|`-joined |
| `delivery_date` | string | product, offer | Estimated delivery |
| `delivery_free` | boolean | product (search) | Free delivery available |
| `position` | number | product (search) | Rank position on the results page |
| `keyword` | string | product (search) | Search term that produced the row |
| `page` | number | product (search) | Results page number |
| `condition` | string | offer | New / Used / Refurbished |
| `seller` | string | offer | Merchant display name |
| `seller_id` | string | offer | Amazon seller ID |
| `shipping_cost` | number | offer | Shipping price |
| `ships_from` | string | offer | Origin location |
| `fulfilled_by_amazon` | boolean | offer | FBA |
| `buy_box_winner` | boolean | offer | This offer currently wins the Buy Box |
| `quantity` | number | offer | Units available from this seller |
| `html` | string | raw\_html | Full page source |
| `geocode` | string | all | Marketplace country code |
| `url` | string | all | Canonical product URL |

### 💵 How much does it cost?

**This actor costs $0.50 per 1,000 results** — you pay only for the data you keep. There is no monthly platform fee and no minimum.

Here's how usage maps to cost:

| You scrape | Results | Cost |
|------------|---------|------|
| 1,000 products or offers | 1,000 | **$0.50** |
| 10,000 search rows | 10,000 | **$5.00** |
| 100,000 rows | 100,000 | **$50.00** |

Each successful request uses **1 request** from your API quota. Premium proxy mode (`superProxy`) costs **10×** on the API side, and search enrichment fetches one extra request per product. The actor prints a cost estimate before every run and stores the live numbers in the run's key-value store under `ACCOUNT_STATUS`, so there are no surprises.

**Need more volume or concurrency?** [Upgrade your plan here →](https://scrape.do/?fpr=automationbyexperts)

### ❓ FAQ

**What is this Amazon Scraper?** It's an API-based tool that turns Amazon keywords, ASINs, or URLs into clean, structured rows of product data — price, rating, reviews, stock, seller, Buy Box winner, best-seller rank, and more — across 21 marketplaces.

**How much does the Amazon Scraper cost?** It costs **$0.50 per 1,000 results**. You pay only for the rows you get — no monthly fee and no minimum.

**What can I use it for?** Common use cases are price monitoring and repricing, Buy Box tracking, competitor and catalog research, market/keyword analysis, review tracking, and building product datasets for dashboards or machine-learning pipelines.

**Do I need my own API key?** Yes — it's free to start ([get one here](https://scrape.do/?fpr=automationbyexperts)) and keeps the scraper fast and reliable for you alone.

**Is scraping public Amazon data allowed?** This actor only collects publicly available product information. You are responsible for complying with applicable laws and Amazon's terms in your jurisdiction.

**Which countries and marketplaces are supported?** 21 Amazon marketplaces: US, GB, DE, FR, IT, ES, CA, JP, IN, AU, NL, SE, PL, BR, MX, AE, SA, TR, SG, EG, BE.

**Can I get true local prices?** Yes — set a `zipcode` to lock delivery to a specific postal code, so prices, stock, and delivery estimates match what a real shopper in that location sees.

***

⭐ Found this useful? A rating helps other people discover it. **[Get your free API key and start scraping →](https://scrape.do/?fpr=automationbyexperts)**

# Actor input Schema

## `apiKey` (type: `string`):

Paste your API key here to power the scraper.<br><br>👉 <b><a href="https://scrape.do/?fpr=automationbyexperts" target="_blank" rel="noopener">Don't have a key yet? Click here to create a FREE account and get 1,000 free requests/month →</a></b><br><br>It takes 30 seconds, no credit card required. Copy the API token from your dashboard and paste it above.

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

Choose the type of Amazon data to extract.

## `keywords` (type: `array`):

List of keywords to search on Amazon. Used when mode is 'Search results'.

## `maxPages` (type: `integer`):

How many result pages to fetch for each keyword (≈16 products per page). Each page costs 1 request.

## `enrichWithProductDetails` (type: `boolean`):

For each product found in search, fetch its full product page (price history, specs, images, stock). ⚠️ Uses 1 extra request per product.

## `asins` (type: `array`):

List of 10-character Amazon ASINs (e.g. B0C7BKZ883). Used when mode is 'Product details' or 'Seller offers'.

## `urls` (type: `array`):

List of full Amazon URLs to fetch as raw HTML. Used when mode is 'Raw HTML'.

## `geocode` (type: `string`):

Two-letter country code of the Amazon marketplace to target.

## `zipcode` (type: `string`):

Optional. Lock delivery location for location-specific pricing & stock (e.g. 10001 for New York).

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

Optional. ISO 639-1 language code in uppercase (e.g. EN, ES, DE).

## `superProxy` (type: `boolean`):

Enable residential/mobile proxies for the highest success rate on hard-to-scrape pages. ⚠️ Costs 10x requests per call.

## `maxItems` (type: `integer`):

Hard limit on the total number of items pushed to the dataset. 0 = no limit.

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

Parallel requests. Automatically capped to your plan's available concurrency at runtime.

## `stopOnInsufficientCredits` (type: `boolean`):

If enabled, the run aborts early when your remaining monthly requests can't cover the job, instead of partially completing.

## Actor input object example

```json
{
  "mode": "search",
  "keywords": [
    "laptop stand",
    "wireless mouse"
  ],
  "maxPages": 1,
  "enrichWithProductDetails": true,
  "asins": [
    "B0C7BKZ883"
  ],
  "urls": [
    "https://www.amazon.com/dp/B0C7BKZ883"
  ],
  "geocode": "US",
  "superProxy": false,
  "maxItems": 0,
  "maxConcurrency": 5,
  "stopOnInsufficientCredits": false
}
```

# Actor output Schema

## `results` (type: `string`):

The main dataset — one flat row per product or offer, ready for table, CSV or Excel export.

## `accountStatus` (type: `string`):

JSON snapshot of available concurrency, remaining monthly requests and the estimated cost of this run.

# 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 = {
    "keywords": [
        "laptop stand",
        "wireless mouse"
    ],
    "asins": [
        "B0C7BKZ883"
    ],
    "urls": [
        "https://www.amazon.com/dp/B0C7BKZ883"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("fayoussef/cheap-amazon-scraper").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 = {
    "keywords": [
        "laptop stand",
        "wireless mouse",
    ],
    "asins": ["B0C7BKZ883"],
    "urls": ["https://www.amazon.com/dp/B0C7BKZ883"],
}

# Run the Actor and wait for it to finish
run = client.actor("fayoussef/cheap-amazon-scraper").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 '{
  "keywords": [
    "laptop stand",
    "wireless mouse"
  ],
  "asins": [
    "B0C7BKZ883"
  ],
  "urls": [
    "https://www.amazon.com/dp/B0C7BKZ883"
  ]
}' |
apify call fayoussef/cheap-amazon-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/tYtxPces8QWtvQ2vS/builds/iAp6F3pDZODYuAyw1/openapi.json
