# Amazon Product Data API — product detail, reviews, offers, search, best-sellers, and seller data across 19 Amazon marketplaces (amazon.com, .co.uk, .de, .co.jp and more)

> 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
> ReefAPI engine `amazon` · 13 endpoints · clean JSON, no scraping or browsers to manage.

## How to call
- **Endpoint:** `POST https://api.reefapi.com/amazon/v1/<action>` with a JSON body.
- **Auth:** header `x-api-key: <YOUR_REEFAPI_KEY>` — create one free (1,000 credits, no card): https://reefapi.com/signup
- **Response (every call):** `{ ok: boolean, data: ..., meta: { record_count, credits, ... }, error: { code, message } }` — branch on `ok`. Failed or blocked calls are free.
- **One key + one shared credit pool** across every ReefAPI API. Per-call credits are listed on each endpoint below.
- **Use it from an AI agent (MCP):** connect `https://api.reefapi.com/mcp` (remote streamable-http, `Authorization: Bearer <key>`) and your assistant can call these actions directly.

## Endpoints

### POST /amazon/v1/product/detail — 2 credits
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

**Parameters:**
- `asin` (string, required) — Amazon product ID (ASIN) — the 10-character code in the product URL after /dp/.
- `marketplace` (enum, optional, default "com") — Which Amazon site to query (sets language and currency). Dropdown = the 19 verified marketplaces; other Amazon sites (e.g. eg, com.be) and forms like 'amazon.de'/'DE' are also accepted and normalized by the engine. [one of: com, co.uk, de, fr, it, es, co.jp, in, ca, com.au, com.mx, com.br, com.tr, ae, nl, se, pl, sg, sa]

**Returns:** product{asin, title, price, currency, rating, brand, features[], images[], variations, tech_specs{key:value}, aplus{images[],headings[],text}, compare_similar[]{asin,title,price,rating,image}, coupon (clippable coupon label e.g. '%10 kuponunu uygula', null when none), campaign (deal-badge ribbon e.g. 'Fırsat' / '90 günün en düşük fiyatı', null when none)} + reviews[] (top-8 inline) + review_insights{summary, aspects[]{keyword,sentiment,positive,negative,mentions,mentions_positive_pct}, quotes[]{text,review_id,aspect}} (Amazon 'Customers say' AI review summary; null when the product has none) + total_review_count + average_rating

**Example request body:**
```json
{
  "asin": "B0DGHMNQ5Z"
}
```

### POST /amazon/v1/product/reviews — 1 credit
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.

**Parameters:**
- `asin` (string, required) — Amazon product ID (ASIN) — the 10-character code in the product URL after /dp/.
- `marketplace` (enum, optional, default "com") — Which Amazon site to query (sets language and currency). Dropdown = the 19 verified marketplaces; other Amazon sites (e.g. eg, com.be) and forms like 'amazon.de'/'DE' are also accepted and normalized by the engine. [one of: com, co.uk, de, fr, it, es, co.jp, in, ca, com.au, com.mx, com.br, com.tr, ae, nl, se, pl, sg, sa]
- `marketplaces` (array, optional) — Merge + dedup reviews from several Amazon sites in one call (more depth than any single site). Overrides `marketplace`. Sites beyond the 19 listed are also accepted. [one of: com, co.uk, de, fr, it, es, co.jp, in, ca, com.au, com.mx, com.br, com.tr, ae, nl, se, pl, sg, sa]

**Returns:** reviews[]{author, rating, title, date, location, verified, body, helpful_count, marketplace} + returned_count + total_review_count + average_rating + review_insights{summary, aspects[]{keyword,sentiment,positive,negative,mentions,mentions_positive_pct}, quotes[]{text,review_id,aspect}} (Amazon 'Customers say' AI review summary; null when absent)

**Example request body:**
```json
{
  "asin": "B0DGHMNQ5Z"
}
```

### POST /amazon/v1/product/offers — 2 credits
pinned buybox + all-offers (AOD aodAjaxMain): price/seller/condition/ships_from/delivery/prime, by ASIN

**Parameters:**
- `asin` (string, required) — Amazon product ID (ASIN) — the 10-character code in the product URL after /dp/.
- `marketplace` (enum, optional, default "com") — Which Amazon site to query (sets language and currency). Dropdown = the 19 verified marketplaces; other Amazon sites (e.g. eg, com.be) and forms like 'amazon.de'/'DE' are also accepted and normalized by the engine. [one of: com, co.uk, de, fr, it, es, co.jp, in, ca, com.au, com.mx, com.br, com.tr, ae, nl, se, pl, sg, sa]

**Returns:** pinned{price, currency, seller, condition, prime} + offers[]{price, currency, seller, ships_from, condition, delivery, prime} + offer_count

**Example request body:**
```json
{
  "asin": "B0DGHMNQ5Z"
}
```

### POST /amazon/v1/search — 1 credit
product search with optional filters (price range, minimum rating, deals, brand) → results[]{asin,title,price,currency,rating,count,image,sponsored}

**Parameters:**
- `query` (string, required) — What to search for (product keywords).
- `sort` (enum, optional, default "relevanceblender") — Result ordering (the 6 listed are the live-verified Amazon sort keys; an unknown value falls back to Featured upstream). [one of: relevanceblender, price-asc-rank, price-desc-rank, review-rank, date-desc-rank, exact-aware-popularity-rank]
- `price_min` (integer, optional) — Minimum price filter, in whole units of the marketplace currency (e.g. 100 = $100 on amazon.com). Combine with price_max for a range.
- `price_max` (integer, optional) — Maximum price filter, in whole units of the marketplace currency (e.g. 300 = $300 on amazon.com). Use with price_min for a range.
- `min_rating` (integer, optional) — Keep only products rated this many stars and up (1-4). 4 = '4 stars & up' is live-verified; lower tiers are best-effort and only the US site (marketplace=com) is verified. [one of: 1, 2, 3, 4]
- `deals` (boolean, optional, default false) — When true, restrict to products with an active Amazon deal (Today's Deals). Live-verified on the US site.
- `discount` (boolean, optional, default false) — Alias of `deals` — restrict to discounted/on-deal products.
- `prime` (boolean, optional, default false) — When true, attempt to restrict to Prime-eligible items. BEST-EFFORT: Amazon no longer exposes a reliable Prime URL refinement, so this may be a no-op on some sites/queries.
- `brand` (string, optional) — Filter to a brand. BEST-EFFORT: passed as a keyword refinement (the brand is appended to the query) rather than a strict brand facet, so results are brand-narrowed but not brand-exclusive.
- `marketplace` (enum, optional, default "com") — Which Amazon site to query (sets language and currency). Dropdown = the 19 verified marketplaces; other Amazon sites (e.g. eg, com.be) and forms like 'amazon.de'/'DE' are also accepted and normalized by the engine. [one of: com, co.uk, de, fr, it, es, co.jp, in, ca, com.au, com.mx, com.br, com.tr, ae, nl, se, pl, sg, sa]
- `page` (integer, optional, default 1) — Page number (easy paging: 1, 2, 3…).

**Returns:** results[]{asin, title, price, currency, rating, rating_count, image, sponsored, coupon (clippable coupon label, null when none), campaign (deal-badge ribbon e.g. 'Fırsat', null when none)} + page + filters_applied (meta.pagination for paging)

**Example request body:**
```json
{
  "query": "laptop"
}
```

### POST /amazon/v1/bestsellers — 1 credit
best-sellers ranking for a department (category slug required)

**Parameters:**
- `category` (string, required) — Department slug from the bestsellers URL (amazon.com/gp/bestsellers/<slug>). REQUIRED — the all-departments root page is not server-rendered, so a category slug is needed to get a ranking. Verified slugs: electronics, books, toys-and-games, beauty, videogames, fashion, sporting-goods (other valid Amazon department slugs also work; an unknown slug returns 0 items). [one of: electronics, books, toys-and-games, beauty, videogames, fashion, sporting-goods]
- `marketplace` (enum, optional, default "com") — Which Amazon site to query (sets language and currency). Dropdown = the 19 verified marketplaces; other Amazon sites (e.g. eg, com.be) and forms like 'amazon.de'/'DE' are also accepted and normalized by the engine. [one of: com, co.uk, de, fr, it, es, co.jp, in, ca, com.au, com.mx, com.br, com.tr, ae, nl, se, pl, sg, sa]

**Returns:** items[]{rank, asin, title, price, rating, image}

### POST /amazon/v1/new-releases — 1 credit
new-releases ranking for a department (category slug required)

**Parameters:**
- `category` (string, required) — Department slug from the bestsellers URL (amazon.com/gp/bestsellers/<slug>). REQUIRED — the all-departments root page is not server-rendered, so a category slug is needed to get a ranking. Verified slugs: electronics, books, toys-and-games, beauty, videogames, fashion, sporting-goods (other valid Amazon department slugs also work; an unknown slug returns 0 items). [one of: electronics, books, toys-and-games, beauty, videogames, fashion, sporting-goods]
- `marketplace` (enum, optional, default "com") — Which Amazon site to query (sets language and currency). Dropdown = the 19 verified marketplaces; other Amazon sites (e.g. eg, com.be) and forms like 'amazon.de'/'DE' are also accepted and normalized by the engine. [one of: com, co.uk, de, fr, it, es, co.jp, in, ca, com.au, com.mx, com.br, com.tr, ae, nl, se, pl, sg, sa]

**Returns:** items[]{rank, asin, title, price, rating, image}

### POST /amazon/v1/seller/profile — 1 credit
seller profile (name, feedback %, lifetime ratings, rating)

**Parameters:**
- `seller_id` (string, required) — Amazon seller ID — the code after seller= in a seller-page URL.
- `marketplace` (enum, optional, default "com") — Which Amazon site to query (sets language and currency). Dropdown = the 19 verified marketplaces; other Amazon sites (e.g. eg, com.be) and forms like 'amazon.de'/'DE' are also accepted and normalized by the engine. [one of: com, co.uk, de, fr, it, es, co.jp, in, ca, com.au, com.mx, com.br, com.tr, ae, nl, se, pl, sg, sa]

**Returns:** seller_name + feedback_positive_pct + lifetime_ratings + rating

**Example request body:**
```json
{
  "seller_id": "A3A9OGKM04K3X0"
}
```

### POST /amazon/v1/autocomplete — 0 credits
search autocomplete suggestions

**Parameters:**
- `query` (string, required) — Partial search text to complete (e.g. 'lapt' → laptop…).
- `marketplace` (enum, optional, default "com") — Which Amazon site to query (sets language and currency). Dropdown = the 19 verified marketplaces; other Amazon sites (e.g. eg, com.be) and forms like 'amazon.de'/'DE' are also accepted and normalized by the engine. [one of: com, co.uk, de, fr, it, es, co.jp, in, ca, com.au, com.mx, com.br, com.tr, ae, nl, se, pl, sg, sa]

**Returns:** suggestions[] (plain strings)

**Example request body:**
```json
{
  "query": "laptop"
}
```

### POST /amazon/v1/seller/products — 1 credit
a seller's catalog/storefront by seller_id (paginated)

**Parameters:**
- `seller_id` (string, required) — Amazon seller ID — the code after seller= in a seller-page URL.
- `marketplace` (enum, optional, default "com") — Which Amazon site to query (sets language and currency). Dropdown = the 19 verified marketplaces; other Amazon sites (e.g. eg, com.be) and forms like 'amazon.de'/'DE' are also accepted and normalized by the engine. [one of: com, co.uk, de, fr, it, es, co.jp, in, ca, com.au, com.mx, com.br, com.tr, ae, nl, se, pl, sg, sa]
- `page` (integer, optional, default 1) — Page number (easy paging: 1, 2, 3…).

**Returns:** results[]{asin, title, price, currency, rating, rating_count, image, sponsored} + page (meta.pagination for paging)

**Example request body:**
```json
{
  "seller_id": "A3A9OGKM04K3X0"
}
```

### POST /amazon/v1/seller/reviews — 1 credit
seller FEEDBACK reviews (rating/text/rater/date) by seller_id

**Parameters:**
- `seller_id` (string, required) — Amazon seller ID — the code after seller= in a seller-page URL.
- `marketplace` (enum, optional, default "com") — Which Amazon site to query (sets language and currency). Dropdown = the 19 verified marketplaces; other Amazon sites (e.g. eg, com.be) and forms like 'amazon.de'/'DE' are also accepted and normalized by the engine. [one of: com, co.uk, de, fr, it, es, co.jp, in, ca, com.au, com.mx, com.br, com.tr, ae, nl, se, pl, sg, sa]

**Returns:** reviews[]{rating, text, rater, date} + returned_count

**Example request body:**
```json
{
  "seller_id": "A3A9OGKM04K3X0"
}
```

### POST /amazon/v1/deals — 1 credit
Amazon deal-products (today's deals / goldbox): asin/title/price/image

**Parameters:**
- `marketplace` (enum, optional, default "com") — Which Amazon site to query (sets language and currency). Dropdown = the 19 verified marketplaces; other Amazon sites (e.g. eg, com.be) and forms like 'amazon.de'/'DE' are also accepted and normalized by the engine. [one of: com, co.uk, de, fr, it, es, co.jp, in, ca, com.au, com.mx, com.br, com.tr, ae, nl, se, pl, sg, sa]

**Returns:** items[]{asin, title, price, image}

### POST /amazon/v1/product/related — 1 credit
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.

**Parameters:**
- `asin` (string, required) — Amazon product ID (ASIN) — the 10-character code in the product URL after /dp/.
- `marketplace` (enum, optional, default "com") — Which Amazon site to query (sets language and currency). Dropdown = the 19 verified marketplaces; other Amazon sites (e.g. eg, com.be) and forms like 'amazon.de'/'DE' are also accepted and normalized by the engine. [one of: com, co.uk, de, fr, it, es, co.jp, in, ca, com.au, com.mx, com.br, com.tr, ae, nl, se, pl, sg, sa]

**Returns:** asin + groups{<relationship>: items[]} + related[] (flat, deduped) + group_count + item_count; each item{asin, title, price, currency, rating, image}

**Example request body:**
```json
{
  "asin": "0735211299"
}
```

### POST /amazon/v1/gtin-to-asin — 1 credit
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.

**Parameters:**
- `gtin` (string, optional) — The product barcode to look up — a UPC (12 digits), EAN (13), ISBN-10/13 or GTIN-14. Hyphens/spaces are ignored.
- `marketplace` (enum, optional, default "com") — Which Amazon site to query (sets language and currency). Dropdown = the 19 verified marketplaces; other Amazon sites (e.g. eg, com.be) and forms like 'amazon.de'/'DE' are also accepted and normalized by the engine. [one of: com, co.uk, de, fr, it, es, co.jp, in, ca, com.au, com.mx, com.br, com.tr, ae, nl, se, pl, sg, sa]

**Returns:** gtin + asin (best match) + matches[]{asin, title, price, currency, rating, rating_count, image} + match_count

**Example request body:**
```json
{
  "gtin": "9780735211292"
}
```

## More
- Try it live, no code: https://reefapi.com/playground?engine=amazon
- Human docs page: https://reefapi.com/docs/amazon
- Every ReefAPI API in one file (for your AI): https://reefapi.com/llms-full.txt
