# Amazon ASIN Rating, Review Count & BSR Lookup API – No Login (`k-data-lab/amazon-asin-rating-scraper`) Actor

Bulk Amazon ASIN lookup: star ratings, review count, 5★–1★ breakdown, price, Best Sellers Rank (main + every subcategory) and units bought in past month for ASINs or product URLs on 19 marketplaces. No login or cookies. First 100 products free every month, then from $1.60/1,000.

- **URL**: https://apify.com/k-data-lab/amazon-asin-rating-scraper.md
- **Developed by:** [K-Data Lab](https://apify.com/k-data-lab) (community)
- **Categories:** E-commerce, Automation, Developer tools
- **Features:** Limited permissions
- **Stats:** 12 total users, 6 monthly users, 98.7% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.60 / 1,000 asin scrapeds

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 ASIN Lookup API (No Login) – Ratings, Review Count, Star Breakdown, BSR in Every Category, Price & Monthly Sales for 19 Amazon Sites

**Bulk ASIN lookup: turn a list of ASINs or Amazon product URLs into a clean table of star ratings, review counts, Best Sellers Rank (main category and every subcategory) and how many units sold last month.** No Amazon login, no cookies, no API keys, no browser. Paste your list, click **Start**, and download Excel, CSV or JSON, or call it as a REST API from your own code or AI agent.

Perfect for **rating monitoring, review-growth tracking, competitor benchmarking, catalog health checks and daily KPI dashboards**, with your **first 100 products every month free** and then from **$1.60 per 1,000** (just **$1 per 1,000 on the Apify Free plan**), charged only for products that return data.

**What one row looks like:**

| asin | marketplace | rating | ratingsCount | starBreakdown | price | bestSellersRank | sub-category BSR | boughtInPastMonth | availability |
|---|---|---|---|---|---|---|---|---|---|
| B0G7RYP439 | amazon.com | 4.2 | 2991 | 5★ 69% · 4★ 10% · 3★ 6% · 2★ 6% · 1★ 9% | 21.99 | 4,827 in Cell Phones & Accessories | 406 in Cell Phone Screen Protectors | 1000 | In Stock |

**Run it in 3 steps:** ① paste ASINs or product links (one per line) → ② pick the marketplace for bare ASINs → ③ click **Start**. About 3,400 products take roughly 5½ minutes.

***

#### 🔍 What does Amazon ASIN Rating Scraper do?

You give it products, and it returns one row per product:

- ⭐ **Average star rating** (e.g. `4.2`)
- 🔢 **Total global ratings count** (e.g. `2958`)
- 📊 **Star breakdown**: % of 5★, 4★, 3★, 2★ and 1★ ratings (when Amazon shows it on the page)
- 💲 **Buy-box price**, as a number and as displayed
- 🏆 **Best Sellers Rank** in the main category **and in every subcategory** (e.g. #4,827 in Cell Phones & Accessories, #406 in Cell Phone Screen Protectors)
- 📈 **Units bought in the past month**, from Amazon's "1K+ bought in past month" badge, as a number (`1000`) you can sort and chart
- 🏭 **Brand** and 📦 **availability** ("In Stock", "Only 3 left in stock")
- 🖼️ **Main product image**
- 🏷️ **Product title** and 🔗 **product link**
- 🌍 **Marketplace** the data came from
- 🕒 **Scrape timestamp**, so repeated runs build a history
- ✅ **Status** per product: found, not sold on that marketplace, or blocked

It accepts:

- **Bare ASINs**: `B0G7RYP439`
- **Product URLs** from any supported Amazon site: `https://www.amazon.de/dp/B0GDHRZFWH`
- **Mixed lists** pasted straight from a spreadsheet column. Duplicates, blank cells, `-` and `TBD` are skipped automatically.

***

#### 🌍 Which Amazon site gets scraped?

| You enter | Scraped on |
|---|---|
| A bare ASIN, e.g. `B0G7RYP439` | The **Marketplace** selected in the input (default amazon.com) |
| A product URL, e.g. `https://www.amazon.co.uk/dp/B0H2BX5FF2` | **That URL's own site** (amazon.co.uk) |

So **one run can cover the US, UK, Germany, Japan and more**. List the same ASIN as URLs on different sites to compare its rating country by country.

> ⚠️ Amazon ratings are **per marketplace**. A product can be 4.6★ with 13,000 ratings on amazon.com and 4.1★ with 400 ratings on amazon.de. Always check the `marketplace` column.

***

#### 🌟 Key features

- **19 Amazon marketplaces**: US, UK, DE, FR, IT, ES, NL, SE, PL, TR, JP, IN, CA, MX, BR, AU, AE, SA, SG
- **Fast**: ~3,400 products in about 5½ minutes on default settings
- **Cheap**: $1.60–2 per 1,000 products ($1 on the Free plan), roughly 2× cheaper than typical full Amazon product scrapers
- **Fair billing**: not-found and blocked products are **never charged**
- **Stable**: each parallel session behaves like one real shopper, with its own IP, cookies and real-browser fingerprint, human-like pacing, rotation, and automatic slow-down if Amazon pushes back
- **Smart proxies**: fast datacenter IPs first, residential only for products that keep getting blocked
- **Clean data**: incomplete pages are retried instead of saved, and Amazon's "Continue shopping" check page is passed automatically
- **Fewer gaps outside the US**: Amazon sometimes serves a light product page without the rank and star breakdown (more often on UK, EU and JP sites, and almost always for unavailable listings). The actor spots it and re-fetches once on a fresh session at no extra cost to you; if the page is still light, you get the rating and count with the rank fields left `null`
- **Small footprint**: runs on 512 MB, and more memory isn't needed
- **Monitored daily** with live test runs on amazon.com and amazon.de

***

#### ⚖️ Why choose this scraper?

| | **This actor** | Typical Amazon product scrapers |
|---|---|---|
| Price per 1,000 products | **$1.60–2.00** ($1 on Free plan), **first 100 every month free** | $3–5 |
| Charged for not-found / blocked products | **No** | Often yes (every dataset row) |
| Mix several Amazon sites in one run | **Yes, from the URL** | Usually one country per run |
| Default memory | **512 MB** | 1–4 GB |
| ~3,400 products | **~5½ min** | Often much longer (full page parsing) |
| Output | Focused: rating, count, **star breakdown, price, Best Sellers Rank, image** | 40+ fields you may not need |
| Star-rating breakdown (5★…1★ %) | **Included free** | Separate actor, often $4+ per 1,000 |
| Best Sellers Rank in every subcategory | **Included** (`bestSellersRanks`) | Often main category only |
| Monthly sales signal ("bought in past month") | **Included, as a number** | Often missing or text only |
| Amazon login / cookies needed | **No** | Sometimes |

If you need **ratings, review counts and the numbers around them** (star mix, price, rank) without a full product scrape, this is the fastest and cheapest way to get them.

***

#### 📥 Input

| Field | Required | Description |
|---|---|---|
| **ASINs or product URLs** | ✅ | One per line. Bare ASINs or Amazon product links, mixed freely |
| **Marketplace for bare ASINs** | | `com` (default), `co.uk`, `de`, `co.jp` … Product URLs always use their own site |
| **Parallel sessions** | | Default 40, max 50. Capped automatically to fit the run's memory |
| **Proxy** | | Default: Apify datacenter, auto-escalating to residential. Leave as is |
| **Save raw pages (debug)** | | Stores fetched HTML for troubleshooting. Off by default |
| **Child ASIN review counts** | | Optional, off by default. Adds per-variant review counts per star. **Needs your own Amazon login** (see below) |
| **Amazon cookies** | | Only for child review counts: cookies of your signed-in **consumer** Amazon account. Secret field, never shown in logs |

**Example input**

```json
{
  "asins": [
    "B0G7RYP439",
    "B0G7QZ7RMD",
    "https://www.amazon.de/dp/B0GDHRZFWH",
    "https://www.amazon.co.uk/dp/B0H2BX5FF2"
  ],
  "marketplace": "com"
}
```

***

#### 📋 Output fields

| Field | Type | Description |
|---|---|---|
| `asin` | string | The product's ASIN |
| `found` | boolean / null | `true` = product page found · `false` = not sold on this marketplace / delisted · `null` = blocked after all retries |
| `rating` | number / null | Average star rating out of 5. `null` if the product has no ratings yet |
| `ratingsCount` | integer | Total number of global ratings (`0` if none) |
| `starBreakdown` | object / null | % of ratings per star, `{"5": 69, "4": 9, "3": 7, "2": 6, "1": 9}`. `null` when the page doesn't show it (common outside amazon.com) |
| `price` | number / null | Buy-box price as a number. `null` when there is no buy box (e.g. only other sellers) |
| `priceText` | string / null | Price as displayed, with currency, e.g. `$21.99`, `20,69 €` |
| `bestSellersRank` | integer / null | Best Sellers Rank in the main category |
| `bestSellersCategory` | string / null | That category, in the marketplace's language |
| `bestSellersRanks` | array / null | **Every** Best Sellers Rank on the page, main category first, then each subcategory: `[{"rank": 4827, "category": "Cell Phones & Accessories"}, {"rank": 406, "category": "Cell Phone Screen Protectors"}]` |
| `imageUrl` | string / null | Main product image, high resolution |
| `boughtInPastMonth` | integer / null | Amazon's "bought in past month" badge as a number (lower bound): `200+` → `200`, `1K+` → `1000`. `null` when Amazon shows no badge (low sellers, many non-US sites) |
| `boughtInPastMonthText` | string / null | The badge as displayed, e.g. `1K+ bought in past month` |
| `brand` | string / null | Brand from the product overview |
| `availability` | string / null | Stock message from the buy box, e.g. `In Stock`, `Only 3 left in stock - order soon.` |
| `title` | string | Product title as shown on Amazon |
| `url` | string | Product page link |
| `marketplace` | string | Amazon site the data came from, e.g. `amazon.de` |
| `scrapedAt` | string | Scrape time, UTC, ISO 8601 |
| `error` | string | Only on blocked items: why it couldn't be scraped |
| `childReviewCounts` | object / null | Only with child review counts on: written reviews for this exact variant per star, `{"all": 94, "5": 72, "4": 8, "3": 7, "2": 6, "1": 1}` |
| `childReviewAverage` | number / null | Only with child review counts on: average stars of this variant's written reviews |
| `childReviewCountsNote` | string / null | Only with child review counts on: why the counts are missing (no cookies, signed out, Business account, blocked) |

##### 🔐 Optional: review counts per child ASIN (needs your login)

`ratingsCount` ("N global ratings") is **shared by the whole variation family**: every size and color of a product shows the same number. Amazon has no per-child rating total. The only per-child number is on the reviews page filtered to *this variant* and one star level: "N matching customer reviews". It counts **ratings with a written review only**, so it is lower than `ratingsCount`, and each marketplace has its own numbers.

Amazon shows that page only to signed-in shoppers, so this part is **opt-in** and uses **your own** session:

1. Sign in to the Amazon store(s) you need with a normal **consumer** account. Amazon Business accounts get a reviews page without filters and can't see some consumer listings, so they won't work.
2. Export the cookies with any cookie-export browser extension (JSON) and paste them into **Amazon cookies**. One export can cover several stores; or use `{"de": "<cookie header>", "co.jp": "<cookie header>"}`.
3. Turn on **Child ASIN review counts** and run as usual.

Each product needs 6 extra page loads (all + 5★…1★), so these runs are slower. Requests for one store share one session and run a few at a time, like one person browsing. If the cookies expire or belong to a Business account, the run says so in `childReviewCountsNote` and keeps going with the no-login fields.

**Price:** free until 23 Nov 2026, then $0.01 per product per marketplace, on top of the normal product price, and only when the counts come back. Rows with a `childReviewCountsNote` (no cookies, signed out, blocked) are not charged for child counts.

#### 📤 Example output

```json
[
  {
    "asin": "B0G7RYP439",
    "found": true,
    "url": "https://www.amazon.com/dp/B0G7RYP439",
    "title": "Spigen GlasTR EZ Fit Privacy Tempered Glass Screen Protector for Galaxy S26",
    "rating": 4.2,
    "ratingsCount": 2991,
    "starBreakdown": { "5": 69, "4": 10, "3": 6, "2": 6, "1": 9 },
    "price": 21.99,
    "priceText": "$21.99",
    "bestSellersRank": 4827,
    "bestSellersCategory": "Cell Phones & Accessories",
    "bestSellersRanks": [
      { "rank": 4827, "category": "Cell Phones & Accessories" },
      { "rank": 406, "category": "Cell Phone Screen Protectors" }
    ],
    "imageUrl": "https://m.media-amazon.com/images/I/61ZrMpUo4tL._AC_SL1500_.jpg",
    "boughtInPastMonth": 1000,
    "boughtInPastMonthText": "1K+ bought in past month",
    "brand": "Spigen",
    "availability": "In Stock",
    "marketplace": "amazon.com",
    "scrapedAt": "2026-10-16T01:03:12.623131+00:00"
  },
  {
    "asin": "B0GDHRZFWH",
    "found": true,
    "url": "https://www.amazon.de/dp/B0GDHRZFWH",
    "title": "Spigen Thin Fit MagFit for Samsung Galaxy S26 Plus - Black",
    "rating": 3,
    "ratingsCount": 243,
    "starBreakdown": null,
    "price": null,
    "priceText": null,
    "bestSellersRank": 8996,
    "bestSellersCategory": "Electronics & Photo",
    "bestSellersRanks": [
      { "rank": 8996, "category": "Electronics & Photo" },
      { "rank": 1118, "category": "Mobile Phone Basic Cases" }
    ],
    "imageUrl": "https://m.media-amazon.com/images/I/61dJd0D2GBL._AC_SL1200_.jpg",
    "marketplace": "amazon.de",
    "scrapedAt": "2026-10-16T01:03:20.026163+00:00"
  }
]
```

The **Output** tab shows these as a table (*Ratings, star breakdown, price, BSR & sales signal*, with the first subcategory rank as its own column), with product images, ready to export to Excel, CSV, JSON, XML or HTML.

#### 🚧 Not-found and blocked items

Every product you enter gets a row, so nothing silently goes missing:

```json
{ "asin": "B0B7MFZ2SH", "found": false, "marketplace": "amazon.com" }
```

`found: false`: Amazon has no product page for this ASIN on this site. **Not charged.**

```json
{ "asin": "B0XXXXXXXX", "found": null, "error": "Blocked after 6 attempts", "marketplace": "amazon.com" }
```

`found: null`: Amazon blocked all 6 attempts, each on a fresh identity and the last ones on residential IPs. Rare; just run those ASINs again. **Not charged.**

***

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

**🎁 Your first 100 products every month are free.** After that, **from $1.60 per 1,000 products**, with bigger discounts on higher Apify plans. It's pay-per-event, so platform usage isn't billed on top.

| Your Apify plan | Per product | Per 1,000 products |
|---|---|---|
| 🎁 Free (try it on your monthly free credit) | $0.001 | **$1.00** |
| Starter | $0.002 | $2.00 |
| Scale | $0.0018 | $1.80 |
| Business / Platinum / Diamond | $0.0016 | **$1.60** |

Plus $0.005 per run. **Not-found and blocked products are always free**, and the first 100 found products each calendar month (UTC) cost nothing. The run log shows how many free products you have left.

🔐 Optional child ASIN review counts (needs your Amazon login, off by default): **free until 23 Nov 2026, then $0.01 per product per marketplace** when the counts come back. The 100 free products don't cover this add-on.

| You check (Starter plan) | Cost |
|---|---|
| 100 products once | **$0.005** (all 100 free) |
| 1,000 products once | ≈ $1.81 |
| 10,000 products once | ≈ $19.81 |
| 500 products every weekday (~22 runs/month) | ≈ $21.91 / month |

🎁 **Free trial:** new to Apify? The Free plan's monthly $5 credit covers **about 5,000 products** at the Free-plan price, every month, enough to test on your real catalog before you pay anything.

***

#### 🚀 How to scrape Amazon ratings by ASIN (step by step)

1. Click **Try for free** (or **Start**) on this page and sign in to Apify.
2. Paste your **ASINs or product URLs** into the first field, one per line.
3. Bare ASINs only: pick their **Marketplace** (default amazon.com).
4. Click **Start**. A few hundred products take about a minute.
5. Open the **Output** tab and click **Export** to download Excel, CSV or JSON.
6. Optional: click **Save as a new task**, then **Schedule** it (e.g. every weekday at 08:00) to track ratings over time.

***

#### 📊 Popular use cases

- **Brand & seller rating monitoring**
  - Daily snapshot of every listing's rating and review count
  - Spot a rating drop the morning it happens, before it hurts conversion
- **Competitor benchmarking**
  - Track rival products' review velocity after their launch or promotion
  - Compare your rating to the category's top sellers
- **Multi-country catalog health**
  - Same product, many marketplaces: find the countries where it underperforms
- **Agency & client reporting**
  - Scheduled rating reports to Google Sheets, Slack or email, no manual checking
- **Sales momentum & product research**
  - Sort hundreds of ASINs by `boughtInPastMonth` and `bestSellersRank` to see which products really sell
  - Catch out-of-stock competitors from the `availability` column
- **Product launch tracking**
  - Measure how fast a new ASIN collects its first 100, 500 and 1,000 ratings
- **Data & BI pipelines**
  - Feed ratings into dashboards, pricing models or ML features via API

***

#### 🔌 Integrations & API

Connect results to **Google Sheets, Slack, email, Zapier, Make, Airbyte, GitHub, webhooks** and more under the **Integrations** tab. Or call it from code:

**Python**

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("k-data-lab/amazon-asin-rating-scraper").call(
    run_input={"asins": ["B0G7RYP439", "https://www.amazon.de/dp/B0GDHRZFWH"]}
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["asin"], item.get("rating"), item.get("ratingsCount"))
```

**JavaScript**

```js
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('k-data-lab/amazon-asin-rating-scraper').call({
    asins: ['B0G7RYP439', 'https://www.amazon.de/dp/B0GDHRZFWH'],
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.table(items.map(({ asin, rating, ratingsCount }) => ({ asin, rating, ratingsCount })));
```

**cURL** (run and get the results in one request)

```bash
curl -X POST "https://api.apify.com/v2/acts/k-data-lab~amazon-asin-rating-scraper/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"asins": ["B0G7RYP439", "B0G7QZ7RMD"]}'
```

***

#### 💡 Tips for best results

- **Test with 10–20 products first** to check the marketplace setting and the output format.
- **Use full product URLs for non-US products.** That way each one is scraped on the right site, even in a mixed list.
- **Variants share reviews.** Color and size variants of one product usually show the same rating and count, because Amazon pools them.
- **Schedule instead of re-running by hand.** The `scrapedAt` field lets you stack runs into a history in Sheets or your database.
- **Leave the proxy and memory defaults alone.** They're tuned for speed and cost.

#### 🤝 When to use this vs a full Amazon product scraper

- **Use this actor** when you need **ratings, review counts, star mix, price, rank, monthly sales badge and stock** for a known list of products, especially many products, often.
- **Use a full product scraper** when you also need descriptions, bullet points, all images, variants or every seller offer.
- **Use a review scraper** when you need the individual review texts.

***

#### 🤖 Use it from AI agents (MCP)

Give Claude, ChatGPT, Cursor, VS Code or n8n a ready-made `amazon-asin-rating-scraper` tool through [Apify's MCP server](https://mcp.apify.com): the agent reads the input schema, runs this actor and gets the dataset back.

- This actor only: `https://mcp.apify.com?tools=actors,docs,k-data-lab/amazon-asin-rating-scraper`
- Amazon bundle (ASIN ratings + Seller Central reviews): `https://mcp.apify.com?tools=actors,docs,k-data-lab/amazon-asin-rating-scraper,k-data-lab/amazon-seller-central-review-scraper`

**Claude Code**

```bash
claude mcp add --transport http apify "https://mcp.apify.com?tools=actors,docs,k-data-lab/amazon-asin-rating-scraper"
```

Claude Desktop: Settings → Connectors → Add custom connector, paste the same URL.

**Cursor / VS Code** (`.cursor/mcp.json`; in `.vscode/mcp.json` use `"servers"` and add `"type": "http"`)

```json
{
  "mcpServers": {
    "apify": {
      "url": "https://mcp.apify.com?tools=actors,docs,k-data-lab/amazon-asin-rating-scraper",
      "headers": { "Authorization": "Bearer <YOUR_APIFY_TOKEN>" }
    }
  }
}
```

**Try asking**

- "Get the star rating, review count and BSR for ASINs B0G7RYP439 and B0G7QZ7RMD on amazon.com and amazon.de, as a table."
- "Here is a column of 200 ASINs from my sheet: check which ones dropped below 4.3 stars on amazon.co.uk."
- "Compare the 1-star share of these three competitor products across the US, UK and Japan Amazon sites."
- "Look up these 50 ASINs and rank them by their subcategory Best Sellers Rank."

#### ❓ FAQ

**Is there a free allowance?**
Yes. The first 100 products that return data each calendar month (UTC) are free on every plan. The actor keeps the counter in a small key-value store named `k-data-lab-free-quota` in your own Apify account, holding nothing but the number.

**How do I check Amazon ratings for many ASINs at once?**
Paste them all into the input, one per line. A list of thousands is fine; ~3,400 products take about 5½ minutes.

**Which Amazon countries are supported?**
19 sites: amazon.com, .co.uk, .de, .fr, .it, .es, .nl, .se, .pl, .com.tr, .co.jp, .in, .ca, .com.mx, .com.br, .com.au, .ae, .sa and .sg.

**Do I need an Amazon account, cookies or the Amazon API?**
No. Only public product pages are read.

**Why does a product show `found: false`?**
It isn't sold on that marketplace or has been delisted. Check the marketplace, or pass the full product URL. You aren't charged for it.

**Why is `rating` null with `ratingsCount: 0`?**
The product has no ratings yet. That's real data, not an error.

**Does it return the 5-star / 1-star breakdown or the review texts?**
The breakdown, yes: `starBreakdown` gives the % of 5★…1★ ratings whenever the product page shows it. Individual review texts, no. That's what keeps it fast and cheap; use a review scraper for those.

**Does it return the subcategory Best Sellers Rank?**
Yes. `bestSellersRank` / `bestSellersCategory` hold the main-category rank, and `bestSellersRanks` lists every rank Amazon shows for the product, main category first, then each subcategory (often the more useful number for niche products). Categories come in the marketplace's language.

**Why are `bestSellersRank` or `starBreakdown` null for some non-US products?**
Amazon leaves them out of the light product page it serves for unavailable listings and, at random, for some visits. The actor retries a light page once on a fresh session; if it stays light, the row keeps the rating and count. Running those ASINs again later usually fills the gaps.

**Why is `price` null for some products?**
Amazon shows no buy-box price for them: the product is out of stock, sold only by other sellers, or can't be delivered to the marketplace's default location. `availability` usually says which.

**Can I see how many units a product sold?**
Amazon doesn't publish exact sales, but many listings show a "bought in past month" badge (`50+`, `1K+`, `10K+`). The actor returns it as `boughtInPastMonth` (a sortable number) plus the original text. Combine it with `bestSellersRank` and run it on a schedule to track sales momentum for your own or competitors' products.

**Can I schedule it and send results to Google Sheets?**
Yes. Save your input as a task, add a schedule, and connect the Google Sheets integration.

**Is it legal to scrape Amazon ratings?**
This actor only collects publicly available product data and no personal data. You're responsible for how you use the results. Check Amazon's terms and the laws that apply to you.

**Something doesn't look right. How do I get help?**
Open an issue on the **Issues** tab with the run link and a few example ASINs.

***

#### 🧰 More from K-Data Lab

**Amazon & e-commerce**

- [Amazon Seller Central Review Scraper & Monitor](https://apify.com/k-data-lab/amazon-seller-central-review-scraper): export and monitor your brand's customer reviews from Seller Central (US, EU, JP, IN), with order ID and photos; you sign in yourself. Pairs well with this actor: track the rating here, read the reviews behind it there.

**Ads, apps & travel**

- [Google Ads Transparency & Ad Library Scraper](https://apify.com/k-data-lab/google-ad-library-scraper): see which ads any competitor domain or brand runs on Google Search, YouTube and Shopping, no login.
- [Google Play Scraper](https://apify.com/k-data-lab/google-play-scraper): app details, ratings and reviews from Google Play.
- [Agoda Scraper](https://apify.com/k-data-lab/agoda-scraper): hotel prices, room offers and reviews from Agoda.

**Korean music charts**

- [Korean Music Chart Scraper](https://apify.com/k-data-lab/korean-music-chart-scraper): Melon, Genie, Bugs, FLO and VIBE charts merged in one run.
- [Melon](https://apify.com/k-data-lab/melon-scraper) · [Genie](https://apify.com/k-data-lab/genie-scraper) · [Bugs](https://apify.com/k-data-lab/bugs-scraper) · [FLO](https://apify.com/k-data-lab/flo-scraper) · [VIBE](https://apify.com/k-data-lab/vibe-scraper): one chart platform each, with song details.

**Korean real estate**

- [KB Land Scraper](https://apify.com/k-data-lab/kbland-scraper) and [R114 Scraper](https://apify.com/k-data-lab/r114-scraper): apartment complex prices (KB 시세, 부동산114 시세) and deals.

***

#### 💬 Your feedback

Missing a marketplace, field or integration? Tell us on the **Issues** tab, and we reply the same day.

🔖 **Tags:** amazon asin lookup · bulk asin lookup · amazon ratings · amazon bsr checker · amazon subcategory rank · amazon rating scraper · amazon review count · amazon bought in past month · amazon sales estimate · amazon stock checker · asin lookup · bulk asin checker · amazon star rating · review monitoring · amazon competitor tracking · amazon seller tools · ecommerce data · amazon product data api · amazon api alternative

# Actor input Schema

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

List of Amazon products to check, one per line: bare 10-character ASINs or full product URLs. Example: \["B0G7RYP439", "https://www.amazon.de/dp/B0GDHRZFWH"]. Bare ASINs use the Marketplace below; a URL is scraped on its own Amazon site, so one run can mix countries. You can paste a whole spreadsheet column: duplicates and non-ASIN cells are skipped automatically.

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

Amazon site for bare ASINs, as the domain ending after 'amazon.'. Example: "de" for amazon.de, "co.jp" for amazon.co.jp, "com" (default) for amazon.com. Product URLs in ASINs always use their own site, whatever this is set to.

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

How many products are fetched at the same time (each with its own IP and cookies). Example: 40 (default). Leave it at the default unless you want a slower, gentler run (e.g. 10). It is capped automatically to fit the run memory and slows down by itself if Amazon pushes back.

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

Proxy settings. Example: {"useApifyProxy": true} (default) = fast Apify datacenter proxies, switching to residential only for products that keep getting blocked. Change it only to force a proxy group, e.g. {"useApifyProxy": true, "apifyProxyGroups": \["RESIDENTIAL"]}, or to use your own proxies.

## `childStarCounts` (type: `boolean`):

Set true to add <b>childReviewCounts</b> {all, 5, 4, 3, 2, 1}: written reviews for this exact variant per star. Example: true (default false). Requires <b>Amazon cookies</b> below for each marketplace you scrape; leave false unless you have cookies. Counts only ratings with a written review, so they are lower than the family-wide ratingsCount. Adds 6 page loads per product. Free until 23 Nov 2026, then <b>$0.01 per product per marketplace</b>, only when the counts come back.

## `amazonCookies` (type: `string`):

Only used when 'Child ASIN review counts' is true; leave empty otherwise. Paste cookies from a signed-in Amazon <b>consumer</b> account (not Amazon Business): a cookie-extension JSON export, a JSON object per marketplace, or a plain Cookie header for the marketplace above. Example: {"de": "session-id=...; at-acbde=..."}. Stored encrypted; never shown in the run input or logs. Use your own account only.

## `debugHtml` (type: `boolean`):

Set true to store each fetched page in the run's key-value store so you can inspect what Amazon returned. Example: false (default). Leave off for normal use.

## Actor input object example

```json
{
  "asins": [
    "B0G7RYP439",
    "B0G7QZ7RMD",
    "https://www.amazon.de/dp/B0GDHRZFWH"
  ],
  "marketplace": "com",
  "maxConcurrency": 40,
  "proxyConfiguration": {
    "useApifyProxy": true
  },
  "childStarCounts": false,
  "debugHtml": false
}
```

# 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": [
        "B0G7RYP439",
        "B0G7QZ7RMD",
        "https://www.amazon.de/dp/B0GDHRZFWH"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("k-data-lab/amazon-asin-rating-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": [
        "B0G7RYP439",
        "B0G7QZ7RMD",
        "https://www.amazon.de/dp/B0GDHRZFWH",
    ],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("k-data-lab/amazon-asin-rating-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": [
    "B0G7RYP439",
    "B0G7QZ7RMD",
    "https://www.amazon.de/dp/B0GDHRZFWH"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call k-data-lab/amazon-asin-rating-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,k-data-lab/amazon-asin-rating-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/2AuZCyLxKZuO2OyNY/builds/1H0UznD35iGUcmkoZ/openapi.json
