Keepa API Documentation
The Keepa API delivers Keepa's data on Amazon marketplaces straight to your application: complete price histories, detailed product data, marketplace offers, deals, best seller lists and seller information — plus tracking, which notifies you with updated price data for the products you select. All requests are issued over HTTPS and every response is JSON. Find out more about the API on keepa.com.
Base URL: https://api.keepa.com/
Quick start#
1. Get an API key#
Subscribe to an API plan at keepa.com/api. Every request requires your API access key as a parameter; you can view and change your key on the API page of your Keepa account.
2. Make your first request#
All requests are issued over HTTPS and must accept gzip encoding; zstd is supported as well and recommended. GET works for every endpoint; endpoints that take a large JSON query (Product Finder, Seller Finder, Browsing Deals, Add Tracking) also accept POST. If possible, use a Keep-Alive connection; multiple requests can be made in parallel to increase throughput. The following request fetches product data and price history for one ASIN on amazon.com (domain=1):
KeepaAPI api = new KeepaAPI("YOUR_API_KEY");
Request r = Request.getProductRequest(AmazonLocale.US, null, null, "B0F3GWXLTS");
api.sendRequest(r)
.done(result -> {
if (result.status == ResponseStatus.OK) {
System.out.println(result.products[0].title);
}
})
.fail(failure -> System.out.println(failure));<?php
use Keepa\KeepaAPI;
use Keepa\API\Request;
use Keepa\API\ResponseStatus;
use Keepa\objects\AmazonLocale;
$api = new KeepaAPI("YOUR_API_KEY");
$response = $api->sendRequestWithRetry(Request::getProductRequest(AmazonLocale::US, null, null, null, 1, true, ['B0F3GWXLTS']));
if ($response->status == ResponseStatus::OK) {
echo $response->products[0]->title;
}import requests
params = {"key": "YOUR_API_KEY", "domain": 1, "asin": "B0F3GWXLTS"}
r = requests.get("https://api.keepa.com/product", params=params)
data = r.json()
print(data["products"][0]["title"])
print("Tokens left:", data["tokensLeft"])const res = await fetch("https://api.keepa.com/product?key=YOUR_API_KEY&domain=1&asin=B0F3GWXLTS");
const data = await res.json();
console.log(data.products[0].title);
console.log("Tokens left:", data.tokensLeft);curl -s --compressed "https://api.keepa.com/product?key=YOUR_API_KEY&domain=1&asin=B0F3GWXLTS"Every response is JSON and always includes the current state of your token bucket alongside the payload:
{
"refillRate": 5,
"refillIn": 41260,
"tokensLeft": 295,
"tokensConsumed": 1,
"tokenFlowReduction": 0.0,
"processingTimeInMs": 32,
"products": [
{
"asin": "B0F3GWXLTS",
"domainId": 1,
"title": "Example Product Title"
}
]
}
Response shortened for readability; illustrative values.
Details on the response format, the token bucket fields and the possible HTTP status codes are covered in Making Requests.
3. Understand tokens#
API access is metered with a token bucket: your plan generates a fixed number of tokens per minute (24/7, whether you make requests or not), and each request consumes tokens — for example, one token per requested product. This allows request bursts and a constant request rate throughout your plan's duration. Every response tells you how many tokens you have left (tokensLeft) and when the bucket refills (refillIn), so you can plan your requests.
Important: Unused tokens expire after 60 minutes.
Read Plans & Tokens for how plans, subscriptions and token costs work in detail.
Endpoints#
The API offers numerous endpoints, each documented on its own page. All paths are relative to the base URL https://api.keepa.com/.
| Endpoint | Path | Token cost | Description |
|---|---|---|---|
| Product Request | /product |
1 token per product (more with optional parameters) | Retrieve products, including price history, by ASIN or product code. |
| Product Search | /search?type=product |
10 tokens per search (up to 20 results) | Search for Amazon products by keyword. |
| Product Finder | /query |
10 + 1 per 100 ASINs | Query the product database with complex filter criteria. |
| Browsing Deals | /deal |
5 tokens per request (up to 150 deals) | Browse recent price drops and deals. |
| Best Sellers | /bestsellers |
50 tokens per request | Retrieve the best sellers list of a category. |
| Category Lookup | /category |
1 token per request (up to 10 categories) | Look up category objects by category ID. |
| Category Search | /search?type=category |
1 token per search | Search for Amazon categories by name. |
| Seller Information | /seller |
1 token per seller (+9 for storefront) | Retrieve information about marketplace sellers. |
| Seller Finder | /sellerquery |
10 + 1 per 100 seller IDs | Query the seller database with complex filter criteria. |
| Most Rated Sellers | /topseller |
50 tokens per request | Retrieve the list of most rated marketplace sellers. |
| Lightning Deals | /lightningdeal |
1 token per ASIN · 500 tokens for the full list | Retrieve Amazon lightning deals. |
| Graph Image API | /graphimage |
1 token per image | Render price history charts as images. |
| Tracking API | /tracking |
varies per tracked product | Create and manage product trackings and receive notifications. |
Each endpoint page documents its token cost in detail, including the options that change it.
Response objects#
All objects returned by API requests are explained on the following pages.
Official clients & libraries#
Keepa provides clients for Java and PHP for fast integration. Even if you do not use Java or PHP, these resources might still be helpful for insights and examples. There is also a community-developed Python client available.
| Library | Maintainer | Where |
|---|---|---|
| Java client | Keepa (official) | github.com/keepacom/api_backend |
| PHP client | Keepa (official) | packagist.org/packages/keepa/php_api |
| Python client | Community | github.com/akaszynski/keepa |
AI assistants (MCP)#
Not writing code at all? Keepa also operates a hosted MCP Server that hands AI assistants like Claude the same data directly — price histories, deals and seller information — authenticated with the same API key, metered by the same tokens, with nothing to install. For an assistant that writes code against the API, these docs come as Markdown too: start with the quick reference or llms.txt.
Note: Plans, pricing and your personal API access key are managed in your Keepa API dashboard.