# Amazon Product Data Extractor (`extractlab/extractlab-amazon-product-extractor`) Actor

Extract complete Amazon.com product data (price, images, videos, ratings, specs, shipping, variants) by ASIN, product URL, or keyword search.

- **URL**: https://apify.com/extractlab/extractlab-amazon-product-extractor.md
- **Developed by:** [Extract Lab](https://apify.com/extractlab) (community)
- **Categories:** E-commerce, Automation
- **Stats:** 2 total users, 1 monthly users, 20.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.50 / 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.

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 Data Extractor

Extract clean, structured Amazon.com product data by ASIN, product URL, or keyword search — title, pricing, images, videos, ratings, specs, shipping, and variants, ready for spreadsheets, BI tools, or ML pipelines.

### 🔍 What this Actor does

Give it ASINs, Amazon URLs, or a search keyword, and it returns one clean JSON object per product — no API key, no manual copy-pasting, no Amazon developer account needed.

- **Extract by ASIN** — paste a list of ASINs, one per line
- **Extract by URL** — paste full Amazon product URLs, one per line
- **Find products by keyword** — give a keyword and a target count (up to 10,000); the Actor searches Amazon and fans out across price ranges once a plain search runs dry (Amazon caps a single search at ~300-400 results — this is how you get past that)

### 🌟 Key features

- **Three input modes** — ASIN, URL, or keyword, in one Actor
- **Rich product data** — title, brand, category, pricing, images, videos, ratings, review count, Best Sellers Rank, bullets, description, specifications, shipping, seller info, and labeled variants
- **Built to survive failures** — if one product fails, the run keeps going. Failed items are retried up to 3 times as a batch after the rest of the run finishes, with the actual failure reason (CAPTCHA blocked, bad HTTP status, network error) attached — never silently dropped
- **Never loses progress** — every successful product is saved the moment it's scraped, not batched at the end, so an interrupted run still keeps everything it already collected
- **Honest data** — only fields actually present on the page are returned (`null` or `[]` otherwise), never guessed. Sponsored products, "frequently bought together" add-ons, and related/recommended videos are excluded
- **US marketplace locked** — pricing, currency, and delivery estimates always reflect Amazon.com (US)

### 📥 Input parameters

| Field | Type | Used when | Description |
|---|---|---|---|
| `mode` | string | always | `asin_list`, `url_list`, or `keyword_search` |
| `asins` | array | mode = Extract by ASIN | One ASIN per line, e.g. `B0FBGC1V4K`. Max 10,000 |
| `urls` | array | mode = Extract by URL | One full Amazon product URL per line. Max 10,000 |
| `keyword` | string | mode = Find by keyword | Search term, e.g. `adjustable dumbbells` |
| `max_results` | integer | mode = Find by keyword | Target product count, up to 10,000. Default 50 |
| `skip_sponsored` | boolean | mode = Find by keyword | Exclude sponsored/ad tiles from search results. Default on |
| `proxyConfiguration` | object | optional | Off by default. Turning on Apify proxy can reduce CAPTCHA blocks on larger runs |

### 📤 Example output

One object like this per product:

```json
{
  "asin": "B0FBGC1V4K",
  "product_url": "https://www.amazon.com/dp/B0FBGC1V4K",
  "brand": "Upspeed",
  "title": "Adjustable Dumbbell Set for Women Men 7.5LB/10LB/15LB/20LB/25LB Each | Dumbbells Set of 2, Free Weight Set at Home Gym, Hand Weights with Locking/Metal Handle for Exercise Muscle Toning Rehab",
  "category": "Sports & Outdoors > Exercise & Fitness > Strength Training Equipment > Weights & Accessories > Dumbbells",
  "current_price": 125.99,
  "currency": "USD",
  "list_price": 139.99,
  "deal_type": "limited_time_deal",
  "discount_percent": 10.0,
  "images": [
    "https://m.media-amazon.com/images/I/6137n-XsH-L._AC_SL1500_.jpg",
    "https://m.media-amazon.com/images/I/61RR7ZRWvaL._AC_SL1500_.jpg"
  ],
  "videos": [
    "https://m.media-amazon.com/images/S/vse-vms-transcoding-artifact-us-east-1-prod/.../default.jobtemplate.hls.m3u8"
  ],
  "rating": 4.6,
  "review_count": 450,
  "bsr": [
    "#10,536 in Sports & Outdoors",
    "#65 in Exercise & Fitness Dumbbells"
  ],
  "bullets": [
    "ADJUSTABLE 5-IN-1 DESIGN...",
    "PREMIUM MATERIALS..."
  ],
  "description": "...",
  "specifications": {
    "Brand": "Upspeed",
    "Item Weight": "25 pounds"
  },
  "shipping": {
    "cost": null,
    "currency": "USD",
    "delivery_date": "2026-08-26",
    "fastest_delivery_date": null
  },
  "ships_from": "Amazon",
  "sold_by": "Upspeed",
  "availability": "In Stock",
  "variants": {
    "B0FBGC1V4K": { "Style": "20LB Each [40 LBS Total]", "Color": "Purple" },
    "B0D7C7G4KM": { "Style": "10LB Each [20 LBS Total]", "Color": "Purple" }
  }
}
```

Failed items land in a separate `failed-items` dataset instead of being dropped:

```json
{ "asin": "B0XXXXXXX", "reason": "Blocked by CAPTCHA" }
```

### 🚀 Quick start

1. Open the Actor and pick a **Mode**.
2. Fill in `asins`, `urls`, or `keyword` depending on the mode.
3. Click **Run**.
4. Go to the **Dataset** tab to preview, export as JSON/CSV/Excel, or connect via Apify integrations (Zapier, Make, webhooks, API).

### 📊 Popular use cases

- **Market & category research** — map out a niche, compare pricing and review volume across products
- **Price monitoring** — track price and discount changes on specific ASINs over time
- **Competitor analysis** — watch competitor listings, ratings, and Best Sellers Rank
- **SEO & content** — enrich buying guides and comparison tables with real product data
- **E-commerce & dropshipping** — discover and validate products before listing them
- **Data science** — feed clean, structured Amazon data into BI tools or ML pipelines

### 💡 Tips for best results

- Start small — 1-2 ASINs or a `max_results` of 10-20 — before scaling up a keyword search
- For keyword mode, a broader keyword surfaces more results before the Actor needs to fan out across price ranges
- Turn on Apify proxy in the input if you're running large batches and see failures pile up in `failed-items`

### 💬 Support

Found a bug or need a field this Actor doesn't cover? Reach out via Apify support or leave feedback on the Actor page — it's actively maintained based on real usage.

### 🔖 Tags

`Amazon Scraper` · `Amazon Product Scraper` · `Amazon Product Data` · `Amazon Price Tracker` · `E-commerce` · `Market Research` · `Competitor Analysis` · `Product Catalog` · `SEO Tools` · `Data Extraction` · `Web Scraping`

# Actor input Schema

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

Extract by ASIN, extract by URL, or find products by keyword first.

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

Used when Mode = Extract by ASIN. One ASIN per line, e.g. B0FBGC1V4K. Max 10,000.

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

Used when Mode = Extract by URL. One full Amazon product URL per line. Max 10,000.

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

Used when Mode = Find products by keyword.

## `max_results` (type: `integer`):

Max products to find and extract for keyword search.

## `skip_sponsored` (type: `boolean`):

Exclude sponsored/ad tiles from search results.

## `proxyConfiguration` (type: `object`):

Every request tries direct first (free), up to 5 times. Apify Proxy (automatic/datacenter, not residential) is only used as a fallback once all direct attempts are blocked, so it's on by default here but doesn't add cost unless a request actually needs it.

## Actor input object example

```json
{
  "mode": "asin_list",
  "asins": [
    "B0FBGC1V4K"
  ],
  "urls": [],
  "keyword": "",
  "max_results": 50,
  "skip_sponsored": true,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `products` (type: `string`):

No description

# 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("extractlab/extractlab-amazon-product-extractor").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("extractlab/extractlab-amazon-product-extractor").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).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 extractlab/extractlab-amazon-product-extractor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,extractlab/extractlab-amazon-product-extractor"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/r77Un0baosltBGgCz/builds/4YZ3AvZ2BZixcdbC2/openapi.json
