# 🛒 Amazon Product Scraper - Prices, ASIN & 10 Marketplaces (`renzomacar/amazon-products`) Actor

Amazon product scraper by search or URL with no API key: titles, live prices, ratings, review counts, ASIN, seller, brand, Prime status and stock across 10 marketplaces (US, UK, DE, FR and more). No login, no setup. For price monitoring, dropshipping and product research. Pay only per product.

- **URL**: https://apify.com/renzomacar/amazon-products.md
- **Developed by:** [Renzo Madueno](https://apify.com/renzomacar) (community)
- **Categories:** E-commerce, Developer tools
- **Features:** Limited permissions
- **Stats:** 41 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.32 / 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/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

## 🛒 Amazon Product Scraper — Prices, Ratings & ASINs, No API Key

Scrape Amazon search results and product pages into structured data: title, live price + discount, rating, review count, ASIN, brand, Prime status, bestseller rank and more — across **10 marketplaces** (US, UK, DE, FR, IT, ES, CA, AU, JP, IN). For price monitoring, dropshipping research and market intelligence.
**Pricing: $0.0025 per product + $0.02 per run start (at the default 4 GB of memory)** (≈ $2.50 per 1,000 products), residential proxies and anti-bot handling included. No Amazon account, login, or PA-API approval needed.

### 60-second quick start

1. Type a keyword into `searchQueries` (e.g. `"wireless headphones"`) **or** paste product URLs / bare ASINs into `productUrls`.
2. Pick your `marketplace` (default `amazon.com`).
3. Run. Export JSON, CSV or Excel — or read the dataset over the Apify API.

The exact console prefill:

```json
{
  "searchQueries": ["wireless headphones", "mechanical keyboard"],
  "maxResultsPerQuery": 50,
  "marketplace": "amazon.com"
}
```

And a real output row:

```json
{
  "productTitle": "Sony WH-1000XM5 Wireless Noise Canceling Headphones",
  "price": "$278.00",
  "priceNumeric": 278.0,
  "originalPrice": "$399.99",
  "discountPercent": "-30%",
  "currency": "USD",
  "rating": 4.6,
  "reviewCount": 12543,
  "asin": "B0BX2L8PBG",
  "brand": "Sony",
  "isPrime": true,
  "bestSellerRank": "#1 in Over-Ear Headphones",
  "imageUrl": "https://m.media-amazon.com/images/I/51aXvjzcukL._AC_SL1200_.jpg",
  "productUrl": "https://www.amazon.com/dp/B0BX2L8PBG",
  "searchQuery": "wireless headphones"
}
```

Search results carry the core fields (title, price, rating, ASIN, Prime); detail pages add `bulletPoints`, `bestSellerRank`, `brand` and `availability`. Power move: run a search, then feed the ASINs back through `productUrls` for the rich second pass.

### Amazon product scraper without an API key — vs the alternatives

- **vs Amazon's official PA-API:** PA-API needs an approved Associates account with qualifying affiliate sales, enforces tight rate limits, and hides fields any shopper can see (live discount %, bestseller rank). This scraper reads the public catalog with no approval gate.
- **vs paid data services (Rainforest, Keepa):** those are excellent for deep historical price charts; this Actor is the pay-per-result option — $0.0025/product, no monthly commitment, schedule your own runs and build your own history.
- **vs the largest Apify Amazon crawlers:** heavyweight crawlers expose dozens of options (sellers, offers, reviews, category trees). This one is deliberately lean — search or ASIN in, clean product rows out — which makes it cheaper to run and simpler to wire into a pipeline. If you need offer-level or review-content data, a heavyweight crawler is the better fit; for prices/ratings/ASIN at scale, this is.

### What people monitor with it

- **Competitor prices and promotions** — daily scheduled run on your competitor ASINs; price drops flow to Slack/Sheets via integrations.
- **Product research** — review counts + ratings + bestseller ranks by keyword reveal high-demand, underserved niches.
- **Cross-marketplace arbitrage** — same ASINs across `amazon.com`, `.co.uk`, `.de`, `.co.jp` to find margin spreads.
- **MAP / brand protection** — detect third-party sellers undercutting your minimum advertised price.
- **Category intelligence** — average price, brand distribution and competitive density for an entire keyword space.

### FAQ

**How do I scrape Amazon products by keyword?**
Put keywords in `searchQueries`, set `maxResultsPerQuery` (1–500) and run. Each search typically yields up to 300–400 products; use several specific terms ("bluetooth headphones under $50", "noise cancelling headphones Sony") for broader coverage than one generic keyword.

**Can I scrape specific products by ASIN?**
Yes — paste bare ASINs (e.g. `B0BX2L8PBG`) or full URLs into `productUrls`; ASINs are expanded to product pages automatically. It's the fastest, most reliable mode when you know your targets.

**Which Amazon marketplaces are supported?**
amazon.com, .co.uk, .de, .fr, .it, .es, .ca, .com.au, .co.jp and .in — with currency detected per marketplace (USD, GBP, EUR, JPY, INR, CAD, AUD).

**Do I need an Amazon account, API key or affiliate approval?**
None of the three. Residential proxies and CAPTCHA retries are handled internally; you provide only keywords or URLs.

**Why do runs behave better at low concurrency?**
Amazon's anti-bot systems are aggressive. `maxConcurrency` 1–2 (default 2) minimizes CAPTCHA challenges; the scraper retries through them, but fewer challenges = faster, cheaper runs.

**How fresh are the prices?**
Scraped live at run time, each row stamped `scrapedAt`. Schedule recurring runs to accumulate your own price history dataset.

**What does 10,000 products cost?**
About $25 ($0.0025 × 10,000 + start). No monthly fee — a one-off research pull and a daily pipeline cost the same per product.

**Is scraping Amazon legal?**
Only publicly visible product data is collected — no login, no personal data. Public-data scraping is broadly permitted; you're responsible for using the output in line with applicable laws and Amazon's terms in your jurisdiction.

### Pairs well with

- [SaaS Pricing Tracker](https://apify.com/renzomacar/saas-pricing-tracker) — the same watch-and-diff idea for SaaS pricing pages.
- [Trustpilot Reviews Scraper](https://apify.com/renzomacar/trustpilot-reviews) — seller reputation alongside product data.
- [Google Trends Scraper](https://apify.com/renzomacar/google-trends-scraper) — validate demand and seasonality before sourcing a product.

# Actor input Schema

## `searchQueries` (type: `array`):

Search keywords to find products on Amazon (e.g., 'wireless headphones', 'yoga mat').

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

Direct Amazon product page URLs or ASINs for specific products.

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

Which Amazon domain to scrape.

## `maxResultsPerQuery` (type: `integer`):

Maximum products to extract per search query.

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

Number of pages to process in parallel. Lower is safer.

## Actor input object example

```json
{
  "searchQueries": [
    "wireless headphones",
    "yoga mat"
  ],
  "marketplace": "amazon.com",
  "maxResultsPerQuery": 50,
  "maxConcurrency": 2
}
```

# Actor output Schema

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

One row per product listing with price and rating.

# 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 = {
    "searchQueries": [
        "wireless headphones",
        "yoga mat"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("renzomacar/amazon-products").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 = { "searchQueries": [
        "wireless headphones",
        "yoga mat",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("renzomacar/amazon-products").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 '{
  "searchQueries": [
    "wireless headphones",
    "yoga mat"
  ]
}' |
apify call renzomacar/amazon-products --silent --output-dataset

```

## MCP server setup

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

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/qniCcBR4lVmFmcchy/builds/j7g7bCs9bxhUHvewM/openapi.json
