Amazon Books Bestseller Charts Scraper avatar

Amazon Books Bestseller Charts Scraper

Pricing

from $1.60 / 1,000 record scrapeds

Go to Apify Store
Amazon Books Bestseller Charts Scraper

Amazon Books Bestseller Charts Scraper

Scrape Amazon book bestseller charts including Best Sellers, Hot New Releases, Movers and Shakers, and Most Wished For. Collects rank, title, author, ASIN, format, price, rating, and review count across hundreds of book sub-categories with timestamped snapshots for trend analysis.

Pricing

from $1.60 / 1,000 record scrapeds

Rating

5.0

(1)

Developer

BowTiedRaccoon

BowTiedRaccoon

Maintained by Community

Actor stats

0

Bookmarked

65

Total users

17

Monthly active users

3 days ago

Last modified

Categories

Features

Limited permissions

Share

Scrape Amazon book bestseller charts including Best Sellers, Hot New Releases, Movers and Shakers, and Most Wished For. Collects rank, title, author, ASIN, format, price, star rating, and review count across book sub-categories with timestamped snapshots for trend analysis.

What it does

For each chart type, category and Amazon site you choose, the actor returns the chart entries with rank, title, author, ASIN, price, rating, and format, each saved as a dataset record with a scraped_at timestamp.

  • Eight Amazon sites in one run: amazon.com, .co.uk, .de, .fr, .it, .es, .ca and .com.au, mixed freely.
  • Subcategories: switch on includeSubcategories to also get the charts of every subcategory, up to three levels down.
  • Paste chart URLs: give categoryUrls instead of picking charts and nodes by hand.
  • Numeric prices with a currency code, not price strings that need cleaning.
  • Per-category limit with maxItemsPerCategory, so a wide subcategory sweep returns the top few of each.

This makes it ideal for building rank-over-time datasets — schedule it hourly to track how books move up and down the charts.

Input

FieldTypeDefaultDescription
chartTypesarray (select)["best_sellers"]Chart types to scrape: best_sellers, hot_new_releases, movers_and_shakers, most_wished_for
categoryNodesarray[""] (root Books)Numeric Amazon category node IDs. Leave empty for root Books. Examples: "3" = Business & Money, "4" = Children's, "5" = Computers
marketplacesarray (select)["amazon.com"]Amazon sites to read: amazon.com, amazon.co.uk, amazon.de, amazon.fr, amazon.it, amazon.es, amazon.ca, amazon.com.au
categoryUrlsarraynoneAmazon Books chart page URLs from any listed site. When set, chartTypes, categoryNodes and marketplaces are ignored
includeSubcategoriesbooleanfalseAlso scrape each category's subcategories
subcategoryDepthinteger1Subcategory levels to follow, 1 to 3 (with includeSubcategories)
maxItemsPerCategoryintegernoneStop after this many records from each category chart
maxItemsinteger10Maximum number of records per run. Set it high when you include subcategories: charts are read in order, parent first

Category node IDs differ per Amazon site; copy them from the chart URL on that site.

Example input

{
"chartTypes": ["best_sellers", "hot_new_releases"],
"categoryNodes": ["3", "6"],
"maxItems": 200
}

Top 10 of every subcategory under Business & Money on amazon.com:

{
"chartTypes": ["best_sellers"],
"categoryNodes": ["3"],
"includeSubcategories": true,
"maxItemsPerCategory": 10,
"maxItems": 1000
}

Charts from different sites in one run, by URL:

{
"categoryUrls": [
"https://www.amazon.com/gp/bestsellers/books/3",
"https://www.amazon.co.uk/gp/bestsellers/books/68",
"https://www.amazon.de/gp/new-releases/books/187254"
],
"maxItems": 300
}

Output

Each record contains:

FieldTypeDescription
chart_typestringChart type: best_sellers, hot_new_releases, etc.
marketplacestringAmazon site the record came from, e.g. amazon.com, amazon.de
categorystringCategory name, e.g. Business & Money
category_nodestringAmazon category node ID
category_urlstringURL of the bestseller chart page this record was scraped from
rankintegerCurrent rank on the chart
titlestringBook title
authorstringAuthor name
asinstringAmazon Standard Identification Number
formatstringFormat: Paperback, Kindle, Hardcover, Audible
pricenumberCurrent price as a number, in the currency given in currency
list_pricenumberOriginal list price (not shown on chart pages, always null)
currencystringISO currency code the price was shown in (e.g. USD, GBP, EUR), null when no price was shown
star_ratingnumberAverage star rating (1.0–5.0)
review_countintegerTotal number of customer reviews
cover_urlstringProduct cover image URL
product_urlstringAmazon product page URL
scraped_atstringISO-8601 timestamp of when this record was delivered to you

Sample output record

{
"chart_type": "best_sellers",
"marketplace": "amazon.com",
"category": "Business & Money",
"category_node": "3",
"category_url": "https://www.amazon.com/best-sellers-books-Amazon/zgbs/books/3",
"rank": 5,
"title": "Unreasonable Hospitality",
"author": "Will Guidara",
"asin": "0593418573",
"format": "Hardcover",
"price": 16.00,
"currency": "USD",
"star_rating": 4.8,
"review_count": 6638,
"cover_url": "https://images-na.ssl-images-amazon.com/...",
"product_url": "https://www.amazon.com/dp/0593418573",
"scraped_at": "2026-05-23T04:19:54.245Z"
}

Common category node IDs

Node IDCategory
(empty)All Books (root)
1Arts & Photography
2Biographies & Memoirs
3Business & Money
4Children's Books
5Computers & Technology
6Cookbooks, Food & Wine
12290Christian Books & Bibles
4366Comics & Graphic Novels

Use cases

  • KDP analytics: Track how your own book climbs (or falls) across categories
  • Publisher research: Monitor competitor titles and pricing
  • Trend datasets: Build hourly rank-history time series for ML/analytics
  • Retail intelligence: Price monitoring and format mix analysis

Scheduling

This actor is designed for recurring use. Schedule it hourly via Apify's scheduler to capture rank snapshots over time and build a rank-over-time dataset.

Notes

  • Amazon's bestseller charts update hourly
  • Each category chart returns the full top 100 (ranks 1–100, no gaps) when Max Items allows it. Subcategories and extra sites add more charts.
  • Amazon prices by visitor location, so each Amazon site is read as a local shopper sees it: amazon.de prices are the ones a shopper in Germany sees, and amazon.com.au prices are in AUD. currency states what the page actually showed
  • Gets past Amazon's bot detection, run after run
  • chartTypes and categoryNodes are validated up front — an unrecognized chart type or a non-numeric category node fails the run immediately with the invalid value named, instead of quietly returning no data