Amazon product API
Use when you need current data for an Amazon product: price and currency, list price and discount, availability, rating, review count, Best Sellers rank, brand, features, specifications and image URLs. 15 marketplaces. When Amazon shows no buy box (e.g. "Currently unavailable"), price, currency and listPrice are null and priceNote explains why; the rest of the product is returned and the call counts as successful. $0.01 per successful call; unknown ASINs and errors are not charged.
Parameters
GET https://scrapemole-api.vercel.app/v1/amazon/product
| Name | Required | Description |
|---|---|---|
asin | yes | ASIN (10 characters) or full product URL. |
marketplace | no | Amazon marketplace (ignored when a full URL is given). One of: amazon.com amazon.co.uk amazon.de amazon.fr amazon.it amazon.es amazon.ca amazon.com.au amazon.co.jp amazon.in amazon.nl amazon.se amazon.pl amazon.com.mx amazon.com.brDefault: amazon.com |
zip | no | Delivery ZIP/postcode for localized price and stock. Default: a marketplace default. |
Call it
// npm i @x402/fetch @x402/evm viem import { wrapFetchWithPaymentFromConfig, decodePaymentResponseHeader } from '@x402/fetch'; import { ExactEvmScheme } from '@x402/evm'; import { privateKeyToAccount } from 'viem/accounts'; // Your agent's own wallet, holding a little USDC on Base. No ScrapeMole account or API key. const account = privateKeyToAccount(process.env.AGENT_PRIVATE_KEY); const pay = wrapFetchWithPaymentFromConfig(fetch, { schemes: [{ network: 'eip155:8453', client: new ExactEvmScheme(account) }], }); // On 402 the wrapper signs the USDC authorization and retries once. const res = await pay('https://scrapemole-api.vercel.app/v1/amazon/product?asin=B0CJZW65R3'); console.log(res.status, await res.json()); // Settled only on 200; the receipt (tx hash) is in the PAYMENT-RESPONSE header. if (res.ok) console.log(decodePaymentResponseHeader(res.headers.get('payment-response')));
# 1. Unpaid: returns 402 with price $0.01 and the payTo address curl -i "https://scrapemole-api.vercel.app/v1/amazon/product?asin=B0CJZW65R3" # 2. Paid: repeat the request with a PAYMENT-SIGNATURE header (a signed USDC # authorization for the quoted amount). An x402 client does this for you: # see the JavaScript tab.
Also available as the MCP tool amazon_product on https://scrapemole-api-mainnet.scrapemole.workers.dev/mcp (x402 MCP transport, same price).
Example response
A real response from this endpoint (arrays and long strings trimmed here).
{
"sourceType": "product",
"asin": "B0CJZW65R3",
"url": "https://www.amazon.com/dp/B0CJZW65R3",
"marketplace": "amazon.com",
"title": "STANLEY Quencher H2.0 Flow State Tumbler, 40 oz, Ash",
"brand": "STANLEY",
"price": 29.97,
"currency": "USD",
"priceText": "$29.97",
"listPrice": 45,
"savingsPercent": 33,
"inStock": true,
"availability": "In Stock",
"rating": 4.7,
"reviewsCount": 206111,
"boughtPastMonth": "8K+ bought in past month",
"bestSellersRank": [
{
"rank": 1,
"category": "Home & Kitchen"
},
{
"rank": 1,
"category": "Insulated Tumblers"
}
],
"categories": [
"Home & Kitchen",
"Kitchen & Dining",
"… 1 more"
],
"features": [
"YOUR DREAM TUMBLER: Whichever way your day flows, the H2.0 FlowState tumbler keeps you refreshed with fewer refills. Double wall vacuum i…",
"ADVANCED LID CONSTRUCTION: Whether you prefer small sips or maximum thirst quenching, Stanley has developed an advanced FlowState lid, fe…",
"… 1 more"
],
"description": "This Quencher H2.0 is generously sized (but not oversized) with an easy-carry, comfort-grip handle and a narrow base that will fit most c…",
"specifications": {
"Brand": "STANLEY",
"Material": "Stainless Steel",
"Color": "Ash",
"Capacity": "40 fluid ounces",
"Special Feature": "Rotating",
"Brand Name": "STANLEY",
"Recommended Uses For Product": "Travel",
"Included Components": "Lid, Straw",
"Specific Uses For Product": "Hot Drinks",
"Age Range Description": "Adult",
"Manufacturer": "Stanley",
"UPC": "041604394003 041604394232",
"Global Trade Identification Number": "00041604394232",
"Item Type Name": "Tumbler",
"Model Number": "100000144278",
"Manufacturer Part Number": "10-10824-280",
"Manufacturer Warranty Description": "Lifetime Warranty",
"ASIN": "B0CJZW65R3",
"Other Special Features of the Product": "Rotating",
"Product Style": "40 oz",
"Theme": "Ash",
"Shape": "Round",
"Pattern": "Solid",
"Occasion": "New Year",
"Material Type": "Stainless Steel",
"Product Care Instructions": "Machine Wash",
"Material Features": "Insulated",
"Reusability": "Reusable",
"Material Type Free": "BPA Free",
"Finish Types": "powder coat",
"Unit Count": "1 Count",
"Item Weight": "1.2 pounds",
"Item Dimensions W x H": "5.43\"W x 11.02\"H",
"Number of Items": "1",
"Size": "40 Ounces"
},
"mainImage": "https://m.media-amazon.com/images/I/41fVlf8ZJyL._AC_SL1500_.jpg",
"images": [
"https://m.media-amazon.com/images/I/41fVlf8ZJyL._AC_SL1500_.jpg",
"https://m.media-amazon.com/images/I/61o3T-YReBL._AC_SL1500_.jpg",
"… 1 more"
],
"seller": "Amazon.com",
"shipsFrom": null,
"parentAsin": "B0DG5KQ24H",
"variantCount": 269,
"variants": [
{
"asin": "B0G78CCFP1",
"values": [
"30 Ounces",
"Spring Green"
]
},
{
"asin": "B0HF32Z195",
"values": [
"40 Ounces",
"Black Magic"
]
},
"… 1 more"
],
"deliveryLocation": "New York 10001"
}Live test results
The one miss was an ASIN that no longer exists on Amazon: it returned 404 NOT_FOUND and was not charged.
Paid end-to-end checks (Base Sepolia testnet, 11 Oct 2026 11:13 UTC)
| Call | Status | Charged | Pass |
|---|---|---|---|
unpaid /v1/amazon/product | 402 | price quoted | ✓ |
paid /v1/amazon/product?asin=B0CJZW65R3 | 200 | $0.01 | ✓ |
paid /v1/amazon/product?asin=zz (invalid input) | 400 | $0 | ✓ |
paid /v1/amazon/product?asin=B0ZZZZZZZZ (unknown ASIN) | 404 | $0 | ✓ |
Errors
Failures return JSON like {"error": {"code": "NOT_FOUND", "message": "…", "charged": false}}. None of them are charged.
| Status / errorCode | Meaning |
|---|---|
400 INVALID_INPUT | Missing or malformed parameter. Fix the input. |
404 NOT_FOUND | The video, channel, product or term doesn't exist or isn't public. |
404 NO_DATA | It exists, but has nothing to return (for example no captions). |
503 BLOCKED | The source rate-limited us even after retries. Try again later. |
502 / 504 | Upstream error or timeout. Try again. |
402 | No or invalid payment. Pay the quoted amount and retry. |