Retailer Guide4 min readUpdated Mar 22, 2026

Amazon Price API: Complete Guide

TL;DR

PriceFetch supports 16 Amazon domains. Send any Amazon product URL, get back price, currency, and stock status as JSON. One credit per request, 500 free to start.

Supported Amazon Domains

PriceFetch supports all major Amazon country domains. You don't need to specify which domain you're using — the API detects it from the URL and returns the correct local currency automatically.

The full list of supported domains: amazon.com (US), amazon.co.uk (UK), amazon.ca (Canada), amazon.com.au (Australia), amazon.de (Germany), amazon.fr (France), amazon.it (Italy), amazon.es (Spain), amazon.co.jp (Japan), amazon.in (India), amazon.com.br (Brazil), amazon.com.mx (Mexico), amazon.nl (Netherlands), amazon.sg (Singapore), amazon.ae (UAE), amazon.sa (Saudi Arabia).

All domains use the same API endpoint and return the same response format. The only thing that changes is the currency code in the response.

bash
# All of these work with the same endpoint
curl -H "X-API-Key: YOUR_KEY" \
  "https://api.pricefetch.dev/v1/price?url=https://www.amazon.com/dp/B0CHX3QBCH"

curl -H "X-API-Key: YOUR_KEY" \
  "https://api.pricefetch.dev/v1/price?url=https://www.amazon.co.uk/dp/B0CHX3QBCH"

curl -H "X-API-Key: YOUR_KEY" \
  "https://api.pricefetch.dev/v1/price?url=https://www.amazon.de/dp/B0CHX3QBCH"

Try it yourself — 500 free API credits, no credit card required.

Start Free

Accepted URL Formats

Amazon product URLs come in many formats depending on how the user found the product. PriceFetch handles all common formats — canonical URLs, search result links, shortened links, and URLs with tracking parameters.

The API extracts the ASIN (Amazon's product identifier) from whatever URL format you send. As long as the URL contains a valid ASIN and points to an Amazon domain, it will work.

Supported formats include: - Canonical: `https://www.amazon.com/dp/B0CHX3QBCH` - With title slug: `https://www.amazon.com/Sony-WH-1000XM5/dp/B0CHX3QBCH` - With query params: `https://www.amazon.com/dp/B0CHX3QBCH?th=1&psc=1` - Mobile: `https://www.amazon.com/gp/product/B0CHX3QBCH` - With referral tags: `https://www.amazon.com/dp/B0CHX3QBCH?tag=someref-20`

Formats that do NOT work: search result pages, category pages, seller profiles, and Amazon Warehouse deals listings. The URL must point to a specific product.

Currency Detection and Handling

The API returns prices in the local currency of the Amazon domain. There's no currency conversion — you get exactly what's shown on the Amazon page. This is important for accuracy: a product on amazon.de is priced in EUR, and that's what you'll get back.

Here's the domain-to-currency mapping:

| Domain | Currency | |--------|----------| | amazon.com | USD | | amazon.co.uk | GBP | | amazon.ca | CAD | | amazon.com.au | AUD | | amazon.de, .fr, .it, .es, .nl | EUR | | amazon.co.jp | JPY | | amazon.in | INR | | amazon.com.br | BRL | | amazon.com.mx | MXN | | amazon.sg | SGD | | amazon.ae | AED | | amazon.sa | SAR |

If you need to compare prices across domains, use a currency conversion API to normalize. PriceFetch gives you the raw local price.

json
# Response from amazon.co.uk
{
  "success": true,
  "data": {
    "url": "https://www.amazon.co.uk/dp/B0CHX3QBCH",
    "price": 249.99,
    "currency": "GBP",
    "in_stock": true,
    "retailer": "amazon",
    "timestamp": "2026-03-22T10:30:00Z"
  },
  "credits_remaining": 487,
  "request_id": "req_abc123"
}

Deals, Sales, and Price Types

Amazon shows different price types depending on the product and current promotions: regular price, deal price, Lightning Deal price, Subscribe & Save price, and coupon discounts. PriceFetch returns the primary displayed price — the one a customer would actually pay if they clicked "Buy Now" without any subscription.

For products with active deals (Lightning Deals, Deal of the Day), the API returns the deal price, not the original price. This is the behavior most developers want — the actual current price a buyer would pay.

Subscribe & Save prices are not returned as the primary price since they require a subscription commitment. The returned price is the one-time purchase price.

Coupon discounts that require clipping (the green "clip coupon" checkbox) are not reflected in the returned price. These require user action on the page and aren't part of the base price.

Stock Status Detection

The `in_stock` field indicates whether the product is available for purchase. This covers several Amazon-specific scenarios:

- `true`: Product is in stock and can be added to cart - `false`: Product shows "Currently unavailable", "Out of stock", or only available from third-party sellers at inflated prices

Note that Amazon sometimes shows a price for out-of-stock items (the last known price). When `in_stock` is `false`, the price field still contains the displayed price, but the product can't actually be purchased at that price. Always check `in_stock` before acting on the price.

For products with multiple sellers, PriceFetch returns the Buy Box price (the main "Add to Cart" offer). If there's no Buy Box winner, the product may show as out of stock even though third-party offers exist.

python
import httpx

resp = httpx.get(
    "https://api.pricefetch.dev/v1/price",
    params={"url": "https://www.amazon.com/dp/B0CHX3QBCH"},
    headers={"X-API-Key": API_KEY},
)
data = resp.json()["data"]

if data["in_stock"]:
    print(f"Available: {data['currency']} {data['price']}")
else:
    print(f"Out of stock (last price: {data['currency']} {data['price']})")

Common Issues and Edge Cases

A few Amazon-specific gotchas to be aware of:

**CAPTCHA pages:** Amazon occasionally serves CAPTCHA challenges to automated browsers. PriceFetch handles this internally with browser fingerprint rotation, but if you see occasional SCRAPE_FAILED errors, this is usually the cause. Retry after a few seconds.

**Variant products:** Products with size/color variants (like clothing or phone cases) show different prices per variant. PriceFetch returns the price for the default selected variant. If the URL contains a specific variant (like `?th=1`), that variant's price is returned.

**Price ranges:** Some products show a price range (e.g., "$29.99 - $49.99") instead of a single price. PriceFetch returns the lowest price in the range.

**Regional availability:** A product that exists on amazon.com might not exist on amazon.de. You'll get a PRICE_NOT_FOUND error if the product page doesn't have a price on that specific domain.

**Rate limiting:** PriceFetch has its own rate limits (check your dashboard), and making too many requests to the same Amazon domain in quick succession can trigger Amazon's bot detection. Space out requests to the same domain by at least 2 seconds.

Frequently asked questions

Related Retailers

Start fetching prices — 500 free credits

Sign up in 30 seconds. No credit card required. One credit per successful API call.