Amazon APIamazon.com ↗
Access Amazon products, reviews, best sellers, deals, and seller profiles via a single API. 9 endpoints covering search, ASIN details, offers, and cart management.
What is the Amazon API?
The Amazon API covers 9 endpoints that let you search products by keyword, retrieve full ASIN-level details, pull customer reviews, and monitor current deals and best sellers. The search_products endpoint returns paginated results with title, price, rating, review count, and image URL across any Amazon department. The get_product_details endpoint goes deeper with brand, bullet-point descriptions, technical specifications, and a high-resolution image array.
curl -X GET 'https://api.parse.bot/scraper/e1dc349c-16b6-498a-a7e6-2462aef5b5b4/search_products?page=1&sort=price-asc-rank&query=usb+cable&category=electronics' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace amazon-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Amazon SDK — search products, drill into details and reviews, browse deals."""
from parse_apis.amazon_scraper_api import Amazon, Sort, ProductNotFound
client = Amazon()
# Search for products sorted by review ranking, cap total items
for product in client.products.search(query="wireless headphones", sort=Sort.REVIEW_RANK, limit=5):
print(product.title, product.price, product.rating)
# Drill into the first result for full details
product = client.products.search(query="usb cable", limit=1).first()
if product:
detail = product.details()
print(detail.title, detail.brand, detail.price)
for spec_name, spec_value in detail.specifications.items():
print(f" {spec_name}: {spec_value}")
# Walk the product's reviews sub-resource
if product:
for review in product.reviews.list(limit=3):
print(review.author, review.rating, review.date)
# Browse best sellers
for item in client.bestsellers.list(limit=5):
print(item.rank, item.title, item.price)
# Typed error handling on a point lookup
try:
found = client.products.get(asin="B09V3KXJPB")
print(found.title, found.rating)
except ProductNotFound as exc:
print(f"Product not found: {exc.asin}")
# Current deals
for deal in client.deals.list(limit=3):
print(deal.title, deal.price)
print("exercised: products.search / products.get / product.details / product.reviews.list / bestsellers.list / deals.list")
Search for products on Amazon by keyword. Returns paginated results with product title, price, rating, and image. Supports optional category filtering and sort order.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination (1-based). |
| sort | string | Sort order for results. |
| queryrequired | string | Search keyword (e.g. 'usb cable', 'laptop'). |
| category | string | Amazon department/category code passed as the 'i' parameter (e.g. 'electronics', 'books'). |
{
"type": "object",
"fields": {
"page": "string indicating the current page number",
"products": "array of product objects with asin, title, price, rating, review_count, and image"
},
"sample": {
"data": {
"page": "1",
"products": [
{
"asin": "B07DD5YHMH",
"image": "https://m.media-amazon.com/images/I/715afhb+qJL._AC_UY218_.jpg",
"price": "$8.99",
"title": "Anker Cable [2 Pack 3ft], USB A to USB C Cable",
"rating": "4.7",
"review_count": null
}
]
},
"status": "success"
}
}About the Amazon API
Product Search and Detail
The search_products endpoint accepts a required query string plus optional category, sort, and page parameters, returning arrays of product objects each containing asin, title, price, rating, review_count, and image. The get_product_details endpoint takes a single asin and returns the full product record: brand, price, title, images (array), rating, description (bullet-point array), review_count, and a specifications object that maps attribute names to values — useful for structured comparison across similar products.
Reviews, Offers, and Sellers
The get_product_reviews endpoint returns per-review objects with author, rating, title, body, and date, alongside a summary object containing the overall star rating and total review count. The get_product_offers endpoint retrieves all available seller offers for a given ASIN. Seller-side data is accessible via get_seller_profile, which returns name, seller_id, and rating_summary for any valid Amazon seller ID.
Best Sellers, Deals, and Cart
The get_best_sellers endpoint accepts an optional category path segment and returns ranked items with rank, asin, title, price, rating, and image. Without a category, it defaults to the overall best sellers list. The get_deals endpoint requires no input and returns current deal products with asin, title, price, and image. For cart operations, add_to_cart accepts an asin and optional quantity, and get_cart returns the current items array and subtotal string.
The Amazon API is a managed, monitored endpoint for amazon.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when amazon.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official amazon.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a price-comparison tool using
search_productsandget_product_detailsto track price changes across ASINs. - Aggregate customer sentiment by extracting review
body,rating, anddatefields fromget_product_reviews. - Monitor Amazon best seller rankings by category using
get_best_sellerswith thecategoryparameter. - Scrape daily deal inventory from
get_dealsto power a deal-alert or coupon site. - Enrich product catalog data with
specificationsanddescriptionbullet points fromget_product_details. - Evaluate third-party sellers before purchase by fetching
rating_summaryviaget_seller_profile. - Automate cart population for procurement workflows using
add_to_cartwith specific ASINs and quantities.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Amazon have an official developer API?+
What does `get_product_offers` return beyond the basic product price?+
get_product_details.Does the API cover Amazon product Q&A or community answers?+
How does pagination work in `search_products`?+
page parameter is an integer (1-based) and the response includes a page field echoing the current page. Results per page match Amazon's standard search result pages. There is no explicit total_pages field in the response, so you iterate until the returned products array is empty or shorter than a full page.Does the API return Amazon Prime eligibility or shipping speed data?+
get_product_details and get_product_offers endpoints return price, brand, specifications, and offer arrays but do not include Prime badge status or delivery estimates. You can fork the API on Parse and revise to add those fields if your use case requires them.