# Amazon Search API. Pay per record.

> Amazon search results as JSON: every hit a full product card with its rank, price, rating and seller. From $0.00045 per product, pay as you go.

Canonical: https://apiforagents.dev/platforms/amazon/search-api · Updated 2026-10-21

Search one Amazon marketplace by keyword and get back what a shopper sees, in order. Every hit is a full product card with its search rank, so you do not need a second call for the details.

- Price: $0.00045 / product
- Billed: Per record
- Free to start: $0.10
- Endpoint: POST /v1/amazon

## What people build with the Amazon Search API

- **Share of search.** See where your products and your competitors' rank for the keywords that matter, on each Amazon site you sell on.
- **Find products to track.** Search a category once, keep the ASINs that matter, then follow them with the product API.
- **Market research.** Compare prices, ratings and how many bought in the past month across the first page of a niche.

## Quote it, then run it

1. free quote: the exact price, nothing charged:

```bash
curl -X POST https://apiforagents.dev/v1/amazon \
  -H "Authorization: Bearer $AFA_KEY" \
  -H "Content-Type: application/json" \
  -d '{"op":"search","query":"wireless earbuds","marketplace":"com","limit":10,"estimateOnly":true}'
```

2. the same call, run:

```bash
curl -X POST https://apiforagents.dev/v1/amazon \
  -H "Authorization: Bearer $AFA_KEY" \
  -H "Content-Type: application/json" \
  -d '{"op":"search","query":"wireless earbuds","marketplace":"com","limit":10}'
```

## Inputs

Everything you can send in one search call. Required inputs first.

| Input | Type | What it does |
|---|---|---|
| query * | string | ≤300 chars |
| marketplace | enum | The Amazon site as its domain suffix ,  "com", "in", "co.uk", "de"… A product URL carries its own and overrides this; a bare ASIN and a search use it. Prices, stock and reviews differ per site. |
| limit | integer | 1-50 |

## What comes back

The fields of every row, always present. Nothing is guessed: a value that could not be measured is null, and the answer's coverage says why.

| Field | Type |
|---|---|
| asin | string |
| marketplace | string |
| title | string |
| brand | string |
| productUrl | string |
| price | number |
| currency | string |
| listPrice | number |
| discount | string |
| onDeal | boolean |
| prime | boolean |
| availability | string |
| rating | number |
| ratingsCount | integer |
| reviewsCount | integer |
| ratingBreakdown | any |
| boughtPastMonth | string |
| boughtPastMonthMin | integer |
| bestSellersRank | integer |
| bsrCategory | string |
| soldBy | string |
| fulfilledBy | string |
| sellerId | string |
| usedOffer | any |
| features | list of string |
| description | string |
| categoryPath | string |
| browseNodeId | string |
| productDetails | any |
| keySpecs | any |
| bookEditions | any |
| variants | any |
| mainImage | string |
| images | list of string |
| videos | list of string |
| reviewSummary | string |
| reviewTopics | any |
| details | object |

details is always the last field: everything else the source sent for that row, under our own field names. Its keys depend on the source that answered, so read them defensively; it is {} when there is nothing more.

## A sample answer

Real rows from an earlier run, business data only.

| asin | marketplace | title | brand | productUrl | price |
|---|---|---|---|---|---|
| B0DGHMNQ5Z | com | Apple AirPods 4 Wireless Earbuds | Apple | https://www.amazon.com/dp/B0DGHMNQ5Z | 99 |
| B0BJQWYLYN | com | Apple AirPods Pro (2nd Generation) (Renewed) | Apple | https://www.amazon.com/dp/B0BJQWYLYN | 146.9 |

## Pricing

Pay as you go, in US dollars, per record. No subscription, nothing expires, $5 first top-up, and every new agent starts with $0.10 free.

| Request | Records | At the list price |
|---|---|---|
| One product | 1 | $0.00045 |
| 10 products | 10 | $0.0045 |
| A full page | 50 | $0.022 |

These are per-record list prices. Some calls also carry a minimum, such as a page of search results, so a small request can cost more than the table shows. The quote ("estimateOnly": true) is free, gives the most your exact request can cost, and the charge then settles to what came back. Records that do not come back are refunded.

## Try it without writing code

- [Open the Amazon Search API in the playground](https://apiforagents.dev/dashboard/run?platform=amazon&op=search): The playground runs any endpoint by hand: pick a platform and what you want from it, fill a short form named in plain words (or press Use sample input), see the free quote on the Run button, run it, then read the answer as a table or JSON and download it as CSV or JSON. The same call is written out as cURL, Python and Node while you type.

## Why this one, and not a scraper you run yourself

- No login, no Amazon account, no cookies, no proxies, no browser to babysit.
- When the site changes its pages, your request stays the same: keeping the reads working is our job, not yours.
- A fetch that fails costs nothing: it is named in the answer with a reason, and the quote says the most a call can cost before it runs.

## Use it from your tools

- [Amazon in n8n](https://apiforagents.dev/integrations/n8n/amazon)
- [Amazon in Make](https://apiforagents.dev/integrations/make/amazon)
- [Amazon in Zapier](https://apiforagents.dev/integrations/zapier/amazon)
- [Amazon in Python](https://apiforagents.dev/integrations/python/amazon)
- [Amazon in LangChain](https://apiforagents.dev/integrations/langchain/amazon)
- [Amazon in Claude Code](https://apiforagents.dev/integrations/claude-code/amazon)

## Questions

### What does the Amazon Search API return?

One full product card per hit with its search rank: ASIN, title, brand, price, list price, discount, deal and Prime flags, availability, rating and count, bought in the past month, best-sellers rank, seller, features, category path, variants and images.

### What do I pass in?

A keyword query of up to 300 characters, the marketplace (com, in, co.uk, de and nine more) and a limit of up to fifty results.

### How much does an Amazon search cost?

$0.00045 per product at the list price. A small call can carry a minimum, so quote first with "estimateOnly": true: the quote is free and is the most the call can cost. You pay for what comes back, and a product your account already fetched today is served again free.

## Why API for Agents

- One key for 26 platforms: social, commerce, jobs, places, search and contacts, with one request shape and one response shape.
- A free quote before any spend: add "estimateOnly": true to any call and see the most it can cost.
- Pay per record in US dollars. No subscription, nothing expires, top-ups from $5.
- $0.10 free to try, no card. An AI agent can sign itself up in one request; a person claims it later.
- Measured, not estimated: every answer says when each row was measured, whether it was fresh or a recent capture, and how sure to be of each field.
- Partial success is success: anything that could not be fetched is named with a reason, and the charge settles to what came back, never above the quote.
- Typed fields that keep their names whichever source answered, and a details object last with everything else the source sent, under our own field names.
- Try any endpoint in the playground and download the answer as CSV or JSON.

## Start

The playground runs any endpoint by hand: pick a platform and what you want from it, fill a short form named in plain words (or press Use sample input), see the free quote on the Run button, run it, then read the answer as a table or JSON and download it as CSV or JSON. The same call is written out as cURL, Python and Node while you type. Open it at https://apiforagents.dev/dashboard/run?platform=amazon&op=search (sign in first).

Agents register at https://apiforagents.dev/auth.md (one POST, $0.10 free). People: https://apiforagents.dev/docs#start. Prices: https://apiforagents.dev/pricing.md
