Amazon Search Products & Trending Scraper avatar

Amazon Search Products & Trending Scraper

Pricing

Pay per usage

Go to Apify Store
Amazon Search Products & Trending Scraper

Amazon Search Products & Trending Scraper

Amazon Search Products Scraper collects product results from any Amazon search query. Extract titles, prices, ratings, images, sellers, availability, and key details. Ideal for market research, price tracking, product analysis, and workflows needing structured Amazon search data.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

API Empire

API Empire

Maintained by Community

Actor stats

0

Bookmarked

15

Total users

3

Monthly active users

5 days ago

Last modified

Share

Amazon Search Products & Trending Scraper pulls trending products from any Amazon keyword search or Best Sellers list and returns typed JSON: badges (Best Seller, Amazon's Choice, #1 New Release), Best-Sellers-Rank, "X bought in past month" demand, and a computed opportunity score per ASIN. Every response is normalized — no HTML, no selectors, no parsing step. Point it at a keyword, a search URL, or a /zgbs/ Best Sellers URL, and get back product-research data ready to filter, sort, or feed into an LLM.

Amazon Search Products & Trending Scraper is an Apify Actor that scans Amazon keyword searches and Best Sellers lists and returns every product it finds as a structured JSON row, enriched with trend and opportunity signals. It runs without an Amazon account or login — it reads only what a logged-out shopper can see. No proxy setup or bot-detection handling is required from the user; the Actor manages its own request headers and proxy fallback.

  • Scrape search-result products for any keyword or pasted search URL
  • Scrape Amazon Best Sellers (/zgbs/) list entries, ranked by position
  • Extract badges — Best Seller, Amazon's Choice, #1 New Release, Limited-time Deal, Climate Pledge Friendly, Small Business
  • Pull Best-Sellers-Rank and category per product (optional detail-page fetch)
  • Export as JSON or CSV, or push straight into a dataset for downstream automation

The Actor returns one row per product, drawn from two entry points — keyword/search-URL scans and Best Sellers list scans — plus an optional Best-Sellers-Rank detail lookup. All three feed the same output schema.

Data TypeKey FieldsJSON Field Names
Search-result productstitle, price, rating, review count, sales volume, opportunity scoreproductDescription, price, ratingValue, countReview, salesVolumeNumeric, opportunityScore
Badges & trend signalsbadge list, Best Seller flag, Amazon's Choice flag, New Release flagbadges, isBestSeller, isAmazonsChoice, isNewRelease
Best-Sellers-Rank detailrank number, rank category, top-rank categorybestsellerRanks, rankCategoryTop, bestsellerBadgeCategory
Best Sellers list entriesASIN, product URL, list position, price, ratingasin, productUrl, searchResultPosition, price, productRating

Need more Amazon data?

If you need seller-level data instead of product-level data, Amazon Seller Data Extractor By Keyword Search resolves real sellers by keyword, category, ASIN, or storefront URL, including the EU business-transparency panel (VAT/trade-register numbers). For deeper per-product enrichment — full detail-page specs, image galleries, and variations on top of the Best Sellers list — see Amazon Bestsellers Scraper: Product Photo & Spec Details.

Amazon's Product Advertising API (PA-API) is built for Amazon Associates: it requires an active, approved affiliate account, and continued access depends on driving qualifying sales through your affiliate links. Amazon Search Products & Trending Scraper runs against the public, logged-out storefront instead, so there is no affiliate approval step and no sales-qualification requirement to keep using it.

That trade-off matters for product research: PA-API is the right choice if you already run an Associates account and need Amazon-sanctioned product data inside an affiliate site. Amazon Search Products & Trending Scraper is the better fit when you need to scan arbitrary keywords or Best Sellers categories for trend and opportunity signals — badges, demand, rank — without an affiliate relationship in place.

Why do developers and teams scrape Amazon?

For product researchers and dropshippers

Finding a winning product means scanning many keywords and Best Sellers categories for signals that a listing is actually moving — not just ranking well on a given day. This Actor surfaces isBestSeller, isAmazonsChoice, salesVolumeNumeric, and a computed opportunityScore per ASIN in one pass, so a researcher can run a batch of category keywords through searchTerms, sort the resulting dataset by opportunityScore, and shortlist ASINs with proven demand (salesVolumeNumeric) but comparatively few competing reviews (reviewsPerMonthlySale) before committing budget to sourcing or private-label manufacturing.

For pricing and market analysts

Tracking how a market segment prices and ranks over time requires repeatable, structured snapshots rather than one-off manual searches typed into a browser. Analysts run the same searchTerms on a recurring schedule and compare price, retailPrice, and bestsellerRanks across runs to spot markdown patterns, new entrants climbing a category, or rank volatility ahead of a seasonal peak, using keyword and scrapedAt to line up each snapshot chronologically before charting the trend in a spreadsheet or BI tool.

For AI engineers and agent builders

Building a shopping or product-research agent needs a tool call that returns clean, typed data instead of raw HTML an LLM has to parse before it can reason over it. This Actor's JSON rows — asin, productDescription, price, badges, opportunityScore — can be passed directly into an agent's context window as a tool result, or indexed into a vector store for retrieval-augmented product Q&A, with no scraping, no HTML-cleanup, and no selector maintenance living inside the agent loop itself.

For developers building data products

Teams building price-tracking, trend-alert, or sourcing-recommendation products need a stable, machine-readable feed to build on top of rather than a scraper they have to babysit. Because every row carries consistent field names (asin, price, salesVolumeNumeric, opportunityScore) across both keyword-search and Best Sellers runs, developers can wire this Actor's dataset output directly into a database, a scheduled job, or an internal API layer without writing a separate parser for search-result pages versus Best Sellers list pages.

How to scrape Amazon (step by step)

  1. Open Amazon Search Products & Trending Scraper on its Apify Store listing and click Try for free (or Run) to open the input form — no separate signup beyond an Apify account is required.
  2. Add at least one entry to searchTerms — a plain keyword (e.g. wireless earbuds), a full Amazon search URL, or a Best Sellers /zgbs/ list URL. Every other input has a working default.
  3. Set badgeFilter if you only want products carrying specific badges (e.g. Best Seller), and set minMonthlySales to floor out low-demand listings; leave both empty to keep everything.
  4. Click Start to launch the run. Set maxPages above 1 first if you want more than a single results page per target.
  5. When the run finishes, download the dataset as JSON or CSV from the Apify Console, or pull it via the API.

What to do when Amazon changes its structure

The scraper is actively maintained, and the output schema stays stable across maintenance updates — field names and types don't change on your end even when Amazon's page markup does. No specific fix turnaround is guaranteed.

⬇️ Input

ParameterRequiredTypeDescriptionExample Value
searchTermsNoarrayKeywords, full Amazon search URLs, or Best Sellers /zgbs/ URLs. Each entry runs as its own scan. (startUrls also accepted.)["wireless earbuds", "https://www.amazon.com/Best-Sellers/zgbs/electronics"]
sortOrderNostringSort order for keyword searches (ignored for Best Sellers URLs). Default relevanceblender."relevanceblender"
maxPagesNointegerMax result pages to scan per target. Default 1 (auto-continue, stops after 2 empty pages). Range 1-1000.3
badgeFilterNoarrayKeep only products carrying at least one selected badge. Default [] (keep all; badges still extracted).["BEST_SELLER", "AMAZONS_CHOICE"]
includeBestsellerRankNobooleanFetch each product's detail page for Best-Sellers-Rank + category (1 extra request/product). Default false.true
maxRankLookupsNointegerCap on how many products get a rank detail fetch (0 = unlimited). Only used when includeBestsellerRank is on. Default 10.25
minMonthlySalesNointegerKeep only products with at least this many "bought in past month" (salesVolumeNumeric). Default 0 (no floor).500
marketplaceNostringAmazon marketplace to scan. Default amazon.com. (amazonDomain also accepted.)"amazon.com"
languageNostringPreferred page language (Accept-Language). Default "" (marketplace default)."en-US"
proxyCountryNostringProxy exit country; pin to the marketplace region for accurate prices. Default "AUTO"."US"
proxyConfigurationNoobjectNetwork/proxy settings. Default: no proxy — the Actor auto-falls back none → datacenter → residential if Amazon blocks.{"useApifyProxy": true}

Example JSON input:

{
"searchTerms": ["wireless earbuds", "https://www.amazon.com/Best-Sellers/zgbs/electronics"],
"sortOrder": "relevanceblender",
"maxPages": 2,
"badgeFilter": ["BEST_SELLER", "AMAZONS_CHOICE"],
"includeBestsellerRank": true,
"maxRankLookups": 25,
"minMonthlySales": 500,
"marketplace": "amazon.com",
"language": "",
"proxyCountry": "US",
"proxyConfiguration": { "useApifyProxy": true }
}

The most common mistake is leaving proxyConfiguration off entirely on a large maxPages run — the Actor still falls back to a proxy automatically when Amazon blocks, but enabling Apify Proxy up front avoids the retry delay that fallback costs.

⬆️ Output

The Actor emits one typed JSON row per product to the default dataset, exportable as JSON, CSV, Excel, or XML from the Apify Console. Rows from a keyword/search-URL scan and rows from a Best Sellers list scan share the same schema — a type field (search or bestseller) tells them apart, and Best Sellers rows leave the fields that only a search-results snippet exposes (sales volume, badges, delivery message) as null.

Scraped product (keyword/search-URL mode)

{
"asin": "B0BZQTQVL7",
"productDescription": "Wireless Earbuds, Bluetooth 5.3 Headphones with ENC Noise Cancelling Mic",
"imgUrl": "https://m.media-amazon.com/images/I/61abcXYZ1L._AC_UL320_.jpg",
"price": 25.99,
"retailPrice": 39.99,
"productRating": "4.4 out of 5 stars",
"ratingValue": 4.4,
"countReview": 12873,
"dpUrl": "https://www.amazon.com/dp/B0BZQTQVL7?ref=sr_pg_1",
"productUrl": "https://www.amazon.com/dp/B0BZQTQVL7",
"prime": true,
"sponsored": false,
"salesVolume": "5K+ bought in past month",
"salesVolumeNumeric": 5000,
"deliveryMessage": "FREE delivery Thu, Jul 31",
"badges": ["Best Seller", "Amazon's Choice: wireless earbuds"],
"isBestSeller": true,
"isAmazonsChoice": true,
"isNewRelease": false,
"isLimitedTimeDeal": false,
"isClimatePledge": false,
"isSmallBusiness": false,
"bestsellerBadgeCategory": "Earbud & In-Ear Headphones",
"bestsellerRanks": [
{ "rank": 12, "category": "Earbud & In-Ear Headphones", "url": "https://www.amazon.com/gp/bestsellers/electronics/172541" }
],
"rankCategoryTop": "Earbud & In-Ear Headphones",
"manufacturer": "SoundCore",
"series": null,
"variations": ["Black", "White", "Blue"],
"productDetails": ["Bluetooth 5.3", "40H Playtime", "IPX7 Waterproof"],
"secondaryOffer": null,
"reviewsPerMonthlySale": 2.5746,
"opportunityScore": 78,
"statusCode": 200,
"statusMessage": "FOUND",
"keyword": "wireless earbuds",
"domainCode": "com",
"page": 1,
"selectedCategory": null,
"browseNode": null,
"nodeHierarchy": ["Electronics", "Headphones", "Earbud & In-Ear Headphones"],
"resultCount": 4823,
"categories": ["Electronics", "Headphones", "Earbud & In-Ear Headphones"],
"similarKeywords": [{ "keyword": "bluetooth earbuds", "url": "https://www.amazon.com/s?k=bluetooth+earbuds&rsl_sug=1" }],
"currentPage": 1,
"sortStrategy": "relevanceblender",
"searchResultPosition": 3,
"asinOnPageCount": 48,
"type": "search",
"searchUrl": "https://www.amazon.com/s?k=wireless+earbuds&s=relevanceblender&page=1&ref=sr_pg_1",
"marketplace": "amazon.com",
"scrapedAt": "2026-07-25T14:32:10.482913+00:00"
}

Scraped product (Best Sellers list mode)

{
"asin": "B0CJHKX34T",
"productDescription": "Anker Soundcore Life P3 Wireless Earbuds",
"imgUrl": "https://m.media-amazon.com/images/I/71defGHI2L._AC_UL300_.jpg",
"price": 34.99,
"retailPrice": null,
"productRating": "4.5 out of 5 stars",
"ratingValue": 4.5,
"countReview": 89421,
"dpUrl": "https://www.amazon.com/dp/B0CJHKX34T",
"productUrl": "https://www.amazon.com/dp/B0CJHKX34T",
"salesVolume": null,
"salesVolumeNumeric": null,
"badges": [],
"isBestSeller": false,
"isAmazonsChoice": false,
"isNewRelease": false,
"isLimitedTimeDeal": false,
"isClimatePledge": false,
"isSmallBusiness": false,
"bestsellerBadgeCategory": null,
"reviewsPerMonthlySale": null,
"opportunityScore": 61,
"keyword": "Electronics",
"domainCode": "com",
"page": 1,
"selectedCategory": null,
"categories": ["Electronics"],
"searchResultPosition": 1,
"asinOnPageCount": 50,
"type": "bestseller",
"searchUrl": "https://www.amazon.com/Best-Sellers/zgbs/electronics?pg=1",
"marketplace": "amazon.com",
"scrapedAt": "2026-07-25T14:33:02.117406+00:00"
}

There is no hard result cap in the Actor itself. The only ceilings are the ones you set: maxPages (1-1000) bounds how many result pages get scanned per keyword or list entry, and maxRankLookups bounds how many products get an extra Best-Sellers-Rank detail fetch when includeBestsellerRank is on. Leaving maxPages at its default of 1 still auto-continues through additional pages until two consecutive empty pages are hit, so a single keyword can return far more than one page's worth of products without raising the setting. Products are de-duplicated by ASIN within a run, so the same product returned by two different search terms is only pushed once. Amazon itself caps how many pages a given search or Best Sellers list actually has, which is the practical ceiling beyond the Actor's own settings.

Amazon Search Products & Trending Scraper works with any language or tool that can send an HTTP request.

REST API integration

import requests
run = requests.post(
"https://api.apify.com/v2/acts/API-Empire~amazon-search-products-trending-scraper/run-sync-get-dataset-items",
params={"token": "<APIFY_API_TOKEN>"},
json={
"searchTerms": ["wireless earbuds"],
"badgeFilter": ["BEST_SELLER"],
"minMonthlySales": 500
},
)
products = run.json()
for p in products:
print(p["asin"], p["opportunityScore"], p["price"])

Works in Python, Node.js, Go, Ruby, cURL.

Automation platforms (n8n, Make)

In n8n, use the Apify node's "Run Actor and get dataset items" operation with actor API-Empire/amazon-search-products-trending-scraper to drop trending-product rows straight into a workflow. In Make, the Apify app's "Run an Actor" module plus a "Get Dataset Items" step does the same, letting you chain the JSON output into a spreadsheet, Slack alert, or database module without a custom parser.

Scraping publicly available Amazon product listings is generally legal — this Actor returns only what a logged-out shopper can already see on Amazon's search and Best Sellers pages, not gated or account-specific data. The legal exposure to manage is Amazon's Terms of Service and database-rights claims over its catalog, not privacy law: this is product and pricing data, not personal data. Consult legal counsel before any commercial use case involving bulk data collection, and review Amazon's Terms of Service for your specific use.

Frequently asked questions

Yes. It reads Amazon's public, logged-out search and Best Sellers pages and needs no Amazon account, login, or API key — only an Apify account to run it.

How often is the scraped data updated?

Data is fetched live on every run — the Actor makes a fresh request to Amazon each time you start it rather than serving a cached snapshot. Run it again to get current prices, ranks, and badges.

What happens if a search returns no products or a listing is delisted?

An empty or delisted target simply produces no rows for that entry — the Actor logs the page status (e.g. NOT_FOUND) and moves to the next target rather than failing the whole run. Check the run log if a specific keyword or URL returns zero rows.

Can I scrape login-gated or account-specific Amazon content?

No. The Actor only reads publicly accessible search and Best Sellers pages; it does not access account-specific data such as order history, saved lists, or logged-in pricing.

Yes. It's callable as an HTTP endpoint by any agent framework, and every response is typed JSON — no HTML and no parsing step before passing rows to an LLM or tool call.

It rotates through a proxy ladder — no proxy, then Apify datacenter proxy, then Apify residential proxy — automatically when Amazon returns a block, a 403/429 response, or a soft-block "shell" page, and retries the request on the next proxy tier.

Yes. Every row is typed, normalized JSON with stable field names — no HTML, no selectors, no cleanup step. Pass it directly into an LLM context window, index it into a vector store, or route it through an agent tool call.

Yes. By default it makes requests without a proxy and only switches to Apify's datacenter and then residential proxy tiers automatically if Amazon blocks the request — you don't have to configure or rotate proxies yourself unless you want to enable Apify Proxy from the start for reliability.

What happens when Amazon changes its structure or blocks the scraper?

The scraper is maintained, and the output schema stays stable — field names and types don't change on your end even when Amazon updates its page markup. No specific turnaround time is guaranteed.

Your feedback

Found a bug or missing a field? We want to know. Reach out through Apify's Actor issue/support channel on the Store listing so we can fix it — active maintenance is what keeps this Actor's schema stable across Amazon's own changes.