Amazon API & Scraper
The Amazon Product Data API returns product, review, offer and search data across Amazon marketplaces as clean JSON.
🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.
The primary product/detail endpoint returns an ASIN's title, price, rating, brand, features, images, variations, tech specs and A+ content — the full product page as structured data. You can also pull product/reviews, product/offers (the buy-box and third-party sellers), run a search, and list bestsellers and new-releases. It is the managed alternative to building an Amazon scraper — no proxies, no captcha handling, no browser fleet — for pricing intelligence, catalog enrichment and review analysis. One ReefAPI key, one shared credit pool, the standard envelope.
Marketplace codes, and the currency symbol each one returns
marketplace picks the Amazon site, which sets both the language of every text field and the currency of every price. The currency field is the symbol Amazon prints, not an ISO-4217 code, so it is not unique - com and com.mx both return "$". Always store the marketplace next to the price. These values were measured with one search per site on 2026-08-26.
| marketplace | Site | currency value returned |
|---|---|---|
| com (default) | amazon.com - United States | $ |
| co.uk | amazon.co.uk - United Kingdom | £ |
| de | amazon.de - Germany | € |
| co.jp | amazon.co.jp - Japan | ¥ (fullwidth yen) |
| in | amazon.in - India | ₹ |
| com.tr | amazon.com.tr - Türkiye | TL |
| pl | amazon.pl - Poland | zł (null on cards with no price) |
| se | amazon.se - Sweden | kr |
| ae | amazon.ae - United Arab Emirates | AED |
| com.br | amazon.com.br - Brazil | R$ |
| com.mx | amazon.com.mx - Mexico | $ (the same symbol as com, and not USD) |
fr, it, es, ca, com.au, nl, sg and sa are accepted by the same enum but were not measured in this pass. An ASIN is per-marketplace: B0DGHMNQ5Z resolves on com and comes back in not_found on co.uk, de, co.jp, in, com.tr, com.br, pl, se and ae, because that listing does not exist on those sites.
Real request and response JSON
Captured from the indexed primary action, search, on .
{
"method": "POST",
"url": "https://api.reefapi.com/amazon/v1/search",
"headers": {
"x-api-key": "$REEF_KEY",
"content-type": "application/json"
},
"body": {
"query": "laptop"
}
}{
"ok": true,
"meta": {
"api": "amazon",
"endpoint": "search",
"mode": "live",
"latency_ms": 2983.7,
"record_count": 16,
"bytes": 1612023,
"cache_hit": false,
"completeness_pct": 100,
"marketplace": "com",
"pagination": {
"page": 1,
"has_more": true
}
},
"data": {
"results": [
{
"asin": "B0GQB1LPTR",
"title": "HP OmniBook 3 17.3 inch Laptop PC, FHD Display, AMD Ryzen 3 30, 8 GB RAM, 512 GB SSD, AMD Radeon 610M Graphics, Windows 11 Home, Mica Silver, 17-dp0199nr",
"price": 449.99,
"currency": "$",
"rating": 4.4,
"rating_count": 87,
"image": "https://m.media-amazon.com/images/I/71qW8R8vytL._AC_UY218_.jpg",
"sponsored": false,
"coupon": null,
"campaign": "Ends in"
},
{
"asin": "B0H5QC6QW4",
"title": "15.6 Inch Laptop with AI, Office 365, 6GB RAM 128GB SSD, Quad-Core Processor, Win 11 Home Laptops Computer, IPS FHD, 180°Viewing, Type-C, WiFi 5, BT4.2, Portable Thin Laptops - Gray",
"price": 259.99,
"currency": "$",
"rating": 4.4,
"rating_count": 18,
"image": "https://m.media-amazon.com/images/I/81LNJ0I6sFL._AC_UY218_.jpg",
"sponsored": false,
"coupon": null,
"campaign": "Limited time deal"
},
{
"asin": "B0GRPWC7HK",
"title": "HP 14” Laptop Ultra-Portable Computer 2026 Student Business, MS Office, Copilot AI, Intel 4-Core CPU, 4GB RAM, 628GB Storage (128GB UFS+500GB Ext), Long Battery, MaxsolAccessory, Win 11 Pro, Lavender",
"price": 269.1,
"currency": "$",
"rating": 4.3,
"rating_count": 32,
"image": "https://m.media-amazon.com/images/I/71m6yX1hUPL._AC_UY218_.jpg",
"sponsored": false,
"coupon": null,
"campaign": "Limited time deal"
}
],
"page": 1
}
}What the Amazon API does
| Action | Description | Concrete use case | Key params |
|---|---|---|---|
| product/detail | full product page (title/price/currency/rating/count/brand/features/images/categories/variations/tech-specs/A+content/compare-similar) + top-8 inline reviews, by ASIN | Pricing teams call product/detail to get full product page (title/price/currency/rating/count/brand/features/images/categories/variati…. | asin, marketplace, include_reviews, fields, exclude |
| product/reviews | Amazon product reviews by ASIN — the public reviews from the product page (and optionally merged + deduped across several marketplaces for more depth). Each review has author, rating, title, date, body, verified badge and helpful votes. | Marketplace operators call product/reviews to get amazon product reviews by ASIN. | asin, marketplace, marketplaces |
| product/offers | pinned buybox + all-offers (AOD aodAjaxMain): price/seller/condition/ships_from/delivery/prime, by ASIN | Catalog enrichment teams call product/offers to get pinned buybox + all-offers (AOD aodAjaxMain). | asin, marketplace |
| search | product search with optional filters (price range, minimum rating, deals, brand) → results[]{asin,title,price,currency,rating,rating_count,image,sponsored} | Retail analysts call search to get product search with optional filters (price range, minimum rating, deals, brand) → results[]{…. | query, marketplace, page, max_results, sort, ... |
| products_batch | Look up MANY Amazon products in ONE call by ASIN — up to 40 per request → each product's title, current price and currency, star rating with review count, image, and any clippable coupon or deal badge. ONE upstream request serves the whole list (not one per ASIN), so this is the cheap way to refresh a price list or reconcile a catalogue against Amazon. IMPORTANT — this returns the SUMMARY card for each product, which is what Amazon publishes on a multi-product surface. For features, technical specifications, variations, barcodes, A+ content or reviews, use product/detail, which reads the full product page and costs one call per ASIN. | Pricing teams call products_batch to look up MANY Amazon products in ONE call by ASIN. | asins, marketplace |
| category/browse | Browse a department or sub-department by its Amazon browse NODE id and page through the grid — the catalogue-walking counterpart to `search`, for when you want everything in a category rather than everything matching a phrase. Node ids come from a category URL (the number after `node=` / `n%3A`). Pagination is page-native: keep asking for the next page while `has_next` is true; an empty page means you reached the end. There is deliberately NO total count — Amazon's own result-count value swings between identical requests, so publishing it would hand you a number you cannot rely on. | Marketplace operators call category/browse to get browse a department or sub-department by its Amazon browse NODE id and page through the grid. | node, marketplace, page |
| bestsellers | best-sellers ranking for a department (category slug required) | Catalog enrichment teams call bestsellers to get best-sellers ranking for a department (category slug required). | category, marketplace, max_results |
| new-releases | new-releases ranking for a department (category slug required) | Retail analysts call new-releases to get new-releases ranking for a department (category slug required). | category, marketplace, max_results |
| seller/profile | seller profile (name, feedback %, lifetime ratings, rating) | Pricing teams call seller/profile to get seller profile (name, feedback %, lifetime ratings, rating). | seller_id, marketplace |
| autocomplete | search autocomplete suggestions | Marketplace operators call autocomplete to search autocomplete suggestions. | query, marketplace |
| seller/products | a seller's catalog/storefront by seller_id (paginated) | Catalog enrichment teams call seller/products to get a seller's catalog/storefront by seller_id (paginated). | seller_id, marketplace, page |
| seller/reviews | seller FEEDBACK reviews (rating/text/rater/date) by seller_id | Retail analysts call seller/reviews to get seller FEEDBACK reviews (rating/text/rater/date) by seller_id. | seller_id, marketplace |
| deals | Amazon deal-products (today's deals / goldbox): asin/title/price/image | Pricing teams call deals to get amazon deal-products (today's deals / goldbox). | marketplace |
| product/related | Amazon related & recommended products by ASIN — the product-recommendation carousels from the Amazon product page grouped by relationship: 'Customers who viewed this item also viewed', 'Customers also bought', 'Products related to this item' and 'Frequently bought together'. Each recommended product comes with its ASIN, title, price, star rating and image — ideal for building 'you may also like' / cross-sell feeds. | Marketplace operators call product/related to get amazon related & recommended products by ASIN. | asin, marketplace |
| gtin-to-asin | Amazon barcode lookup — convert a product barcode (UPC, EAN, ISBN or GTIN) into the matching Amazon ASIN(s). Pass the 8-14 digit code from a physical product and get back the Amazon listing(s) it maps to (ASIN, title, price, rating, image) — for catalog matching, price checks and reconciling SKUs to Amazon products. | Catalog enrichment teams call gtin-to-asin to get amazon barcode lookup. | gtin, marketplace |
Call search from your stack
curl -X POST https://api.reefapi.com/amazon/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"laptop"}'import requests
r = requests.post(
"https://api.reefapi.com/amazon/v1/search",
headers={"x-api-key": REEF_KEY},
json={
"query": "laptop"
},
)
print(r.json()["data"])const res = await fetch("https://api.reefapi.com/amazon/v1/search", {
method: "POST",
headers: {
"x-api-key": process.env.REEF_KEY,
"content-type": "application/json",
},
body: JSON.stringify({
"query": "laptop"
}),
});
const { ok, data, meta, error } = await res.json();Ask your MCP-connected assistant: call reefapi.amazon.search with {"query":"laptop"}.Who uses this API and why
- Pricing teams call product/offers to monitor the buy-box winner and third-party prices for an ASIN.
- Catalog-enrichment tools use product/detail to fill product pages with images, specs and A+ content.
- Review-analysis products pull product/reviews to track sentiment and rating trends over time.
Questions developers ask before integrating
Why is currency "$" instead of "USD"?
Because it is read from the page, where Amazon prints a symbol. Measured values are $, £, €, the fullwidth ¥, ₹, R$, and the word-like TL, zł, kr and AED. Two consequences: it is not an ISO code, so do not hand it to a currency library unmapped, and it is not unique - amazon.com and amazon.com.mx both return "$" for very different amounts (a laptop at 4999 on com.mx is pesos). Derive your own currency from meta.marketplace, which every response echoes, and use currency only for display.
Is an ASIN always 10 characters?
Every ASIN measured was exactly 10 uppercase alphanumeric characters - B0DGHMNQ5Z, B01GJOMWVA, B0CKM9F15Z - and parent ids follow the same shape (B0GGJGSPPP, B0F15CGHY5). It is the code after /dp/ in a product URL. If all you have is a barcode, gtin-to-asin converts a UPC, EAN, ISBN or GTIN-14 into the matching ASIN or ASINs rather than making you guess.
Why does products_batch report a much smaller rating_count than product/detail?
products_batch reads Amazon's compact card, where the review count is abbreviated, and it passes that number through unchanged. Measured on the same two ASINs on 2026-08-26: batch returned rating_count 34 where product/detail returned 34,056, and 501 where detail returned 50,194. The star rating itself agrees (4.5 and 4.4). Use products_batch for cheap price and availability refreshes - one upstream call covers up to 15 ASINs - and read rating_count from product/detail whenever the exact number matters.
Why did my parent ASIN come back in not_found?
Because a parent ASIN is a grouping node, not a buyable listing, and Amazon does not serve it as a product page. A measured batch of four returned two products plus not_found ["B0ZZZZZZZZ", "B0GGJGSPPP"] - the first is nonsense, the second is the legitimate parent of the AirPods listing. Query a child ASIN instead. not_found is why the batch action is safe to run blind: nothing is silently dropped, and meta.batch reports requested, resolved, not_found and the ceiling of 15.
How do variations and the parent ASIN relate?
product/detail returns a variations object that maps the whole family in one call: total_children, parent_asin, dimensions (the axes, e.g. style_name and configuration), dimension_values (the options on each axis), asin_map (child ASIN to its option labels) and asin_dimensions (child ASIN to a keyed object). A measured AirPods 4 listing returned 4 children across two axes - Active Noise Cancellation yes/no crossed with AppleCare+ yes/no - under parent B0GGJGSPPP. So you can enumerate every variant with one detail call, then price only the children you care about.
How do the buy box and the third-party offers differ, and where is the seller name?
product/offers returns pinned (the offer Amazon is featuring) as a sibling of offers[] (everything else), and offer_count counts only the latter - a measured call returned meta.record_count 10 for 1 pinned plus 9 offers. Read the merchant from ships_from, which carried real storefront names like "VR Top Sell" and "D' Lolas House"; the seller field currently returns the row label rather than the name. Expect pinned and product/detail to disagree on price - the same ASIN measured 129.00 pinned against 99.00 on the detail page - so capture both rather than assuming either is the price.
What do condition values look like on an offer?
They are Amazon's own English grade strings, not a numeric enum: "New", and for used stock "Used - Like New", "Used - Very Good", "Used - Good" and "Used - Acceptable", all measured on live listings. delivery is a free-text promise line that includes Prime alternatives and an order-within countdown, so treat it as display copy rather than a date. Because offers[] mixes new and used, filter on condition before you compute a lowest price - the cheapest row on one measured ASIN was a used unit at 20.39 against a 34.99 new pinned price.
Why do review bodies start with "Brief content visible, double tap to read full content"?
That is Amazon's own screen-reader text, rendered inside the review block on the product page, and it is returned verbatim rather than being silently edited away. Strip that prefix and its "Full content visible, double tap to read brief content" twin before running sentiment analysis. The rest of the row is clean: review_id, author, profile_id, rating as a float, date as a localized long date ("August 18, 2026"), location, verified, format naming the variant bought, helpful_count and marketplace. Note also that product/detail returns reviews[] as a sibling of product, not nested inside it.
Which fields come back null when Amazon does not print them?
Barcodes and rich content are the usual blanks. On a measured mainstream ASIN, gtin, upc, ean and isbn were all null with barcodes an empty array, aplus was null, categories was empty, and coupon and campaign were null because that listing had no clippable coupon or deal ribbon. availability is null on a normally stocked card by design - Amazon only prints a stock line when stock is low or gone, and the engine does not invent one. Absent means "Amazon did not print it", never "zero".
What is the Amazon API?
Amazon API is a ReefAPI endpoint group for product details, prices, ratings and reviews. It returns live JSON through POST requests under /amazon/v1.
Is the Amazon API free to try?
Yes. ReefAPI starts with 1,000 free credits, no card required. Amazon calls use the same shared credit balance as every other ReefAPI engine.
Do I need an Amazon login or account?
No login to Amazon is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.
How fresh is the Amazon data?
The page example is captured from a live product/detail call, and production requests fetch live data through ReefAPI rather than a static sample.
How many credits does the Amazon API use?
Amazon actions currently cost 1-10 credits per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.