Amzn APIamzn.to ↗
Access Amazon product search, ASIN detail lookups, and category best sellers via a single API. Returns titles, prices, ratings, images, and feature bullets.
What is the Amzn API?
This API exposes 3 endpoints for retrieving Amazon product data: keyword search, individual product detail by ASIN, and category best sellers. The get_product_details endpoint accepts one or multiple comma-separated ASINs and returns up to six fields per product — including structured feature bullet points and full description — making it useful for programmatic comparison or catalog enrichment workflows.
curl -X GET 'https://api.parse.bot/scraper/8a2411e1-9d59-464f-bd01-d8b35e0e77f5/search_products?page=1&query=wireless+headphones' \ -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 amzn-to-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 Product Data SDK — search, browse best sellers, fetch details."""
from parse_apis.amazon_product_data_api import Amazon, Category, ProductNotFound
client = Amazon()
# Search for products by keyword. limit= caps TOTAL items fetched across pages.
for product in client.products.search(query="wireless headphones", limit=5):
print(product.title, product.price, product.rating)
# Browse best sellers in a specific category using the Category enum.
for product in client.products.best_sellers(category=Category.ELECTRONICS, limit=3):
print(product.title, product.price, product.image)
# Fetch full product details (description + features) for a specific ASIN.
detail = client.products.fetch(asin="B0DCH8VDXF", limit=1).first()
if detail:
print(detail.title, detail.price)
if detail.features:
for feature in detail.features[:3]:
print(f" • {feature}")
# Typed error handling: catch ProductNotFound for invalid ASINs.
try:
missing = client.products.fetch(asin="B000INVALID", limit=1).first()
except ProductNotFound as exc:
print(f"Product not found: {exc.asin}")
print("exercised: products.search / products.best_sellers / products.fetch / ProductNotFound")
Search for products on Amazon by keyword. Returns paginated results with product title, price, rating, image URL, and ASIN. Each page returns up to ~20 organic results. Higher page numbers may yield fewer results as Amazon limits deep pagination.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination (1-based). |
| queryrequired | string | Search keyword (e.g. 'wireless headphones', 'laptop'). |
{
"type": "object",
"fields": {
"page": "string indicating the current page number",
"items": "array of product objects each containing asin, title, price, rating, and image"
},
"sample": {
"data": {
"page": "1",
"items": [
{
"asin": "B0BS1RT9S2",
"image": "https://m.media-amazon.com/images/I/41JACWT-wWL._AC_UY218_.jpg",
"price": "$38.00",
"title": "Sony WH-CH520 Wireless Headphones Bluetooth On-Ear Headset with Microphone and up to 50 Hours Battery Life with Quick Charging, Blue",
"rating": "4.5 out of 5 stars"
}
]
},
"status": "success"
}
}About the Amzn API
Search and Discovery
The search_products endpoint accepts a query string (e.g., 'wireless headphones') and returns paginated results. Each item in the items array includes the product's asin, title, price, rating, and image URL. Pagination is controlled via the page parameter; the current page is reflected back as a string in the page field of the response.
Product Detail Lookups
The get_product_details endpoint is the most data-dense of the three. Pass a single ASIN or a comma-separated list (e.g., 'B08N5WRWNW,B07XJ8C8F5') to the asin parameter. The response returns a products array where each object includes asin, title, price, rating, description, and a features array of bullet points. This makes it straightforward to hydrate a product list returned from search with full editorial content in one call.
Best Sellers by Category
The get_best_sellers endpoint returns Amazon's current best-selling products. Supply a category slug such as 'electronics' or 'books' to scope the results; omitting the parameter returns the overall best sellers list. Each item in the items array carries asin, title, price, rating, and image. Because the list reflects current rankings, repeated polling can surface trending products over time.
Data Shape and Coverage
All three endpoints share a consistent product object structure built around the ASIN as the stable identifier. Price is returned as a string (matching Amazon's display format, which may include currency symbols and range notation). Ratings are included where available on the source listing. Seller-level data, inventory stock status, and customer review text are not part of the current response schema.
The Amzn API is a managed, monitored endpoint for amzn.to — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when amzn.to 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 amzn.to 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-tracking tool that polls
search_productsfor specific keywords and logs price changes over time. - Enrich an affiliate product feed by batch-resolving ASINs through
get_product_detailsto pull titles, descriptions, and feature bullets. - Identify trending products in a category by periodically calling
get_best_sellerswith a category slug and diffing the ranked list. - Populate a comparison shopping page using the
featuresanddescriptionfields returned byget_product_detailsfor side-by-side display. - Validate product catalog metadata by cross-referencing stored titles and prices against live data from
get_product_details. - Build a category-level market research dashboard by aggregating
ratingandpricedata fromget_best_sellersacross multiple category slugs.
| 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_details` return beyond what `search_products` gives?+
search_products returns a short set of fields — asin, title, price, rating, and image — suitable for listing views. get_product_details adds a description field (the full editorial product description) and a features array containing structured bullet points. It also accepts multiple ASINs in one call, so you can hydrate a batch of search results in a single request.Are customer reviews or review counts returned by any endpoint?+
rating values but do not expose individual review text, review counts, or review breakdowns by star level. You can fork this API on Parse and revise it to add a review-fetching endpoint targeting a specific ASIN.Does the API cover Amazon marketplaces outside the US?+
How does pagination work in `search_products`?+
page parameter to retrieve a specific results page. The response echoes back the current page number as a string in the page field. There is no total_pages or total_results field in the response, so iterating to find the last page requires checking whether the returned items array is empty.