---
title: "Amazon best sellers scraper"
description: "Scrape Amazon Best Sellers lists as JSON: rank, ASIN, title, price, star rating and review count for each product in a category, page by page, via API or MCP."
canonical: https://www.zenrows.com/scrape/amazon-best-sellers
updated: 2026-10-22
---

# Amazon best sellers scraper

The Zenrows Amazon best sellers scraper turns an Amazon Best Sellers category URL into structured JSON: the list title and category, then for each ranked product its rank, ASIN, title, price, star rating, review count, product URL, reviews URL and image. Fetch in Adaptive Stealth Mode opens the list and Extract returns the fields, through the API, the CLI or an AI agent.

- Site: amazon.com
- Returns: Category rank, ASIN, price, rating and review count per product

## Run it: one category in, its ranking out

```json Input
{
  "url": "https://www.amazon.com/Best-Sellers-Kitchen-Dining/zgbs/kitchen",
  "mode": "auto",
  "extract": "auto",
  "proxy_country": "us"
}
```

```json Output
{
  "page_context": {
    "category_name": "Kitchen & Dining(Current)",
    "category_url": "https://www.amazon.com/Best-Sellers-Kitchen-Dining/zgbs/kitchen",
    "list_title": "Best Sellers in Kitchen & Dining"
  },
  "ranked_products": [
    {
      "asin": "B0BZYCJK89",
      "image_url": "https://images-na.ssl-images-amazon.com/images/I/51VU5d5ySHL._AC_UL300_SR300,200_.jpg",
      "price": "$29.99",
      "product_url": "/Owala-FreeSip-Insulated-Stainless-BPA-Free/dp/B0BZYCJK89/ref=zg_bs_g_kitchen_d_sccl_1/143-1245476-1680061?psc=1",
      "rank": 1,
      "review_count": 143021,
      "reviews_url": "/product-reviews/B0BZYCJK89/ref=zg_bs_g_kitchen_d_sccl_1_cr/143-1245476-1680061",
      "star_rating": 4.6,
      "title": "Owala FreeSip Stainless Steel Water Bottle 24 oz Denim"
    },
    {
      "asin": "B0H2FQ5FV1",
      "image_url": "https://images-na.ssl-images-amazon.com/images/I/619aFkeAamL._AC_UL300_SR300,200_.jpg",
      "price": "$39.99",
      "product_url": "/HydroJug-Traveler-Insulated-leak-resistant-dishwasher/dp/B0H2FQ5FV1/ref=zg_bs_g_kitchen_d_sccl_2/143-1245476-1680061?psc=1",
      "rank": 2,
      "review_count": 21875,
      "reviews_url": "/product-reviews/B0H2FQ5FV1/ref=zg_bs_g_kitchen_d_sccl_2_cr/143-1245476-1680061",
      "star_rating": 4.6,
      "title": "HydroJug Traveler 32oz, Insulated Water Bottle with Handle, French Vanilla | Triple wall insulated, flip straw lid…"
    },
    {
      "asin": "B0CJZW65R3",
      "image_url": "https://images-na.ssl-images-amazon.com/images/I/41fVlf8ZJyL._AC_UL300_SR300,200_.jpg",
      "price": null,
      "product_url": "/STANLEY-3-Position-Compatible-Insulated-Stainless/dp/B0CJZW65R3/ref=zg_bs_g_kitchen_d_sccl_3/143-1245476-1680061?psc=1",
      "rank": 3,
      "review_count": 207098,
      "reviews_url": "/product-reviews/B0CJZW65R3/ref=zg_bs_g_kitchen_d_sccl_3_cr/143-1245476-1680061",
      "star_rating": 4.7,
      "title": "STANLEY Quencher H2.0 Flow State Tumbler, 40 oz, Ash | Handle and Straw | 3-Position Lid…"
    }
  ]
}
```

Request and output of a live call to the Amazon Best Sellers list for Kitchen & Dining from the US on Oct 22, 2026, trimmed to the top three products.

## What data can you scrape from Amazon Best Sellers?

A best sellers page is a ranking: Amazon orders the products in a category by recent sales, and the scraper returns that order with the listing data printed next to each slot. Every list has the same two groups, a short `page_context` that names the category and a `ranked_products` array with one record per product.

| Field | What it holds | Example |
|---|---|---|
| `page_context.list_title` | The heading of the list | `Best Sellers in Kitchen & Dining` |
| `page_context.category_name` | The category the list ranks, as the sidebar labels it | `Kitchen & Dining(Current)` |
| `page_context.category_url` | The clean URL of the category's list | `https://www.amazon.com/Best-Sellers-Kitchen-Dining/zgbs/kitchen` |
| `ranked_products[].rank` | The product's place in the category ranking | `1` |
| `ranked_products[].rank` (page 2) | The rank keeps counting on later pages | `51` |
| `ranked_products[].asin` | Amazon's product ID, the key to join ranks with product, price and review data | `B0BZYCJK89` |
| `ranked_products[].title` | The listing title shown in the list | `Owala FreeSip Stainless Steel Water Bottle 24 oz Denim` |
| `ranked_products[].price` | The price shown under the product, as text with the currency sign | `$29.99` |
| `ranked_products[].price` (none shown) | `null` when the list prints no single price for the slot | `null` |
| `ranked_products[].star_rating` | Average star rating out of 5 | `4.6` |
| `ranked_products[].review_count` | Number of ratings shown next to the stars | `143021` |
| `ranked_products[].product_url` | Path to the product page, with Amazon's list tracking | `/Owala-FreeSip-…/dp/B0BZYCJK89/ref=zg_bs_g_kitchen_d_sccl_1/…` |
| `ranked_products[].reviews_url` | Path to the product's full review pages | `/product-reviews/B0BZYCJK89/ref=…` |
| `ranked_products[].image_url` | The thumbnail Amazon shows in the list | `https://images-na.ssl-images-amazon.com/images/I/51VU5d5ySHL…jpg` |

## How to scrape Amazon Best Sellers with Zenrows

1. **Create a free Zenrows account** and copy your API key from the dashboard.
2. **Open the category's list on Amazon.** Best sellers pages carry `/zgbs/` in the path, such as `https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics`. Click into a subcategory in the left sidebar for a narrower ranking and copy that URL.
3. **Send the URL with the default configuration**: Adaptive Stealth Mode to open the list, Extract to return the ranked products, and the country of the Amazon store.
4. **Request the second page** by adding `?pg=2` to the same URL. Its records continue the ranking from 51.
5. **Store each run with a date** and the ASIN as the key, then compare runs to see which products climb or drop.

```python Python
# pip install requests
import datetime
import requests

CATEGORY = "https://www.amazon.com/Best-Sellers-Kitchen-Dining/zgbs/kitchen"
seen_on = datetime.date.today().isoformat()
rows = []

for page in (1, 2):
    params = {
        "apikey": "YOUR_ZENROWS_API_KEY",
        "url": CATEGORY if page == 1 else f"{CATEGORY}?pg={page}",
        "mode": "auto",          # Adaptive Stealth Mode
        "extract": "auto",       # structured JSON
        "proxy_country": "us",   # the US store's ranking and prices
    }
    response = requests.get("https://api.zenrows.com/v1/", params=params, timeout=180)
    response.raise_for_status()
    parsed = response.json()["parsed"]
    for item in parsed.get("ranked_products") or []:
        rows.append({
            "date": seen_on,
            "rank": item.get("rank"),
            "asin": item.get("asin"),
            "price": item.get("price"),        # "$29.99" or None
            "rating": item.get("star_rating"),
            "reviews": item.get("review_count"),
        })

for row in rows[:5]:
    print(row)
```

```javascript Node.js
// Node 18+ (built-in fetch)
const params = new URLSearchParams({
  apikey: "YOUR_ZENROWS_API_KEY",
  url: "https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics",
  mode: "auto",
  extract: "auto",
  proxy_country: "us",
});

const response = await fetch(`https://api.zenrows.com/v1/?${params}`, {
  signal: AbortSignal.timeout(180_000),
});
if (!response.ok) throw new Error(`${response.status}: ${await response.text()}`);

const { parsed } = await response.json();
// Price arrives as text ("$11.99"); turn it into a number, keep null as null
const toNumber = (p) => (p == null ? null : Number(p.replace(/[^0-9.]/g, "")));
const ranked = (parsed.ranked_products ?? []).map((p) => ({
  rank: p.rank,
  asin: p.asin,
  price: toNumber(p.price),
  reviews: p.review_count ?? 0,
}));
console.log(parsed.page_context?.list_title, ranked.slice(0, 10));
```

```bash cURL
curl "https://api.zenrows.com/v1/?apikey=YOUR_ZENROWS_API_KEY&url=https%3A%2F%2Fwww.amazon.com%2FBest-Sellers-Electronics%2Fzgbs%2Felectronics&mode=auto&extract=auto&proxy_country=us"

# Only the rank, ASIN and price of each product
curl "https://api.zenrows.com/v1/?apikey=YOUR_ZENROWS_API_KEY&url=https%3A%2F%2Fwww.amazon.com%2FBest-Sellers-Electronics%2Fzgbs%2Felectronics&mode=auto&extract=auto&proxy_country=us&extract_fields=ranked_products.rank%2Cranked_products.asin%2Cranked_products.price"
```

```python Python SDK
# pip install zenrows
from zenrows import ZenRowsClient

client = ZenRowsClient("YOUR_ZENROWS_API_KEY")
lists = {
    "electronics": "https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics",
    "kitchen": "https://www.amazon.com/Best-Sellers-Kitchen-Dining/zgbs/kitchen",
}
for name, url in lists.items():
    parsed = client.get(url, params={"mode": "auto", "extract": "auto", "proxy_country": "us"}).json()["parsed"]
    top = (parsed.get("ranked_products") or [])[:3]
    print(name, [(p["rank"], p["asin"], p.get("price")) for p in top])
```

## Input

Each request takes one best sellers URL and the settings below. A Batch job applies the same settings to every task, so tracking fifty categories means a list of fifty list URLs, plus their second pages if you want ranks past 50.

| Parameter | Type | Default | Description |
|---|---|---|---|
| `url` | string | required | An Amazon Best Sellers list: a category or subcategory under `/zgbs/`, with `?pg=2` for the second page |
| `mode` | string | `auto` | Adaptive Stealth Mode: starts with the lightest setup and adds rendering and protected-site handling only when the page needs them |
| `extract` | string | `auto` | Returns `page_context` and `ranked_products` as JSON in `parsed`, next to the raw `html` |
| `extract_fields` | string | all fields | Comma-separated paths to keep, such as `ranked_products.rank,ranked_products.asin` |
| `proxy_country` | string | any | Two-letter country code. Set it to the country of the Amazon store whose ranking you track |
| `wait_for` | string | none | A CSS selector to wait for before the page is read |
| `session_id` | integer | none | Keep the same session for both pages of one list, up to 10 minutes |

```json Batch input
{
  "type": "regular",
  "status": "closed",
  "zenrows_params": {
    "mode": "auto",
    "extract": "auto",
    "proxy_country": "us"
  },
  "tasks": [
    { "url": "https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics", "external_id": "electronics-p1" },
    { "url": "https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics?pg=2", "external_id": "electronics-p2" },
    { "url": "https://www.amazon.com/Best-Sellers-Kitchen-Dining/zgbs/kitchen", "external_id": "kitchen-p1" },
    { "url": "https://www.amazon.com/Best-Sellers-Kitchen-Dining/zgbs/kitchen?pg=2", "external_id": "kitchen-p2" }
  ]
}
```

## Output

The response holds `html`, the list as Amazon served it, and `parsed`, the structured ranking. Every best sellers page returns the same two groups, so one parser covers every category and both pages. The samples below are trimmed outputs of live requests from the US on Oct 22, 2026.

```json Best sellers: Electronics, page 1
{
  "page_context": {
    "category_name": "Electronics(Current)",
    "category_url": "https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics",
    "list_title": "Best Sellers in Electronics"
  },
  "ranked_products": [
    {
      "asin": "B08JHCVHTY",
      "image_url": "https://images-na.ssl-images-amazon.com/images/I/31YHGbJsldL._AC_UL300_SR300,200_.png",
      "price": "$11.99",
      "product_url": "/Blink-Plus-Plan-monthly-auto-renewal/dp/B08JHCVHTY/ref=zg_bs_g_electronics_d_sccl_1/136-1750887-8364523?psc=1",
      "rank": 1,
      "review_count": 281370,
      "reviews_url": "/product-reviews/B08JHCVHTY/ref=zg_bs_g_electronics_d_sccl_1_cr/136-1750887-8364523",
      "star_rating": 4.4,
      "title": "blink plus plan with monthly auto-renewal"
    },
    {
      "asin": "B0DCH8VDXF",
      "image_url": "https://images-na.ssl-images-amazon.com/images/I/513OSdW4elL._AC_UL300_SR300,200_.jpg",
      "price": "$19.00",
      "product_url": "/Apple-EarPods-Headphones-Built-Control/dp/B0DCH8VDXF/ref=zg_bs_g_electronics_d_sccl_2/136-1750887-8364523?psc=1",
      "rank": 2,
      "review_count": 19333,
      "reviews_url": "/product-reviews/B0DCH8VDXF/ref=zg_bs_g_electronics_d_sccl_2_cr/136-1750887-8364523",
      "star_rating": 4.5,
      "title": "Apple EarPods Headphones with USB-C Plug, Wired Ear Buds with Built-in Remote to Control Music, Phone Calls, and Volume"
    },
    {
      "asin": "B0FQFB8FMG",
      "image_url": "https://images-na.ssl-images-amazon.com/images/I/61solmQSSlL._AC_UL300_SR300,200_.jpg",
      "price": "$199.00",
      "product_url": "/Apple-Cancellation-Translation-Headphones-High-Fidelity/dp/B0FQFB8FMG/ref=zg_bs_g_electronics_d_sccl_4/136-1750887-8364523?psc=1",
      "rank": 4,
      "review_count": 16857,
      "reviews_url": "/product-reviews/B0FQFB8FMG/ref=zg_bs_g_electronics_d_sccl_4_cr/136-1750887-8364523",
      "star_rating": 4.4,
      "title": "Apple AirPods Pro 3 Wireless Earbuds with Active Noise Cancellation | Live Translation, Heart Rate Sensing…"
    }
  ]
}
```

```json Best sellers: Kitchen & Dining, page 2
{
  "page_context": {
    "category_name": "Kitchen & Dining(Current)",
    "category_url": "https://www.amazon.com/Best-Sellers-Kitchen-Dining/zgbs/kitchen",
    "list_title": "Best Sellers in Kitchen & Dining"
  },
  "ranked_products": [
    {
      "asin": "B0B9S5HZ26",
      "image_url": "https://images-na.ssl-images-amazon.com/images/I/71xlXpdVSUL._AC_UL300_SR300,200_.jpg",
      "price": "$23.99",
      "product_url": "/Vtopmart-Containers-Airtight-Microwave-Dishwasher/dp/B0B9S5HZ26/ref=zg_bs_g_kitchen_d_sccl_1/142-7046090-1555036?psc=1",
      "rank": 51,
      "review_count": 15963,
      "reviews_url": "/product-reviews/B0B9S5HZ26/ref=zg_bs_g_kitchen_d_sccl_1_cr/142-7046090-1555036",
      "star_rating": 4.5,
      "title": "Vtopmart 8 Pack Glass Food Storage Containers with Lids Green | Meal Prep Lunch Containers, Leakproof…"
    },
    {
      "asin": "B00FLYWNYQ",
      "image_url": "https://images-na.ssl-images-amazon.com/images/I/71MLaYtMFOL._AC_UL300_SR300,200_.jpg",
      "price": "$87.05",
      "product_url": "/Instant-Pot-Multi-Use-Programmable-Pressure/dp/B00FLYWNYQ/ref=zg_bs_g_kitchen_d_sccl_2/142-7046090-1555036?psc=1",
      "rank": 52,
      "review_count": 186467,
      "reviews_url": "/product-reviews/B00FLYWNYQ/ref=zg_bs_g_kitchen_d_sccl_2_cr/142-7046090-1555036",
      "star_rating": 4.7,
      "title": "Instant Pot Duo 6 Qt 7-in-1 Electric Pressure Cooker, Stainless Steel | Slow cooks, makes rice and yogurt…"
    }
  ]
}
```

The Electronics list shows a pattern worth knowing: rank 1 on Oct 22 was a Blink subscription plan, so best sellers lists can hold services and digital items next to physical goods. Filter on title or ASIN if your analysis needs products only. For a spreadsheet, load `parsed["ranked_products"]` with `pd.json_normalize(...)` and add the category and the date as columns before you write CSV or Excel.

## Scrape Amazon Best Sellers from your coding agent

Claude Code, Cursor, Codex and any MCP client can read an Amazon best sellers list from a prompt and answer questions about the ranking.

The agent sends the same Fetch and Extract request as the code above, so `ranked_products` is what it reasons over: it can sort, filter and compare categories without you writing a parser. Connect the Zenrows MCP server once, or install the CLI and let the agent run it in the terminal.

```bash Connect the MCP server (Claude Code)
claude mcp add zenrows -e ZENROWS_API_KEY=YOUR_ZENROWS_API_KEY -- npx -y @zenrows/mcp
```

```json MCP config (Cursor, Claude Desktop, Windsurf)
{
  "mcpServers": {
    "zenrows": {
      "command": "npx",
      "args": ["-y", "@zenrows/mcp"],
      "env": { "ZENROWS_API_KEY": "YOUR_ZENROWS_API_KEY" }
    }
  }
}
```

```bash Or run the CLI
npx -y @zenrows/cli init
zenrows extract "https://www.amazon.com/Best-Sellers-Kitchen-Dining/zgbs/kitchen" --proxy-country us
```

```text Then ask your agent
Use Zenrows to read the Amazon Best Sellers list for Kitchen & Dining
from the US, pages 1 and 2. Return rank, ASIN, title, price and review
count as a table, and mark every product with fewer than
20,000 reviews: those are the newer listings selling fast.
https://www.amazon.com/Best-Sellers-Kitchen-Dining/zgbs/kitchen
```

## Track best sellers at scale with Batch and Crawl

**Batch** runs every list you track as one job. Put the category and page in the `external_id`, schedule the job once a day, and each run gives you a dated snapshot of the rankings to compare with the last one. A job accepts more than 10,000 URLs, enough for every subcategory in several stores.

**Crawl** maps the category tree for you. Start it on the best sellers home page, keep only links that contain `/zgbs/`, and it returns the list URL of each department and subcategory it reaches. Send those URLs to Batch, and the ASINs they return to the [Amazon ASIN scraper](/scrape/amazon-asin) for full product records.

```bash Batch (cURL)
curl -X POST "https://async.api.zenrows.com/v1/jobs" \
  -H "X-API-Key: YOUR_ZENROWS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "regular",
    "status": "closed",
    "zenrows_params": { "mode": "auto", "extract": "auto", "proxy_country": "us" },
    "tasks": [
      { "url": "https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics", "external_id": "electronics-p1" },
      { "url": "https://www.amazon.com/Best-Sellers-Kitchen-Dining/zgbs/kitchen?pg=2", "external_id": "kitchen-p2" }
    ]
  }'

# Read the results when the job finishes
curl "https://async.api.zenrows.com/v1/jobs/JOB_ID/results?status=successful" \
  -H "X-API-Key: YOUR_ZENROWS_API_KEY"
```

```bash Batch (CLI)
# lists.jsonl: one {"url": "...", "external_id": "...", "extract": "auto"} per line
zenrows batch create lists.jsonl --proxy-country us --wait
zenrows batch results <job-id> --out amazon-best-sellers.jsonl
```

```bash Crawl (cURL)
curl -X POST "https://api.zenrows.com/v1/crawls" \
  -H "X-API-Key: YOUR_ZENROWS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://www.amazon.com/Best-Sellers/zgbs",
    "depth": 2,
    "max_pages": 300,
    "include_patterns": ["/zgbs/"]
  }'
```

**Scheduled jobs** run the same Batch job on a timetable, on Zenrows' side: every few hours, once a day, at set times on chosen days, or once at a future date. Each run keeps its own results, a webhook can tell your app when a run finishes, and you can pause or resume the schedule at any time, with no cron server to keep alive.

```bash Scheduled job (cURL)
# Runs every day on Zenrows' side; each run keeps its own results
curl -X POST "https://async.api.zenrows.com/v1/jobs" \
  -H "X-API-Key: YOUR_ZENROWS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
      "type": "scheduled",
      "status": "closed",
      "schedule": {
        "rate": {
          "every": 1,
          "unit": "day"
        }
      },
      "zenrows_params": {
        "mode": "auto",
        "extract": "auto",
        "proxy_country": "us"
      },
      "tasks": [
        {
          "url": "https://www.amazon.com/Best-Sellers-Kitchen-Dining/zgbs/kitchen",
          "external_id": "amazon-best-sellers"
        }
      ]
    }'

# Or at set times: "schedule": { "calendar": { "times_of_day": ["09:00"],
#   "cadence": { "weekly": { "days": ["mon", "thu"] } } }, "timezone": "Europe/Madrid" }
```

## What teams do with Amazon best sellers data

| Use case | Data they pull | Who runs it |
|---|---|---|
| Product discovery and sourcing | ASINs that climb into a subcategory's top ranks, with price and review count | Private label sellers and sourcing teams |
| Category share tracking | Daily rank of each brand's ASINs against competitors in the same list | Brand managers and Amazon agencies |
| Launch monitoring | Rank of a new ASIN from its first day, next to its review count | Product and marketing teams |
| Price band analysis | Prices of the top sellers in a category, to see where demand sits | Pricing and category teams |
| Market sizing and investment research | How many brands hold the top ranks, and how fast they turn over | Investors, aggregators and analysts |
| Affiliate and gift content | Current top products with rating, review count and image | Publishers and affiliate teams |
| Trend datasets for AI and RAG | Dated rankings across categories as JSON or Markdown | AI and data teams |

## Tips for scraping Amazon best sellers

- **Use the `/zgbs/` URL of the exact list.** `https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics` ranks the whole department; the subcategories in the sidebar each have their own URL with a numeric node, such as `/zgbs/electronics/172541` for Headphones, and a much narrower ranking, which is usually where a brand competes.
- **Page 2 is `?pg=2` and keeps counting.** On Oct 22, 2026 the Kitchen & Dining second page started at `rank` 51 with the Vtopmart containers. Read `rank` from the record and ignore the slot number inside `product_url`, which restarts at 1 on every page.
- **Key every row by date, category and ASIN.** A ranking only means something next to the previous one, and the ASIN is the join to the [Amazon reviews scraper](/scrape/amazon-reviews) or the [Amazon price scraper](/scrape/amazon-prices) when you need more than the list shows.
- **Parse `price` before you sum it.** The list returns the price as text with the currency sign, such as `$87.05`, and returns `null` when Amazon prints no single price for the slot, as for the Stanley tumbler at rank 3 on the Kitchen & Dining list.
- **Strip the label from `category_name`.** Amazon's sidebar appends `(Current)` to the category you are on, so remove it before you use the value as a category label.
- **Rebuild clean product URLs from the ASIN.** `product_url` carries list tracking and a session segment; `https://www.amazon.com/dp/` plus the ASIN opens the same product without them.
- **Match the country to the store.** Rankings, prices and the products in a list differ between amazon.com, amazon.co.uk, amazon.de and the other stores, so request each store's list from its own country.

## Frequently asked questions

### Is it legal to scrape Amazon Best Sellers?

Best sellers lists are public pages that show product names, ranks, prices and ratings to every visitor, and collecting that kind of data for market research is common practice. The lists hold no reviewer names or other personal data, but if you go on to collect reviews, laws such as the GDPR and the CCPA apply to any personal data in them. Check Amazon's terms for your use case and ask your lawyer if you are unsure.

### Is there an official Amazon API for best sellers?

Amazon's Product Advertising API returns a product's sales rank to approved Amazon Associates, and the Selling Partner API returns sales rank data to registered sellers, each within its own access rules. Both work from products you already know. Teams that want the ordered list a shopper sees on a best sellers page, including the products they have not heard of yet, read the page itself.

### What Amazon best sellers pages can I scrape?

Any Best Sellers list under /zgbs/ : the department lists such as Electronics or Kitchen & Dining, the subcategory lists inside them, and the second page of each with ?pg=2 . The same URLs work on the other Amazon country stores. For product pages and search results, use the Amazon scraper .

### How often does the Amazon Best Sellers ranking change?

Amazon describes the lists as updated frequently, and ranks in busy categories move within a day. Teams that study trends usually snapshot each list daily; teams that watch a launch or a sale event run the same lists several times a day.

### How do I scrape the second page of a best sellers list?

Add ?pg=2 to the list URL, the same link Amazon's "Next page" button opens. Each record carries its own rank , which continues from 51 on the second page, so you can merge both pages of a list and sort by rank.

### Does the best sellers list show sales numbers?

No. Amazon ranks by sales and shows the order, the price, the star rating and the number of ratings, but no units. Teams use rank over time and review count growth as proxies, together with the "bought in past month" label that Amazon search results carry, which the Amazon scraper returns.

### How do I scrape Amazon Best Sellers with Python?

Send a GET request to https://api.zenrows.com/v1/ with your API key, the best sellers URL, Adaptive Stealth Mode and Extract turned on, as in the Python example above. response.json()["parsed"]["ranked_products"] is a list of dictionaries in rank order. The zenrows package on PyPI wraps the same request.

### Can AI agents scrape Amazon Best Sellers with Zenrows?

Yes. Connect the Zenrows MCP server to Claude, Cursor, Codex or any MCP client, or give your agent the Zenrows CLI. Name the category and what you want to know about its ranking, and the agent calls Fetch and Extract for you.

### Can I scrape Amazon on a schedule?

Yes. Create a scheduled Batch job with your Amazon URLs and the same settings as a single request, and Zenrows runs it on its side: every few hours, once a day, at set times on chosen days, or once at a future date. Each run keeps its own results, a webhook can notify your app when a run finishes, and the schedule can be paused or resumed at any time.

### Which integrations work with the Amazon best sellers scraper?

Zenrows works with n8n, Make, Zapier, Clay, Dify, LangChain, LlamaIndex, CrewAI and Mastra, plus the Python, Node.js and Go SDKs and any HTTP client. A daily n8n or Make workflow that appends each ranking to Google Sheets or a warehouse table is the common setup. See the integrations page for the full list.

### What format does the data come in?

JSON by default, with page_context and ranked_products in parsed and the original page in html . You can also ask for the list as Markdown or plain text, which suits LLM and RAG pipelines.

## More Amazon scrapers

- [Amazon scraper](https://www.zenrows.com/scrape/amazon.md)
- [Amazon ASIN scraper](https://www.zenrows.com/scrape/amazon-asin.md)
- [Amazon reviews scraper](https://www.zenrows.com/scrape/amazon-reviews.md)
- [Amazon price scraper](https://www.zenrows.com/scrape/amazon-prices.md)
- [Amazon seller scraper](https://www.zenrows.com/scrape/amazon-sellers.md)

All scrapers: https://www.zenrows.com/scrape. Start free: https://app.zenrows.com/register. Docs: https://docs.zenrows.com

## Structured data



<script type="application/ld+json">
{"@context":"https://schema.org","@graph":[{"@type":"WebPage","@id":"https://www.zenrows.com/scrape/amazon-best-sellers#webpage","url":"https://www.zenrows.com/scrape/amazon-best-sellers","name":"Amazon best sellers scraper","description":"Scrape Amazon Best Sellers lists as JSON: rank, ASIN, title, price, star rating and review count for each product in a category, page by page, via API or MCP.","isPartOf":{"@id":"https://www.zenrows.com/#website"},"inLanguage":"en","datePublished":"2026-10-22","dateModified":"2026-10-22","about":{"@type":"WebSite","name":"Amazon","url":"https://amazon.com"},"keywords":"amazon best sellers scraper, amazon best sellers scraper","mainEntity":{"@id":"https://www.zenrows.com/scrape/amazon-best-sellers#scraper"},"publisher":{"@type":"Organization","name":"Zenrows","url":"https://www.zenrows.com/"}},{"@type":"SoftwareApplication","@id":"https://www.zenrows.com/scrape/amazon-best-sellers#scraper","name":"Amazon best sellers scraper by Zenrows","url":"https://www.zenrows.com/scrape/amazon-best-sellers","applicationCategory":"DeveloperApplication","operatingSystem":"Any (HTTP API, CLI, MCP)","description":"The Zenrows Amazon best sellers scraper turns an Amazon Best Sellers category URL into structured JSON: the list title and category, then for each ranked product its rank, ASIN, title, price, star rating, review count, product URL, reviews URL and image. Fetch in Adaptive Stealth Mode opens the list and Extract returns the fields, through the API, the CLI or an AI agent.","featureList":"Category rank, ASIN, price, rating and review count per product","offers":{"@type":"Offer","price":"0","priceCurrency":"USD"},"provider":{"@type":"Organization","name":"Zenrows","url":"https://www.zenrows.com/"}},{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://www.zenrows.com/"},{"@type":"ListItem","position":2,"name":"Scrapers","item":"https://www.zenrows.com/scrape"},{"@type":"ListItem","position":3,"name":"Amazon best sellers scraper","item":"https://www.zenrows.com/scrape/amazon-best-sellers"}]},{"@type":"FAQPage","@id":"https://www.zenrows.com/scrape/amazon-best-sellers#faq","mainEntity":[{"@type":"Question","name":"Is it legal to scrape Amazon Best Sellers?","acceptedAnswer":{"@type":"Answer","text":"Best sellers lists are public pages that show product names, ranks, prices and ratings to every visitor, and collecting that kind of data for market research is common practice. The lists hold no reviewer names or other personal data, but if you go on to collect reviews, laws such as the GDPR and the CCPA apply to any personal data in them. Check Amazon's terms for your use case and ask your lawyer if you are unsure."}},{"@type":"Question","name":"Is there an official Amazon API for best sellers?","acceptedAnswer":{"@type":"Answer","text":"Amazon's Product Advertising API returns a product's sales rank to approved Amazon Associates, and the Selling Partner API returns sales rank data to registered sellers, each within its own access rules. Both work from products you already know. Teams that want the ordered list a shopper sees on a best sellers page, including the products they have not heard of yet, read the page itself."}},{"@type":"Question","name":"What Amazon best sellers pages can I scrape?","acceptedAnswer":{"@type":"Answer","text":"Any Best Sellers list under /zgbs/ : the department lists such as Electronics or Kitchen & Dining, the subcategory lists inside them, and the second page of each with ?pg=2 . The same URLs work on the other Amazon country stores. For product pages and search results, use the Amazon scraper ."}},{"@type":"Question","name":"How often does the Amazon Best Sellers ranking change?","acceptedAnswer":{"@type":"Answer","text":"Amazon describes the lists as updated frequently, and ranks in busy categories move within a day. Teams that study trends usually snapshot each list daily; teams that watch a launch or a sale event run the same lists several times a day."}},{"@type":"Question","name":"How do I scrape the second page of a best sellers list?","acceptedAnswer":{"@type":"Answer","text":"Add ?pg=2 to the list URL, the same link Amazon's \"Next page\" button opens. Each record carries its own rank , which continues from 51 on the second page, so you can merge both pages of a list and sort by rank."}},{"@type":"Question","name":"Does the best sellers list show sales numbers?","acceptedAnswer":{"@type":"Answer","text":"No. Amazon ranks by sales and shows the order, the price, the star rating and the number of ratings, but no units. Teams use rank over time and review count growth as proxies, together with the \"bought in past month\" label that Amazon search results carry, which the Amazon scraper returns."}},{"@type":"Question","name":"How do I scrape Amazon Best Sellers with Python?","acceptedAnswer":{"@type":"Answer","text":"Send a GET request to https://api.zenrows.com/v1/ with your API key, the best sellers URL, Adaptive Stealth Mode and Extract turned on, as in the Python example above. response.json()[\"parsed\"][\"ranked_products\"] is a list of dictionaries in rank order. The zenrows package on PyPI wraps the same request."}},{"@type":"Question","name":"Can AI agents scrape Amazon Best Sellers with Zenrows?","acceptedAnswer":{"@type":"Answer","text":"Yes. Connect the Zenrows MCP server to Claude, Cursor, Codex or any MCP client, or give your agent the Zenrows CLI. Name the category and what you want to know about its ranking, and the agent calls Fetch and Extract for you."}},{"@type":"Question","name":"Can I scrape Amazon on a schedule?","acceptedAnswer":{"@type":"Answer","text":"Yes. Create a scheduled Batch job with your Amazon URLs and the same settings as a single request, and Zenrows runs it on its side: every few hours, once a day, at set times on chosen days, or once at a future date. Each run keeps its own results, a webhook can notify your app when a run finishes, and the schedule can be paused or resumed at any time."}},{"@type":"Question","name":"Which integrations work with the Amazon best sellers scraper?","acceptedAnswer":{"@type":"Answer","text":"Zenrows works with n8n, Make, Zapier, Clay, Dify, LangChain, LlamaIndex, CrewAI and Mastra, plus the Python, Node.js and Go SDKs and any HTTP client. A daily n8n or Make workflow that appends each ranking to Google Sheets or a warehouse table is the common setup. See the integrations page for the full list."}},{"@type":"Question","name":"What format does the data come in?","acceptedAnswer":{"@type":"Answer","text":"JSON by default, with page_context and ranked_products in parsed and the original page in html . You can also ask for the list as Markdown or plain text, which suits LLM and RAG pipelines."}}]}]}
</script>
