How to Scrape Amazon Product Data and Reviews With an API
Use Amazon’s current Creators API for catalog data, understand review limits, and choose a compliant workflow for product research.
Short answer: Amazon’s current documented catalog route is the Creators API. It can return catalog fields, images, offers, variations, and browse-node data when your account is eligible. Its SearchItems operation includes a minReviewsRating filter, but the documentation does not establish general access to full customer-review text. Treat “Amazon reviews API” as an ambiguous phrase: ratings and gated summaries are different from downloading review bodies.
This guide shows how to build a catalog-data integration, what the official documentation does and does not promise, how to handle access and policy constraints, and what to do when you need visual captures of product pages.
1. What Amazon’s official API provides
Amazon describes Creators API as a REST API for programmatic access to product catalog data. The documented operations are:
SearchItemsfor keyword and filtered searches.GetItemsfor item details, images, offers, and other resources.GetVariationsfor variation relationships and variation data.GetBrowseNodesfor browse-node information.
The ItemInfo resources cover fields such as title, brand, description, product features, technical information, classifications, and external identifiers. Availability varies by marketplace, locale, category, ASIN, and requested resource, so design your importer to tolerate missing fields. Amazon’s reference documentation is the authority for the resources available to your account and marketplace (API reference, ItemInfo).
Search limits and review filters
Amazon documents up to ten items per SearchItems request. The operation requires a search category and at least one search field. Its minReviewsRating filter selects products whose customer-review rating is above a threshold. That filter is not evidence that the response contains arbitrary review bodies, a complete review archive, reviewer identities, or pagination through every review. See the SearchItems reference for the current request and resource names.
2. Check eligibility before writing an importer
The Creators API overview currently lists these onboarding conditions for the target marketplace:
- Enrollment in Amazon Associates.
- At least 10 qualifying sales in the past 30 days to access PA API through Creators API.
- API registration.
- Generated credentials.
Confirm the live requirements before you depend on them; Amazon can change eligibility, marketplace coverage, resources, or quotas. Do not assume that an Associates account in one marketplace grants access to another.
3. A safe integration shape
Keep the Amazon request behind a small adapter. Store credentials in environment variables, request only the resources you need, cache stable catalog fields, and persist the ASIN and marketplace alongside every record.
cURL template
curl --request POST "$CREATORS_API_URL" \
--header "Authorization: $CREATORS_AUTHORIZATION" \
--header "Content-Type: application/json" \
--data '{
"operation": "SearchItems",
"keywords": "wireless headphones",
"searchCategory": "All",
"resources": ["ItemInfo", "Images", "OffersV2"]
}'
CREATORS_API_URL and the authorization value are intentionally environment variables. Use the endpoint, signing method, headers, marketplace, and request schema shown in Amazon’s current Creators API onboarding and reference pages rather than copying an obsolete PA-API example.
Python
import json
import os
import requests
url = os.environ["CREATORS_API_URL"]
headers = {
"Authorization": os.environ["CREATORS_AUTHORIZATION"],
"Content-Type": "application/json",
}
payload = {
"operation": "SearchItems",
"keywords": "wireless headphones",
"searchCategory": "All",
"resources": ["ItemInfo", "Images", "OffersV2"],
}
response = requests.post(url, headers=headers, json=payload, timeout=30)
response.raise_for_status()
data = response.json()
print(json.dumps(data, indent=2))
Node.js
const url = process.env.CREATORS_API_URL;
const body = {
operation: 'SearchItems',
keywords: 'wireless headphones',
searchCategory: 'All',
resources: ['ItemInfo', 'Images', 'OffersV2']
};
const response = await fetch(url, {
method: 'POST',
headers: {
Authorization: process.env.CREATORS_AUTHORIZATION,
'Content-Type': 'application/json'
},
body: JSON.stringify(body)
});
if (!response.ok) {
throw new Error(`Creators API request failed: ${response.status} ${await response.text()}`);
}
console.log(JSON.stringify(await response.json(), null, 2));
For item retrieval, switch the operation and payload to the exact GetItems schema in the current reference. Request only the resource groups your application uses. If you need variations, use GetVariations; for category navigation, use GetBrowseNodes.
4. Can you get Amazon reviews through an API?
Not as a general full-text review feed through the documented Creators API. The documented rating filter helps find products above a threshold, but it does not promise review bodies or a complete review dataset.
Amazon Business documents customerReviewsSummary as a privileged Product Search API field and says eligibility is reviewed for requested fields. That is a separate business route and should be treated as gated summary access, not general review-text retrieval (Amazon Business privileged fields).
The Associates operating policy also says its license does not include data mining, robots, or similar data-gathering and extraction tools. It restricts displaying or otherwise using customer reviews or star ratings unless the review or rating link was obtained through Creators API or PA API and the applicable requirements are followed (operating policies). This is a statement about the Associates license; it is not a universal legal conclusion about every automated-access scenario or jurisdiction. Review the current terms and obtain advice for your use case.
5. Why old PA-API examples cause problems
Amazon’s legacy PA-API documentation calls itself outdated, points readers to Creators API, and lists May 15, 2026 as the deprecation date (legacy PA-API documentation). Do not start a new integration from an old SDK sample without checking the current Creators API documentation. The reviewed sources do not establish identical shutdown behavior for every legacy account or endpoint.
6. Building a product-data pipeline
- Choose a marketplace. Store its locale and marketplace identifier with each job.
- Search narrowly. Use a category and search field, then keep the ASINs returned by
SearchItems. - Hydrate details. Call
GetItemsfor the resources you actually display. - Normalize optional fields. Treat images, offers, technical attributes, and classifications as nullable.
- Record provenance. Save retrieval time, marketplace, ASIN, operation, and requested resources.
- Cache responsibly. Refresh according to your permitted use and the current program terms; avoid building an unbounded historical mirror.
- Separate ratings from text. A rating threshold is a filter, not a review corpus.
7. Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
| 401 or 403 | Missing, expired, incorrectly signed, or unauthorized credentials | Regenerate credentials, verify the marketplace and authorization procedure in the live Creators API docs, and keep secrets out of source control. |
| No items returned | Missing required search category/field, overly narrow query, or locale mismatch | Start with a broad documented search, verify required fields, and confirm the target marketplace. |
| Expected fields are absent | Resource not requested or field unavailable for that locale/category | Add the documented resource and handle the field as optional. |
| Only ratings appear | Confusing minReviewsRating with review-body access |
Use it only as a product filter. Do not assume full review text is available. |
| Old SDK sample fails | PA-API example is outdated | Port the idea to Creators API and follow its current request and authentication reference. |
| Intermittent timeouts | Network problems, large resource sets, or service throttling | Set bounded timeouts, retry transient failures with backoff, request fewer resources, and log response status without logging secrets. |
8. Performance, reliability, and cost considerations
- Request the smallest resource set that satisfies the page or job. Large responses increase transfer time and parsing work.
- Use bounded client timeouts and idempotent retry logic for transient transport failures.
- Cache normalized catalog records where your program terms permit it, and refresh rather than repeatedly downloading unchanged data.
- Expect field availability and eligibility to vary by marketplace and category; monitor null rates after every marketplace expansion.
- Budget for your own infrastructure and any program limits. The reviewed documentation does not provide a universal performance benchmark or a general review-text quota.
9. When a screenshot is the actual requirement
Catalog APIs are appropriate for structured product fields. If your job is visual regression, documentation, merchandising review, or capturing a rendered page, use a screenshot workflow separately. A screenshot is an image of what a browser rendered; it is not a substitute for an authorized product-data or review API.
10. Or skip the browser setup
ScreenshotNeo is a website screenshot API and MCP server. One GET request returns a PNG, JPEG, WebP, or PDF. It removes cookie and consent banners, newsletter popups, and chat widgets before capture; bot checks, blank pages, failed loads, timeouts, and cache hits are not billed, and the response identifies the page verdict and billing status.
For a rendered Amazon page, use the same call pattern with the URL you are allowed to capture:
cURL
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://www.amazon.com -o shot.webp
Python
import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://www.amazon.com"}, timeout=90)
open("shot.webp", "wb").write(r.content)
Node.js
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://www.amazon.com' }); const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
See the ScreenshotNeo documentation for options such as full-page capture, selectors, device presets, custom headers and cookies, waits, blocking rules, PDFs, caching, signed links, webhooks, and bulk capture. Its MCP server provides take_screenshot, get_page_info, and capture_pdf tools for Claude, Cursor, and other MCP clients. The free plan includes 1,000 screenshots a month with no card; paid plans start at $5 for 3,000.
Create a free ScreenshotNeo account.
11. FAQ
Does SearchItems return more than ten products?
Amazon documents up to ten items per SearchItems request. Use the documented pagination and refinement fields where available, and verify current limits in the reference.
Can I store every review for sentiment analysis?
The reviewed Creators API material does not establish general review-body access. The Associates policy also restricts data-mining and review use under its license. Obtain an authorized data source and review the terms for your application.
Is Amazon Ads API a product-data API?
No. Amazon Ads API documentation describes campaign management and reporting and requires an application and approval process; it is not presented as a review-extraction API (Amazon Ads API).
Should a new project use PA-API?
Start with the current Creators API documentation. The legacy PA-API page is marked outdated and directs developers to Creators API.


