# Amazon Product Scraper - Details, Prices & Search by ASIN (`tenfoldfleet/amazon-product-scraper`) Actor

Get Amazon product details by ASIN, URL or keyword search: title, price, list price, availability, seller, Best Sellers Rank, rating, reviews, bullets, images and variants. Amazon ASIN and search scraper, no browser. $1.50 per 1,000 products, $0.80 per 1,000 search results; blocked items are free.

- **URL**: https://apify.com/tenfoldfleet/amazon-product-scraper.md
- **Developed by:** [Tenfold Fleet](https://apify.com/tenfoldfleet) (community)
- **Categories:** E-commerce, Marketing, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.50 / 1,000 products

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/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### What does Amazon Product Scraper do?

**Amazon Product Scraper** gets **Amazon product details by ASIN, product URL or keyword search** from [Amazon](https://www.amazon.com/) and returns clean, structured data: **title, price, list price, discount, availability, seller, ships from, Best Sellers Rank, rating, review count, "bought in past month", brand, bullet points, description, hi-res images, variants, categories, weight, dimensions and the full product details table**.

It works three ways in one actor:

- **Amazon ASIN scraper**: paste ASINs (or ISBN-10s for books) and get one product row per ASIN.
- **Amazon product details scraper**: paste product URLs from any supported marketplace.
- **Amazon search scraper**: type keywords (or paste a search URL with filters) and get the search result cards with **position, price, rating, reviews and sponsored flag**, or switch on full details for every product found.

It is an **Amazon product API** without an API key: plain HTTP requests, no browser, so it is fast and cheap: **$1.50 per 1,000 products** and **$0.80 per 1,000 search results**.

### Why use an Amazon scraper?

- 💸 **Price monitoring**: track prices, list prices, discounts and stock of your products or your competitors' every day.
- 📈 **Product and market research**: compare ratings, review counts, Best Sellers Rank and monthly sales signals ("10K+ bought in past month") across a category.
- 🔎 **Amazon SEO and rank tracking**: see where products appear in Amazon search results for a keyword, and which results are sponsored.
- 🛒 **Catalogue enrichment**: fill your product database with titles, bullets, images, brands, weights and dimensions by ASIN (plus UPC, model number and other details-table rows where Amazon lists them).
- 🏷️ **Seller and Buy Box checks**: find out who sells and ships each product (Amazon or a third-party seller, with seller ID).
- 🤖 **AI agents and data pipelines**: call it from the Apify API, MCP server, Make, Zapier or n8n and get clean JSON.

### What data can it extract?

| Field | Example |
|---|---|
| `asin`, `url`, `marketplace` | `B00FLYWNYQ`, product link, `amazon.com` |
| `title`, `brand`, `byline`, `authors` | `Instant Pot Duo 6 Qt 7-in-1...`, `Instant Pot` |
| `price`, `currency`, `listPrice`, `discountPercent` | `79`, `USD`, `109.99`, `28` |
| `availability`, `inStock` | `In Stock`, `true` |
| `seller`, `sellerId`, `shipsFrom` | `Amazon.com`, `ATVPDKIKX0DER`, `Amazon.com` |
| `rating`, `reviewCount` | `4.7`, `186274` |
| `boughtInPastMonth`, `badge` | `30K+ bought in past month`, `Amazon's Choice` |
| `bestSellersRank` | `[{ "rank": 1, "category": "Electric Pressure Cookers" }]` |
| `categories` | breadcrumb, e.g. `["Home & Kitchen", "Kitchen & Dining", ...]` |
| `bullets`, `description` | "About this item" bullet points and product description |
| `mainImage`, `images` | hi-res image URLs |
| `parentAsin`, `variantAttributes`, `variants` | all variants with their ASIN and options (size, color...) |
| `weight`, `dimensions`, `dateFirstAvailable` | `14.6 pounds`, `12.2"D x 13.38"W x 12.48"H` |
| `details` | every row of the product details table (model number, UPC, manufacturer...) |
| Search cards: `searchKeyword`, `position`, `page`, `isSponsored`, `brand` | `coffee grinder`, `1`, `1`, `false` |

### How to scrape Amazon products

1. Click **Try for free**.
2. Add **ASINs**, **product URLs**, or **search keywords** (or mix them).
3. Pick the **marketplace** for ASINs and keywords (amazon.com by default; URLs keep their own marketplace).
4. For keywords, set **max results per search**, and switch on **Get full product details for search results** if you need the full product page data for each result.
5. Click **Start** and download the data as **JSON, CSV, Excel or HTML**, or fetch it through the API.

### How much does it cost to scrape Amazon?

| Result | Price | Per 1,000 |
|---|---|---|
| Product with full details (ASIN, URL, or search result with details on) | $0.0015 | **$1.50** |
| Search result card (details off) | $0.0008 | **$0.80** |
| Run start | $0.00005 | |

There is **no start fee beyond $0.00005 per run**, so small lookups of a few ASINs cost a fraction of a cent. You only pay for products that loaded with a title and a price or availability. Products Amazon blocked after all retries, ASINs that don't exist (404), invalid ASINs or URLs, and searches with no results (Amazon then shows only unrelated sponsored ads, which are not returned) are written to the dataset with an `error` field and are **never charged**. Set a maximum cost per run in the run options, or **Max results in total**, and the actor stops cleanly when it is reached.

### Input

```json
{
    "asins": ["B00FLYWNYQ", "0735211299"],
    "productUrls": ["https://www.amazon.ca/dp/B00FLYWNYQ", "https://www.amazon.com/s?k=coffee+grinder&rh=p_72%3A1248882011"],
    "searchKeywords": ["wireless earbuds"],
    "marketplace": "com",
    "maxResultsPerSearch": 48,
    "fetchDetailsForSearch": false,
    "maxItems": 0
}
```

### Output

A product row:

```json
{
    "type": "product",
    "asin": "B00FLYWNYQ",
    "url": "https://www.amazon.com/dp/B00FLYWNYQ",
    "marketplace": "amazon.com",
    "title": "Instant Pot Duo 6 Qt 7-in-1 Electric Pressure Cooker, Stainless Steel",
    "brand": "Instant Pot",
    "price": 79,
    "currency": "USD",
    "listPrice": 109.99,
    "discountPercent": 28,
    "availability": "In Stock",
    "inStock": true,
    "seller": "Amazon.com",
    "sellerId": "ATVPDKIKX0DER",
    "shipsFrom": "Amazon.com",
    "rating": 4.7,
    "reviewCount": 186274,
    "boughtInPastMonth": "30K+ bought in past month",
    "bestSellersRank": [{ "rank": 14, "category": "Kitchen & Dining" }, { "rank": 1, "category": "Electric Pressure Cookers" }],
    "categories": ["Home & Kitchen", "Kitchen & Dining", "Small Appliances", "Electric Pressure Cookers"],
    "bullets": ["7 Cooking Functions: Pressure cook, slow cook, sauté, steam, make rice, yogurt..."],
    "mainImage": "https://m.media-amazon.com/images/I/71MLaYtMFOL._AC_SL1500_.jpg",
    "images": ["https://m.media-amazon.com/images/I/71MLaYtMFOL._AC_SL1500_.jpg"],
    "parentAsin": "B0GXKV5FHP",
    "variantAttributes": { "Size": "6 Quarts" },
    "variants": [{ "asin": "B06Y1YD5W7", "selected": false, "attributes": { "Size": "3 Quarts" } }],
    "weight": "14.6 pounds",
    "dimensions": "12.2\"D x 13.38\"W x 12.48\"H",
    "dateFirstAvailable": null,
    "details": { "Model Number": "DUO 60", "UPC": "810028585201", "Manufacturer": "Instant Pot" },
    "error": null,
    "scrapedAt": "2026-10-10T09:00:00.000Z"
}
```

A search result card:

```json
{
    "type": "search-result",
    "searchKeyword": "wireless earbuds",
    "position": 4,
    "page": 1,
    "asin": "B0CRTR3PMF",
    "title": "Soundcore P30i by Anker Noise Cancelling Earbuds, Hands-Free Viewing",
    "brand": null,
    "url": "https://www.amazon.com/dp/B0CRTR3PMF",
    "price": 24.99,
    "currency": "USD",
    "listPrice": 49.99,
    "rating": 4.3,
    "reviewCount": 43725,
    "isSponsored": false,
    "badge": null,
    "boughtInPastMonth": "10K+ bought in past month",
    "mainImage": "https://m.media-amazon.com/images/I/51013C6va8L._AC_UY218_.jpg",
    "marketplace": "amazon.com"
}
```

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel. Failed inputs appear as rows with an `error` field, for example `{ "asin": "B0ZZZZZZZ1", "error": "Product not found (404): check the ASIN and the marketplace." }`.

### Tips

- **Search cards are about half the price of full products.** Use them for rank tracking and price scans; switch on full details only when you need seller, BSR, bullets or variants.
- Amazon shows **16 to 60 results per search page**; the actor pages through until it reaches **Max results per search**.
- Paste a **search URL** to keep Amazon's filters (category, price range, brand) in your search.
- Missing fields are `null`: many products have no list price, no "bought in past month" badge, or no product details table.
- Prices are shown in the marketplace's own currency (`currency`). Prices and availability are what Amazon shows to a visitor in the United States; an item with no price because it doesn't ship there (or has no Buy Box offer) is a free error row, not a charged result.
- Schedule the actor daily on the same ASINs to build a **price history**.

### FAQ

#### Which Amazon marketplaces are supported?

amazon.com is the default and the most reliable, for both product pages and search. amazon.ca, amazon.com.mx and amazon.co.jp work for product pages and search as well. amazon.es works for product pages; its search pages sometimes need several retries. amazon.it works for product pages, but its search pages are often blocked. Product URLs from other marketplaces (amazon.co.uk, amazon.de, amazon.fr, amazon.in, amazon.com.au...) are accepted on a best-effort basis: these sites block automated traffic much more often or hide prices from visitors outside their country, and those items come back as free error rows.

#### What if Amazon blocks a request?

Amazon answers some automated requests with a robot check or an error page. The actor detects that and retries on a fresh IP address up to 5 times. If a product is still blocked, it returns a free error row so you can retry it later. You never pay for blocked items.

#### Do I need an Amazon account, API key or proxy?

No. The actor reads public product pages without logging in and uses Apify's datacenter proxy by default.

#### Does it scrape reviews?

It returns the average rating and review count. It does not collect individual reviews or any reviewer data.

#### Can I use it from code or AI agents?

Yes, through the Apify API, the JavaScript or Python client, or the Apify MCP server. A typical agent call is "get the price and Best Sellers Rank of ASIN B00FLYWNYQ".

#### Support

Found a product page that doesn't parse? Open an issue in the **Issues** tab with the ASIN and marketplace.

This actor extracts only publicly available product information from Amazon product and search pages. It does not log in, solve captchas or collect personal data. It is not affiliated with or endorsed by Amazon. Amazon is a trademark of Amazon.com, Inc. or its affiliates.

### More tools from Tenfold Fleet

| Actor | Price |
|---|---|
| [AliExpress Products Scraper - Search, Prices & Sold Count](https://apify.com/tenfoldfleet/aliexpress-search-scraper) | $1.5 per 1,000 (product) |
| [ATS Jobs Scraper - Greenhouse, Lever, Ashby & 5 More](https://apify.com/tenfoldfleet/ats-jobs-scraper) | $2 per 1,000 (job posting) |
| [Bilibili Scraper - Videos, Comments, Danmaku & Search](https://apify.com/tenfoldfleet/bilibili-scraper) | $5 per 1,000 (video or comment) |
| [Contact Details Scraper - Website Email & Phone Extractor](https://apify.com/tenfoldfleet/company-contact-finder) | $8 per 1,000 (website with contacts) |
| [Google Ads Transparency Center Scraper - Competitor Ads by Site](https://apify.com/tenfoldfleet/google-ads-transparency-scraper) | $1 per 1,000 (ad) |
| [Google News Scraper - Articles, Real URLs & Full Text](https://apify.com/tenfoldfleet/google-news-scraper) | $2 per 1,000 (article) |
| [Google Trends Scraper - Interest, Regions & Related Queries](https://apify.com/tenfoldfleet/google-trends-scraper) | $2 per 1,000 (keyword) |
| [Keyword Search Volume, CPC & Difficulty Checker (Bulk)](https://apify.com/tenfoldfleet/keyword-search-volume) | $5 per 1,000 (keyword with data) |
| [Remote Jobs Aggregator - RemoteOK, WWR, Himalayas & 4 more](https://apify.com/tenfoldfleet/remote-jobs-aggregator) | $1.2 per 1,000 (unique remote job) |
| [SEEK Job Scraper - Australia, NZ, Jobstreet & JobsDB](https://apify.com/tenfoldfleet/seek-job-scraper) | $0.9 per 1,000 (job listing) |
| [SEO Audit Tool - Technical On-Page SEO Checker & Score](https://apify.com/tenfoldfleet/seo-audit-tool) | $20 per 1,000 (page audit) |
| [Shopify Products Scraper - Prices, Variants & Stock](https://apify.com/tenfoldfleet/shopify-products-scraper) | $0.8 per 1,000 (product) |
| [Shopify App & Theme Detector - Store Analyzer & Contacts](https://apify.com/tenfoldfleet/shopify-store-analyzer) | $8 per 1,000 (shopify store) |
| [Sitemap URL Extractor - All URLs from sitemap.xml & robots.txt](https://apify.com/tenfoldfleet/sitemap-url-extractor) | $0.4 per 1,000 (url) |
| [Technology Detector - Wappalyzer & BuiltWith Alternative](https://apify.com/tenfoldfleet/tech-stack-detector) | $10 per 1,000 (website) |
| [URL to Markdown - Web Page to LLM-Ready Text for AI Agents](https://apify.com/tenfoldfleet/url-to-markdown) | $1 per 1,000 (page) |
| [Workday Jobs Scraper - myworkdayjobs.com API with Salary](https://apify.com/tenfoldfleet/workday-jobs-scraper) | $1.5 per 1,000 (job posting) |
| [YouTube Comments Scraper - Replies, Likes & Sort by Newest](https://apify.com/tenfoldfleet/youtube-comments-scraper) | $0.6 per 1,000 (comment) |
| [YouTube Shorts Scraper - Views, Likes & Hashtags by Channel](https://apify.com/tenfoldfleet/youtube-shorts-scraper) | $2 per 1,000 (short) |
| [YouTube Transcript Scraper - Captions & Subtitles API](https://apify.com/tenfoldfleet/youtube-transcript-scraper) | $3 per 1,000 (transcript) |

# Actor input Schema

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

Amazon product IDs (10 letters and digits, e.g. B00FLYWNYQ; ISBN-10 for books). Each ASIN is looked up on the marketplace selected below. One ASIN = one product row.

## `productUrls` (type: `array`):

Amazon product page URLs (https://www.amazon.com/dp/B00FLYWNYQ or any URL containing /dp/ASIN) or search result URLs (https://www.amazon.com/s?k=coffee+grinder, filters kept). The marketplace is taken from each URL.

## `searchKeywords` (type: `array`):

Search Amazon like a shopper and get the result cards (title, price, rating, reviews, sponsored flag) for each keyword, on the marketplace selected below.

## `marketplace` (type: `string`):

Amazon site used for ASINs and search keywords. URLs always use their own marketplace (other Amazon sites such as amazon.co.uk or amazon.de are accepted as URLs on a best-effort basis). Blocked inputs return a free error row.

## `maxResultsPerSearch` (type: `integer`):

How many search result cards to collect per keyword or search URL. Amazon shows 16-60 per page; the actor pages through results until it has enough.

## `fetchDetailsForSearch` (type: `boolean`):

Off: each search result is a cheap search card. On: the actor also opens every product page found and returns full details (seller, Best Sellers Rank, bullets, images, variants) charged as a product instead of a search card.

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

Stop after this many charged results across all inputs. 0 = no limit.

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

Apify datacenter proxy with a fresh IP for every retry (default, recommended). Residential proxy groups are ignored.

## Actor input object example

```json
{
  "asins": [
    "B00FLYWNYQ",
    "0735211299",
    "B0CRTR3PMF"
  ],
  "marketplace": "com",
  "maxResultsPerSearch": 48,
  "fetchDetailsForSearch": false,
  "maxItems": 0,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `results` (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 = {
    "asins": [
        "B00FLYWNYQ",
        "0735211299",
        "B0CRTR3PMF"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("tenfoldfleet/amazon-product-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 = {
    "asins": [
        "B00FLYWNYQ",
        "0735211299",
        "B0CRTR3PMF",
    ],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("tenfoldfleet/amazon-product-scraper").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 '{
  "asins": [
    "B00FLYWNYQ",
    "0735211299",
    "B0CRTR3PMF"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call tenfoldfleet/amazon-product-scraper --silent --output-dataset

```

## MCP server setup

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

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/3Tur83T6ZFUge44qn/builds/PFbTG5hTAwlGuUBng/openapi.json
