Amazon Product Data, Reviews & Sellers
Pricing
from $8.00 / 1,000 single result in datasets
Amazon Product Data, Reviews & Sellers
Collect Amazon product details, Best Sellers, reviews, and seller profiles.
Pricing
from $8.00 / 1,000 single result in datasets
Rating
0.0
(0)
Developer
Antônio César
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 hours ago
Last modified
Categories
Share
What does Amazon Scraper API: Products, Reviews & Sellers do?
Amazon Scraper API: Products, Reviews & Sellers collects live Amazon search rankings, product details, Best Sellers, reviews, prices, ASINs, availability, and seller data. Enter keywords or Amazon URLs and receive normalized records ready for analysis in JSON, CSV, Excel, XML, RSS, or HTML—without managing browsers, proxies, or a separate data-provider API key.
All users can run the complete live workflow, regardless of their Apify subscription. Runs use predictable pay-per-result pricing. Apify provides API access, scheduling, integrations, monitoring, webhooks, and dataset storage around the Actor's managed data infrastructure.
Unofficial — not affiliated with or endorsed by Amazon. Amazon names and trademarks belong to their respective owners.
Why use Amazon Scraper API?
- Track product prices, discounts, stock, ratings, and catalog changes.
- Compare organic and sponsored search placement across keywords.
- Discover products in Amazon Best Sellers categories.
- Analyze review themes and verified-purchase ratings while keeping reviewer identity private by default.
- Research Amazon US seller profiles and business information.
- Feed live commerce data into spreadsheets, dashboards, AI workflows, or your own application.
- Automate recurring research with Apify schedules and receive results through webhooks or integrations.
Every successful dataset item uses a stable envelope (recordType, input, marketplace, sourceUrl, and scrapedAt) plus fields for its selected operation. Item-level errors remain in the separate ERRORS record and are never mixed into the billable dataset.
How to scrape Amazon data
- Open the Actor's Input tab.
- Choose Search, Product Details, Best Sellers, Product Reviews, or Seller Information.
- Enter keywords or paste URLs that match the chosen operation.
- Select the marketplace and set a small result limit for your first run.
- Click Start and open the Output tab when the run finishes.
- Download the dataset or connect it to your workflow through the Apify API, schedules, webhooks, Make, Zapier, or Google Sheets.
Invalid entries are reported individually. If a list contains both valid and invalid values, the Actor deduplicates the inputs, processes the valid ones, and records the rejected ones in ERRORS.
Input
| Field | Used by | Description |
|---|---|---|
operation | All | search, product_details, best_sellers, reviews, or seller_info. Default: search. |
searchQueries | Search | 1–20 unique keywords. |
marketplaceUrl | Search | One of 22 supported Amazon marketplace roots. Product Details derives its marketplace from each URL. |
pagesToSearch | Search | 1–5 pages per keyword. |
maxResults | All | Total output cap for the entire run, not per keyword or URL. Default: 10. |
startUrls | All URL operations | Product, ranking/category, or /sp?seller= URLs appropriate to the operation. |
zipcode, language | Product, Best Sellers | Optional localization where supported. |
maxReviews | Reviews | Per-product cap from 1 to 100. Default: 20. |
reviewsToNotInclude | Reviews | Review IDs to omit during incremental collection. |
includeReviewerIdentity | Reviews | Opt in to reviewer name/profile fields. Default: false. |
includeRawData | All | Adds rawData; identity still requires the separate privacy opt-in. |
includeErrors | All | Saves structured item errors in ERRORS. |
timeoutSeconds | All | Absolute deadline covering trigger, retries, polling, and download. |
variationSpecific remains accepted for compatibility but is deprecated and is not sent upstream because the current Reviews contract does not document that filter.
Example keyword search:
{"operation": "search","searchQueries": ["wireless headphones"],"marketplaceUrl": "https://www.amazon.com","pagesToSearch": 1,"maxResults": 5,"timeoutSeconds": 900}
Example product-details run:
{"operation": "product_details","startUrls": [{ "url": "https://www.amazon.de/dp/B0EXAMPLE" }],"includeRawData": false}
Marketplace coverage
| Operation | Initial coverage | Run limits |
|---|---|---|
| Search | US, Canada, Mexico, Brazil, UK, Germany, France, Italy, Spain, Netherlands, Belgium, Poland, Sweden, Türkiye, UAE, Saudi Arabia, Egypt, India, Singapore, Australia, Japan, and China | 20 keywords, 100 results per keyword, 1,000 total |
| Product Details | The same 22 marketplaces | 500 product URLs |
| Product Reviews | Amazon US (amazon.com) | 100 products, 100 reviews per product, 1,000 results total in this general Actor |
| Best Sellers | Amazon US (amazon.com) | 20 category URLs, 500 results total |
| Seller Information | Amazon US (amazon.com) | 500 seller URLs |
Selecting an unsupported marketplace/operation combination fails early with a clear validation error, before a collection job is purchased.
Output
Successful records are stored in the default dataset. You can download the dataset in various formats such as JSON, HTML, CSV, or Excel. OUTPUT contains the run status and exact requested, successful, failed, and charged counts; ERRORS contains sanitized item-level failures.
Representative search item:
{"recordType": "search","input": "wireless headphones","marketplace": "https://www.amazon.com","sourceUrl": "https://www.amazon.com/dp/B0EXAMPLE1","scrapedAt": "2026-08-21T12:00:00Z","keyword": "wireless headphones","position": 1,"sponsored": false,"asin": "B0EXAMPLE1","title": "Example product title","finalPrice": 39.99,"currency": "USD","rating": 4.6,"reviewsCount": 12450,"imageUrl": "https://images-na.ssl-images-amazon.com/images/I/example.jpg"}
Representative review item with the default privacy settings:
{"recordType": "reviews","input": "https://www.amazon.com/dp/B0EXAMPLE1","marketplace": "https://www.amazon.com","sourceUrl": "https://www.amazon.com/dp/B0EXAMPLE1","scrapedAt": "2026-08-21T12:00:00Z","asin": "B0EXAMPLE1","reviewId": "R1EXAMPLE","reviewTitle": "Representative review title","reviewText": "Representative review text.","rating": 5,"verifiedPurchase": true}
The values above illustrate the normalized contract; use Try for free to collect current live records from your own inputs.
Data table
| Data group | Main normalized fields |
|---|---|
| Common envelope | recordType, input, marketplace, sourceUrl, scrapedAt |
| Search | keyword, position, sponsored, asin, title, finalPrice, rating, reviewsCount |
| Products | brand, parentAsin, availability, delivery, categories, bulletPoints, specifications, images |
| Reviews | reviewId, reviewTitle, reviewText, reviewDate, rating, verifiedPurchase, variation |
| Sellers | sellerId, sellerName, businessName, businessAddress, rating, reviewsCount |
Field availability depends on the operation, marketplace, page, inventory state, and Amazon's current presentation. Enable includeRawData only when you need additional upstream fields because it increases output size.
API examples
Replace <ACTOR_ID> with the Actor ID and keep your Apify token in an environment variable.
cURL
curl -X POST \"https://api.apify.com/v2/acts/<ACTOR_ID>/run-sync-get-dataset-items?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"operation":"search","searchQueries":["wireless headphones"],"maxResults":5}'
Python
import osimport requestsresponse = requests.post("https://api.apify.com/v2/acts/<ACTOR_ID>/run-sync-get-dataset-items",params={"token": os.environ["APIFY_TOKEN"]},json={"operation": "search","searchQueries": ["wireless headphones"],"maxResults": 5,},timeout=1000,)response.raise_for_status()items = response.json()
JavaScript
const response = await fetch(`https://api.apify.com/v2/acts/<ACTOR_ID>/run-sync-get-dataset-items?token=${process.env.APIFY_TOKEN}`,{method: 'POST',headers: { 'Content-Type': 'application/json' },body: JSON.stringify({operation: 'search',searchQueries: ['wireless headphones'],maxResults: 5,}),},);if (!response.ok) throw new Error(`Actor run failed: ${response.status}`);const items = await response.json();
Focused Amazon scraper APIs
Prefer a smaller form and a dataset dedicated to one workflow? The same tested collection core also powers these focused Actors:
| Workflow | Focused Actor |
|---|---|
| Product catalogs, prices, and availability | Amazon Product Scraper API |
| Keyword rankings and sponsored results | Amazon Search Scraper API |
| Review and sentiment datasets | Amazon Reviews Scraper API |
| Category rankings | Amazon Best Sellers Scraper API |
| Seller research | Amazon Seller Scraper API |
The focused Actors use the same normalized output envelope and separate item errors from billable dataset results.
How much does it cost to scrape Amazon?
The launch price is US$0.004 per successful result, or US$4 per 1,000 results, with the Actor's platform usage included. The Actor applies billing limits before starting managed collection and writes errors outside the paid dataset. The Actor's Pricing tab is always the authoritative source if pricing changes.
| Successful results | Estimated price |
|---|---|
| 5 | US$0.02 before any available free Apify credits |
| 100 | US$0.40 |
| 1,000 | US$4.00 |
Free-plan and paid users can request results up to the operation maximum and their available run budget. A run with no successful result has no per-result charge, although the Pricing tab should be checked for any platform-specific terms.
Tips and advanced options
- Start with one keyword or URL and five results to verify the output contract.
- Remember that
maxResultsis a global run cap, whilemaxReviewsapplies to each product. - Split operations into separate scheduled runs so each downstream dataset has one record type.
- Use
reviewsToNotIncludeto avoid requesting known review IDs again. - Leave reviewer identity disabled unless your use case has a lawful need for it.
- Use a postal code when local delivery, availability, or price matters.
- Set an explicit deadline for automated workflows; the Actor attempts to cancel active external jobs on timeout or abort.
- Inspect
OUTPUTandERRORSbefore retrying a partial run.
Share one .env across all Amazon Actors
Use scripts/sync_amazon_env.py to make the root .env the single source for shared Actor credentials. The script stores each value once in the local Apify CLI secret store and writes only @secretName references to Actor manifests; it never copies .env into Actor folders or prints secret values.
# Preview the variables and Actors without changing anything.\.venv\Scripts\python.exe scripts\sync_amazon_env.py# Update the shared local secrets and manifest references.\.venv\Scripts\python.exe scripts\sync_amazon_env.py --apply# Update and publish the main Actor plus all five specialized Actors.\.venv\Scripts\python.exe scripts\sync_amazon_env.py --apply --push
Add --specialized-only to exclude amazon-data-suite. Bright Data aliases such as BRIGHTDATA_API_TOKEN are normalized to the shared BRIGHTDATA_API_TOKENS Actor variable. APIFY_TOKEN and APIFY_API_TOKEN are rejected to prevent platform credentials from being injected into Actor containers.
FAQ, disclaimers, and support
Is this an official Amazon product?
No. Unofficial — not affiliated with or endorsed by Amazon. Amazon names and trademarks belong to their respective owners.
Does the free trial return real data?
Yes. Free-plan users receive live results up to the configured operation and billing limits, subject to available Apify credits and the current Pricing tab. The Actor does not insert mock records into the dataset.
Is scraping Amazon legal?
Web-scraping rules vary by jurisdiction and use case. You are responsible for complying with applicable law, Amazon's terms, privacy obligations, intellectual-property rights, and restrictions governing the collected data. Do not collect or use prohibited, private, or sensitive personal data.
Why can fields be missing?
Amazon pages differ by marketplace, product type, seller, inventory, localization, and current page structure. Optional fields are null or absent when the source does not provide them. See ERRORS for rejected inputs and upstream failures.
Where can I get help?
Use the Actor's Issues tab and include the run ID, operation, expected behavior, and a public example URL. Never post tokens or private data. Custom integrations, larger workflows, and tailored output contracts are available on request.