Amazon price history API, pay per call with no subscription
Most Amazon data APIs are sold as monthly plans: you pick a tier, get an API key, and pay whether you make ten requests or ten thousand. That works for large teams, but it's a poor fit for side projects, occasional research, and especially AI agents, which make unpredictable bursts of calls and can't fill in sign-up forms.
ASIN402 takes the opposite approach: no account, no key, no plan. Every request is priced individually and paid at the moment of the call, using the open x402 payment protocol.
What data is available
| Data | Endpoint |
|---|---|
| Price history: buy box, Amazon, new, used, FBA, list price, warehouse and more | /api/data/product |
| Sales rank history and estimated monthly sales | /api/data/product |
| Statistics: current, 30/90/180/365-day averages, min/max | /api/data/product (stats) |
| Live marketplace offers (sellers, FBA/FBM, Prime, stock) | /api/data/product (offers, stock) |
| Buy box winner history | /api/data/product (buybox=1) |
| Rating and review-count history | /api/data/product (rating=1) |
| Keyword search | /api/data/search |
| Catalog filtering with 300+ criteria | /api/data/finder |
| Recent price drops | /api/data/deals |
| Best sellers per category | /api/data/bestsellers |
| Seller details and storefronts | /api/data/seller |
Eleven marketplaces are supported: US, UK, Germany, France, Japan, Canada, Italy, Spain, India, Mexico and Brazil (domain=us, uk, de, fr, jp, ca, it, es, in, mx, br).
Readable by default
Raw marketplace data usually comes in compact formats: prices in cents, timestamps as minutes since an epoch, histories as flat arrays. ASIN402 converts all of it by default:
{
"asin": "0735211299",
"currency": "USD",
"stats": { "by_series": { "BUY_BOX_SHIPPING": { "current": 13.79, "avg90": 16.43, "min": { "value": 11.2, "date": "2026-07-04T10:12:00.000Z" } } } },
"history": { "BUY_BOX_SHIPPING": [["2026-04-29T18:40:00.000Z", 17.5], ["2026-05-03T09:10:00.000Z", 16.99]] }
}
Choose which histories to include with series (for example series=BUY_BOX_SHIPPING,SALES_RANK, or series=all). Add format=raw for the compact native format.
How pricing works
Each call's price follows the amount of data it uses, starting at $0.005. Before paying, the server returns HTTP 402 with the exact amount for your specific query, so there are no surprises. A few examples:
| Request | Typical price |
|---|---|
One product, current data only (history=0) |
$0.005 |
| 50 products in one call | a few cents |
| Keyword search page (10 products) | from $0.005 |
| Best sellers list | from $0.005 |
Ready-made deal verdict (/api/deal-check) |
$0.02 |
Invalid requests, products with no data and temporary errors are never charged: the payment only settles when you receive a successful response.
A request from the command line
You can see the price quote without paying:
curl -i "https://asin402.com/api/data/product?asin=0735211299&history=0"
The 402 response includes a PAYMENT-REQUIRED header (base64 JSON with the amount, network and payment address) and a readable body. To actually pay, use an x402 client:
import { wrapFetchWithPayment, x402Client } from "@x402/fetch";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";
const pay = wrapFetchWithPayment(fetch,
new x402Client().register("eip155:*", new ExactEvmScheme(privateKeyToAccount(process.env.AGENT_KEY))));
const data = await (await pay("https://asin402.com/api/data/product?asin=0735211299&buybox=1&rating=1&series=BUY_BOX_SHIPPING,SALES_RANK")).json();
When pay-per-call is the better choice
- AI agents that need data on demand, without credentials to manage.
- Occasional research: checking a handful of products before a sourcing decision.
- Prototypes and side projects where a monthly plan isn't justified yet.
- Spiky workloads: a big analysis once a month, nothing in between.
If you make millions of calls every month on a fixed schedule, a dedicated data plan from a provider may cost less. For everything else, paying per call means you never pay for unused capacity.
Next steps
- Give your AI agent live Amazon prices
- Machine-readable reference: /openapi.json, /llms.txt