> ## Documentation Index
> Fetch the complete documentation index at: https://docs.spidra.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Amazon

> Scrape Amazon product pages, search results, best-seller lists and seller offers as structured data, on 23 marketplaces, for 1 credit per page.

Amazon pages are read with a purpose-built **site rule** instead of a browser. You don't turn anything on: send an Amazon URL as usual and the rule is used automatically. A page costs 1 credit, and pages that can't be delivered are free.

The rule steps aside when a request needs something only a browser can do: a screenshot, browser `actions`, `forEach` or an AI `instruction`. Those URLs use the normal browser flow.

## Page types

| Page type | Example | What you get |
| - | - | - |
| Product | `amazon.com/dp/B0CG1LGWR6` | The product as structured data, plus the full page as markdown |
| Search results | `amazon.com/s?k=usb+c+cable` | Every result on the page, including sponsored ones |
| Best-seller lists | `amazon.com/gp/bestsellers/electronics` | Every item with its rank. New releases, movers and shakers, and most wished for work too |
| Other sellers | `amazon.com/gp/offer-listing/B0CG1LGWR6` | Every seller's offer for the product: price, condition, seller, ships from, delivery |
| Full review pages | `amazon.com/product-reviews/B0CG1LGWR6` | Only with your own signed-in cookies. See [Reviews](#reviews) |
| Any other public Amazon page | Store pages, category pages | The full page as markdown |

Product links work in any shape you copy them in: `/dp/`, `/gp/product/`, mobile `/gp/aw/d/` links, and long links with a product name and `ref=` tracking. Spidra reduces them to the product, keeping only `th` and `psc`, which pick a variation.

## Marketplaces

All 23 Amazon storefronts work: `amazon.com`, `.ca`, `.com.mx`, `.com.br`, `.co.uk`, `.ie`, `.de`, `.fr`, `.it`, `.es`, `.nl`, `.com.be`, `.se`, `.pl`, `.com.tr`, `.ae`, `.sa`, `.eg`, `.in`, `.co.jp`, `.sg`, `.com.au` and `.co.za`.

Each marketplace is read from its own country, so prices come back in that marketplace's currency, with the availability a local shopper sees. You don't need to set `proxyCountry`, and it isn't used for Amazon pages.

## Fields you get

Every field is optional on Amazon's side. Products in different categories show different blocks, so a missing value comes back as `null` or an empty list, never a guess.

| Page | Fields |
| - | - |
| Product | `asin`, `title`, `brand`, `price`, `currency`, `listPrice`, `savings`, `coupon`, `availability`, `rating`, `ratingsCount`, `ratingHistogram`, `customersSay`, `boughtPastMonth`, `buyBox` (`seller`, `sellerId`, `shipsFrom`, `fulfilledByAmazon`, `deliveryEstimate`), `images`, `bullets`, `description`, `specifications`, `bestSellersRank`, `categories`, `variations`, `topReviews`, `deliverTo` |
| Search result (each) | `position`, `asin`, `title`, `url`, `price`, `currency`, `listPrice`, `rating`, `ratingsCount`, `sponsored`, `prime`, `boughtPastMonth`, `badge`, `image` |
| Best-seller item | `rank`, `asin`, `title`, `price`, `currency`, `rating`, `ratingsCount`, `image` |
| Offer | `pinned` (the buy box offer), `price`, `currency`, `condition`, `seller`, `sellerId`, `shipsFrom`, `delivery`, `sellerRating` |

A few notes on coverage:

* `topReviews` holds the 8 to 13 reviews Amazon shows on the product page. Amazon shows them to some visitors and loads them later for others, so this list can be empty.
* `bestSellersRank`, `boughtPastMonth` and `coupon` appear only when the product page shows them.
* `listPrice` is the struck-through price, so it's `null` when nothing is discounted.
* Search results also say whether the search had more pages (`nextPage`).

## Delivery location

Amazon decides availability, delivery dates and sometimes the price from the delivery address. When a product says it can't be shipped to the visitor's location, Spidra sets the marketplace's default postcode (for example 10001 on amazon.com, SW1A 1AA on amazon.co.uk) and reads the page again.

To choose the postcode yourself, add `deliveryZip` to the URL:

```json theme={null}
{
  "urls": [{ "url": "https://www.amazon.com/dp/B0CG1LGWR6", "deliveryZip": "90210" }],
  "output": "json"
}
```

The response then says `"deliverTo": "Beverly H... 90210"` (Amazon shortens long place names the same way in its own header), and the delivery estimate is for that address. `deliveryZip` works on `/scrape`. It isn't available on batch scrapes yet.

## What comes back

* **`output: "json"` with no `prompt` or `schema`:** the structured data as is. No AI is used, so the cost is the base credit only.
* **`output: "markdown"`:** the whole page as markdown, followed by the structured data.
* **With a `prompt` or `schema`:** the AI reads a compact copy of the structured data instead of the whole page. A product with a six-field schema cost 3 credits in testing.

## Reviews

Since November 2024, Amazon shows its full review pages, with pagination, star filters and newest-first sorting, only to signed-in visitors. Without signing in, the product page has the rating, the star breakdown, the "Customers say" summary and the top reviews, and Spidra returns all of them.

To read full review pages, pass the cookies of your own signed-in Amazon session in `cookies`, for the same marketplace:

```json theme={null}
{
  "urls": [{ "url": "https://www.amazon.com/product-reviews/B0CG1LGWR6?pageNumber=2" }],
  "cookies": "session-id=...; ubid-main=...; at-main=...; sess-at-main=...",
  "output": "json"
}
```

Spidra fetches the page as you. Without cookies, a review page fails straight away with a message and costs nothing. If the cookies aren't a signed-in session or have expired, the request fails with a message and costs nothing.

## Limits you should know about

* **Sign-in, account, cart and checkout pages are refused.** They fail straight away and are not charged.
* **Product questions and answers are not public.** In 2026 Amazon moved them into its signed-in shopping assistant.
* **Search pages are one page per request.** Amazon shows a limited number of result pages for each search, so use narrower searches or filters for more products.
* **Unusual product layouts.** A few products, such as subscription plans, use their own page layout. They come back as the full page in markdown without the structured fields.
* **A product that doesn't exist** in a marketplace fails with a message and is not charged.

<Note>
  Check Amazon's terms of service before you scrape it. You are responsible for how you use the data you collect. Spidra is not affiliated with Amazon.
</Note>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.