Amazon Bestsellers Scraper: Product Photo & Spec Details
Pricing
Pay per usage
Amazon Bestsellers Scraper: Product Photo & Spec Details
Amazon Bestsellers Scraper extracts top-selling products from any Amazon bestseller category. Capture titles, prices, ratings, ranks, images, and key details. Ideal for market research, product validation, competitor tracking, and workflows needing structured bestseller data.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
API Empire
Maintained by CommunityActor stats
0
Bookmarked
14
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Amazon Bestsellers Scraper — Extract Rankings, Photos & Specs as JSON
Amazon Bestsellers Scraper: Product Photo & Spec Details reads any Amazon Best Sellers category and returns every ranked product as structured JSON — grid data (rank, price, rating) plus product-detail fields (brand, images, specifications, variations, seller, description) once enrichment is on. Every response is typed, normalized JSON — no HTML, no selectors. It covers six Amazon marketplaces: .com, .co.uk, .de, .fr, .es and .it. After reading this, you'll know which fields to expect and how to turn one ranked category into a fully enriched product catalog in a single run.
What is Amazon Bestsellers Scraper: Product Photo & Spec Details?
Amazon Bestsellers Scraper: Product Photo & Spec Details is an Apify Actor that walks an Amazon Best Sellers category page — including its ranked grid and, optionally, its subcategory tree — and, for every ranked product, can also fetch that product's own /dp/ detail page to pull the data that normally only lives there. No Amazon account or login is required; the Actor reads the same public pages a logged-out browser sees.
- Scrape the Best Sellers ranking grid — position, ASIN, price, rating, review count
- Fetch each product's photo gallery and thumbnail
- Fetch each product's specification table, feature bullets, brand and description
- Capture Best Sellers Rank across every category a product ranks in, plus variations and seller
- Export as JSON, CSV, XML or Excel, or pull results through the Apify API
What data does Amazon Bestsellers Scraper: Product Photo & Spec Details collect?
A single run can return best-seller ranking data, product photos, and full specification/description data for the same product — enrichment is optional per run and controlled by one input flag.
| Data Type | Key Fields | JSON Field Names |
|---|---|---|
| Best-seller ranking | grid rank position, ASIN, category rank list, category names | position, asin, bestsellerRanks, categoryName, categoryFullName |
| Product photos | image gallery, grid thumbnail | images, thumbnailUrl |
| Specifications & description | brand, feature bullets, spec table, description, variations | brand, features, productSpecification, productDescription, variations |
| Price, rating & availability | price, currency, star rating, review count, offer count, stock status, seller | price, currencyCode, stars, reviewsCount, numberOfOffers, availability, seller |
Need more Amazon data?
If you need to discover which products are trending before you rank them — by keyword, badge (Best Seller / Amazon's Choice / New Release), or computed opportunity score — Amazon Search Products & Trending Scraper covers that discovery step. If you need to identify and profile the sellers behind a niche instead of the products themselves, Amazon Seller Data Extractor By Keyword Search resolves sellers by keyword, ASIN, or seller ID, including the EU business-transparency panel. Both sit alongside this Actor under the API-Empire account.
How does Amazon Bestsellers Scraper differ from the official Amazon API?
Amazon's own Product Advertising API (PA-API) requires an active Amazon Associates (affiliate) account, and access is tied to that account staying in good standing under Amazon's affiliate program terms. Amazon Bestsellers Scraper: Product Photo & Spec Details runs directly as an Apify Actor and does not require an Amazon account, an Associates approval, or any API credentials.
| Feature | Amazon Product Advertising API (PA-API) | Amazon Bestsellers Scraper |
|---|---|---|
| Access requirement | Active, approved Amazon Associates account | None — runs directly on Apify |
| Approval process | Subject to Associates Program eligibility and standing | No approval step; start a run immediately |
| Best Sellers category browsing | Built for ASIN/keyword catalog lookups, not for crawling a Best Sellers category grid | Walks the full Best Sellers grid plus one subcategory level |
| Product detail depth | Returns the resource fields the API exposes per ASIN | Returns full PDP fields — brand, images, specs, variations, seller, description |
| Multi-marketplace setup | Configured per marketplace within the Associates account | Same input handles .com, .co.uk, .de, .fr, .es, .it by URL |
| Output format | JSON per PA-API's own response schema | Typed, normalized JSON with one stable schema across marketplaces |
The PA-API is the right choice if you already run an approved Associates account and only need ASIN-scoped catalog lookups inside an affiliate application. Amazon Bestsellers Scraper fits better when you need to browse and rank an entire Best Sellers category and enrich every result with full product-detail fields, without maintaining Associates approval.
Why do developers and teams scrape Amazon?
Amazon Best Sellers and product-detail data support several distinct workflows, from sourcing to AI pipelines.
For product research and sourcing teams
Sourcing teams and dropshippers use Best Sellers rankings to find products with proven demand, then need the product-detail layer — brand, productSpecification, variations, seller — to evaluate a specific listing before committing to it. A typical workflow ranks a category with topProductsPerCategory, then enables fetchProductDetails only for the top slice to check specs and seller/fulfillment data without paying to enrich the whole category. This turns a ranked list into a shortlist with enough detail to decide sourcing viability in one pass.
For market and category analysts
Analysts track which brands and specifications dominate a category's Best Sellers list over time. By reading bestsellerRanks alongside brand, productSpecification, and price, an analyst can compare how competing products in the same category differ on the attributes that actually drive ranking, rather than guessing from a storefront screenshot. Because subcategoryCrawlDepth can pull in the left-nav subcategory tree, the same run can compare a parent category against its subcategories in one dataset, giving a category-wide view of pricing, ratings, and specification trends without opening each product individually.
For AI engineers and agent builders
Product photo and specification data is a natural fit for retrieval-augmented generation and shopping agents. An engineer can index productDescription, productSpecification, and features into a vector store, and pass images URLs directly to a multimodal model, letting an agent answer "what does this best-selling product look like and what are its specs" without an HTML-parsing step. Because every field is typed JSON, it drops straight into an agent tool or embedding pipeline, without a separate cleanup or normalization step before it reaches the model.
For competitive intelligence and brand teams
Brand teams monitor which competitors hold Best Sellers Rank positions in their category and how those products are positioned — bestsellerRanks, brand, features, and variations show both rank and the product attributes behind it. A recurring run against the same category URL lets a team track rank movement and specification changes for competing products over successive runs, without manually reopening each product page every time a rank list needs checking, and without maintaining a separate PDP scraper alongside the ranking one.
How to scrape Amazon (step by step)
- Open Amazon Bestsellers Scraper: Product Photo & Spec Details on its Apify Store listing, or find it under the API-Empire account in Apify Console.
- Paste one or more Amazon Best Sellers category URLs into
bestSellerCategoryUrls— no input is strictly required by the schema, but this is what the Actor actually needs to scrape anything. - Set
topProductsPerCategoryandsubcategoryCrawlDepthto control how much of the grid and subcategory tree to walk, then turn onfetchProductDetails(optionally capped withmaxDetailFetches) if you want brand, photos, specs and seller data added. - Start the run — no Amazon account, login, or API token is required.
- Open the Dataset tab and export results as JSON, CSV, Excel, or XML, or pull them through the Apify API.
What to do when Amazon changes its structure
Amazon Bestsellers Scraper: Product Photo & Spec Details is actively maintained, and its output schema is kept stable so existing integrations keep working when Amazon changes its page markup. No specific fix turnaround is guaranteed, but field names and types on your end don't change as a result of an Amazon-side update.
⬇️ Input
| Parameter | Required | Type | Description | Example Value |
|---|---|---|---|---|
bestSellerCategoryUrls | No | array | One or more Amazon Best Sellers category page URLs (must contain best-sellers or bestsellers). Every ranked product found becomes a row; turn on PDP enrichment to add its full detail page. | ["https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics/"] |
topProductsPerCategory | No | integer | How many top-ranked best-seller products to capture from each category URL (1–500). Default 100. | 50 |
subcategoryCrawlDepth | No | integer | 1 = main category only, 2+ = also crawl the left-nav subcategory tree (one extra level). Default 2. | 2 |
fetchProductDetails | No | boolean | When on, fetches each ranked product's detail page to add brand, fullTitle, bestsellerRanks[], features[], images[], variations[], seller{}, productSpecification[], productDescription, availability and breadcrumbCategories[]. Default false. | true |
maxDetailFetches | No | integer | Cap on how many product detail pages to fetch in the whole run (only applies when fetchProductDetails is on). 0 = enrich every scraped product. Default 0. | 50 |
storefrontLanguage | No | string | Language to use on Amazon. If the chosen language isn't supported on the target domain, the domain's default language is used instead. | "en" |
bypassCaptchaBlocks | No | boolean | When Amazon serves a robot-check/captcha page, keeps retrying with extra backoff to work past it (may slow the run and increase requests). Default false. | false |
proxyConfiguration | No | object | Proxy settings. Default is DIRECT (no proxy). Residential proxy is recommended when fetching product details at scale to avoid blocks. | {"useApifyProxy": true} |
Example input
{"bestSellerCategoryUrls": ["https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics/"],"topProductsPerCategory": 50,"subcategoryCrawlDepth": 1,"fetchProductDetails": true,"maxDetailFetches": 50,"storefrontLanguage": "en","bypassCaptchaBlocks": false,"proxyConfiguration": { "useApifyProxy": true }}
The most common input mistake is leaving fetchProductDetails off and then expecting brand, images, productSpecification, seller and the other detail-page fields to be populated — with it off, those fields are returned null/empty and only the fast grid fields (rank, price, rating) are filled in.
⬆️ Output
Results are written as typed, normalized JSON dataset rows, streamed live as products are collected. Export from the Dataset tab as JSON, CSV, Excel, or XML, or pull results through the Apify API. Every row is billed under the row_result charged event — there are no separate uncharged summary or accounting rows in this Actor's default output. When fetchProductDetails is on, enriched rows are additionally mirrored (uncharged) into a per-run *-product-details dataset for convenient downstream processing.
Best-seller grid row (fetchProductDetails off)
{"name": "Apple AirPods Pro (2nd Gen)","url": "https://www.amazon.com/dp/B0BDHWDR12","asin": "B0BDHWDR12","position": 1,"price": { "value": 189.99, "currency": "$" },"numberOfOffers": null,"stars": 4.7,"reviewsCount": 128340,"thumbnailUrl": "https://images-na.ssl-images-amazon.com/images/I/61SUj2._UL300_.jpg","categoryName": "Electronics","categoryFullName": "Best Sellers in Electronics","subcategories": [{ "categoryName": "Headphones & Earbuds", "categoryUrl": "https://www.amazon.com/Best-Sellers-Electronics-Headphones/zgbs/electronics/172541" }],"categoryUrl": "https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics/","input": "https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics/","currencyCode": "USD","type": "product","isEnriched": false,"scrapedAt": "2026-07-25T09:00:00Z","brand": null,"fullTitle": null,"bestsellerRanks": [],"features": [],"images": [],"variations": [],"seller": null,"productSpecification": [],"productDescription": null,"availability": null,"breadcrumbCategories": []}
Enriched product detail row (fetchProductDetails on)
{"name": "Apple AirPods Pro (2nd Gen)","url": "https://www.amazon.com/dp/B0BDHWDR12","asin": "B0BDHWDR12","position": 1,"price": { "value": 189.99, "currency": "$" },"numberOfOffers": null,"stars": 4.7,"reviewsCount": 128340,"thumbnailUrl": "https://images-na.ssl-images-amazon.com/images/I/61SUj2._UL300_.jpg","categoryName": "Electronics","categoryFullName": "Best Sellers in Electronics","subcategories": [{ "categoryName": "Headphones & Earbuds", "categoryUrl": "https://www.amazon.com/Best-Sellers-Electronics-Headphones/zgbs/electronics/172541" }],"categoryUrl": "https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics/","input": "https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics/","currencyCode": "USD","type": "product","isEnriched": true,"scrapedAt": "2026-07-25T09:02:14Z","brand": "Apple","fullTitle": "Apple AirPods Pro (2nd Generation) Wireless Earbuds with MagSafe Charging Case","bestsellerRanks": [{ "rank": 1, "category": "Electronics", "url": "https://www.amazon.com/gp/bestsellers/electronics" },{ "rank": 1, "category": "Earbud & In-Ear Headphones", "url": "https://www.amazon.com/gp/bestsellers/electronics/172541" }],"features": ["Active Noise Cancellation", "Adaptive Transparency", "Personalized Spatial Audio"],"images": ["https://m.media-amazon.com/images/I/61SUj2._SL1500_.jpg"],"variations": [{ "value": "White", "asin": "B0BDHWDR12", "dpUrl": "https://www.amazon.com/dp/B0BDHWDR12" }],"seller": { "soldBy": "Amazon.com", "sellerId": null, "fulfilledBy": "Amazon" },"productSpecification": [{ "name": "Connectivity Technology", "value": "Bluetooth" }],"productDescription": "The AirPods Pro feature up to 2x more Active Noise Cancellation and Adaptive Transparency mode.","availability": "In Stock","breadcrumbCategories": [{ "name": "Electronics", "url": "https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics/", "node": "172282" }]}
How many results can you scrape with Amazon Bestsellers Scraper?
topProductsPerCategory accepts 1–500, applied separately to each URL you list in bestSellerCategoryUrls — there's no combined cap across category URLs, so total run size is the sum of each category's own cap. Categories are scraped concurrently, with pagination walking Amazon's own Best Sellers pages until the cap is reached or the category runs out of pages. When subcategoryCrawlDepth is 2 or higher, one extra subcategory level is also crawled; values above 2 don't currently reach further than that one extra level. Product-detail enrichment has its own separate limit: maxDetailFetches caps total PDP fetches across the whole run (shared across all categories running concurrently), with 0 meaning every scraped product is enriched. There is no measured benchmark for how long a full run takes, since that depends on the category size and whether enrichment is on.
Integrate Amazon Bestsellers Scraper and automate your workflow
Amazon Bestsellers Scraper: Product Photo & Spec Details works with any language or tool that can send an HTTP request, since it runs as a standard Apify Actor.
REST API integration
from apify_client import ApifyClientclient = ApifyClient("<APIFY_API_TOKEN>")run = client.actor("API-Empire/amazon-bestsellers-scraper-product-photo-spec-details").call(run_input={"bestSellerCategoryUrls": ["https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics/"],"topProductsPerCategory": 50,"fetchProductDetails": True,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["asin"], item["position"], item.get("brand"))
Works in Python, Node.js, Go, Ruby, cURL — any client that can call the Apify API with your token.
MCP for AI agents
Apify's MCP server (mcp.apify.com) exposes Apify Actors — including this one — as callable tools for MCP-compatible clients such as Claude Desktop, Cursor, and Windsurf. Add this Actor's name, as shown on its Apify Store page, to the server's actor list to make it callable as an agent tool without writing custom integration code.
Automation platforms (n8n, Make, LangChain)
In n8n, the community Apify node's "Run Actor" operation can call Amazon Bestsellers Scraper by Actor ID and pass bestSellerCategoryUrls/fetchProductDetails as JSON, then feed the resulting dataset items into downstream nodes. In Make, the Apify app's "Run an Actor or Task" module runs the same Actor and lets you map each returned product row (rank, price, images, specs) into another scenario step, such as a spreadsheet or a Slack alert. Any LangChain agent that can call an HTTP tool can invoke the Actor through the Apify API and consume its dataset items directly as typed JSON, without a parsing step.
Is it legal to scrape Amazon?
Scraping publicly accessible Amazon product and Best Sellers pages is generally lawful, and this Actor only returns data any visitor can see without logging in — rankings, prices, images, specifications, and descriptions. This is business/product catalogue data, not personal data, so it's governed primarily by Amazon's Terms of Service and database-rights considerations rather than personal-data law like GDPR. The seller field reflects a store name and fulfillment method, not an individual's personal details. Consult legal counsel for commercial use cases, particularly at high volume or when reselling the collected data.
Frequently asked questions
Does Amazon Bestsellers Scraper work without an Amazon account?
Yes. No Amazon login, cookies, or API credentials are required — the Actor reads the same public Best Sellers and product pages a logged-out browser can see.
How often is the scraped data updated?
Each run fetches live data directly from Amazon at run time; nothing is served from a cache, so results reflect whatever is publicly visible on the category and product pages at the moment the run executes.
What happens if a category page fails to load or a product's detail page is blocked?
If a Best Sellers category page can't be loaded after retries, that category is skipped and logged, while other category URLs in the same run continue normally. If a specific product's detail-page fetch fails (for example, a persistent robot-check page), that row keeps its grid fields with isEnriched: false and the detail fields left null/empty, rather than failing the whole run.
Can I scrape private or restricted Amazon content?
No. Only publicly visible Best Sellers category pages and product detail pages are returned — content that requires being logged in, such as account-specific pricing or buyer-only information, is not accessed.
Which Amazon marketplaces does this scraper support?
It works on amazon.com, amazon.co.uk, amazon.de, amazon.fr, amazon.es and amazon.it — paste that marketplace's Best Sellers URL and, optionally, set storefrontLanguage to match.
Does Amazon Bestsellers Scraper work for AI agent workflows and LLM pipelines?
Yes. It's callable as an HTTP endpoint through the Apify API from any agent framework, and every response is typed JSON with stable field names — no HTML and no parsing step before passing results to an LLM.
How does Amazon Bestsellers Scraper handle Amazon's anti-bot defenses?
When bypassCaptchaBlocks is enabled, the Actor retries robot-check/captcha pages with extra backoff instead of giving up after the first block. Proxy usage is optional and off by default (DIRECT); enabling proxyConfiguration with a residential proxy is recommended when running product-detail enrichment at scale.
Does Amazon Bestsellers Scraper return data in a format LLMs can use directly?
Yes. Output is typed, normalized JSON with stable field names, so it can be passed directly into an LLM context window, indexed into a vector store, or routed through an agent tool without extra parsing.
Can I use Amazon Bestsellers Scraper without managing proxies?
Yes. The default is no proxy (DIRECT), and the Actor runs without any proxy setup; enabling Apify Proxy is optional and mainly recommended for large-scale product-detail enrichment.
What happens when Amazon changes its structure or blocks the scraper?
The Actor is actively maintained, and its output schema stays stable — field names and types don't change on your end because of an Amazon-side update. No specific turnaround time is guaranteed for fixes.
Your feedback
Found a bug, or a field that's missing from your results? We want to know. Report it through the Issues tab on this Actor's Apify Store page, or reach out to API-Empire through Apify Console — active reports directly shape what gets fixed and maintained next.