Amazon Product Data, Reviews & Sellers avatar

Amazon Product Data, Reviews & Sellers

Pricing

from $8.00 / 1,000 single result in datasets

Go to Apify Store
Amazon Product Data, Reviews & Sellers

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

Antônio César

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 hours ago

Last modified

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

  1. Open the Actor's Input tab.
  2. Choose Search, Product Details, Best Sellers, Product Reviews, or Seller Information.
  3. Enter keywords or paste URLs that match the chosen operation.
  4. Select the marketplace and set a small result limit for your first run.
  5. Click Start and open the Output tab when the run finishes.
  6. 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

FieldUsed byDescription
operationAllsearch, product_details, best_sellers, reviews, or seller_info. Default: search.
searchQueriesSearch1–20 unique keywords.
marketplaceUrlSearchOne of 22 supported Amazon marketplace roots. Product Details derives its marketplace from each URL.
pagesToSearchSearch1–5 pages per keyword.
maxResultsAllTotal output cap for the entire run, not per keyword or URL. Default: 10.
startUrlsAll URL operationsProduct, ranking/category, or /sp?seller= URLs appropriate to the operation.
zipcode, languageProduct, Best SellersOptional localization where supported.
maxReviewsReviewsPer-product cap from 1 to 100. Default: 20.
reviewsToNotIncludeReviewsReview IDs to omit during incremental collection.
includeReviewerIdentityReviewsOpt in to reviewer name/profile fields. Default: false.
includeRawDataAllAdds rawData; identity still requires the separate privacy opt-in.
includeErrorsAllSaves structured item errors in ERRORS.
timeoutSecondsAllAbsolute 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

OperationInitial coverageRun limits
SearchUS, Canada, Mexico, Brazil, UK, Germany, France, Italy, Spain, Netherlands, Belgium, Poland, Sweden, Türkiye, UAE, Saudi Arabia, Egypt, India, Singapore, Australia, Japan, and China20 keywords, 100 results per keyword, 1,000 total
Product DetailsThe same 22 marketplaces500 product URLs
Product ReviewsAmazon US (amazon.com)100 products, 100 reviews per product, 1,000 results total in this general Actor
Best SellersAmazon US (amazon.com)20 category URLs, 500 results total
Seller InformationAmazon 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 groupMain normalized fields
Common enveloperecordType, input, marketplace, sourceUrl, scrapedAt
Searchkeyword, position, sponsored, asin, title, finalPrice, rating, reviewsCount
Productsbrand, parentAsin, availability, delivery, categories, bulletPoints, specifications, images
ReviewsreviewId, reviewTitle, reviewText, reviewDate, rating, verifiedPurchase, variation
SellerssellerId, 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 os
import requests
response = 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:

WorkflowFocused Actor
Product catalogs, prices, and availabilityAmazon Product Scraper API
Keyword rankings and sponsored resultsAmazon Search Scraper API
Review and sentiment datasetsAmazon Reviews Scraper API
Category rankingsAmazon Best Sellers Scraper API
Seller researchAmazon 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 resultsEstimated price
5US$0.02 before any available free Apify credits
100US$0.40
1,000US$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 maxResults is a global run cap, while maxReviews applies to each product.
  • Split operations into separate scheduled runs so each downstream dataset has one record type.
  • Use reviewsToNotInclude to 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 OUTPUT and ERRORS before 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.

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.