Keepa
Keepa tracks the price history of billions of amazon products which makes it a great tool for a wide range of use cases:
- Track best seller lists
- Get the prices of competitive products or sellers
- View products by seller (eg your competitor)
- View inventory levels
- View price increase alerts
- Graph price changes over time
- Look at couponing strategies other products use
Just want to sync Keepa Data?
If you don’t want to call the API directly and just want the data sync’d to your data platform of choice SyncWith does this for 100,000s of users and businesses:
.jpg)
- Syncing Keepa
to
Google Sheets
- install our Google Sheets addon used by 100,000s of other data users
- Sync Keepa API
to
Airtable
- keepa to airtable
- Connect Keepa Data
to
Excel
- install our Excel addon
- Export Keepa Data
to
Data Studio
- keepa to data studio
Accessing the Keepa API
Keepa API Tips
- There are various endpoints available, they all use the same base url
https://api.keepa.com/
and use a HTTPS GET command
- All requests take your API key using the query parameter
key
, egkey
=<yourAccessKey>
- All responses are in JSON which can be flattened using SyncWith’s JSON to table transformer
domain
is a common parameter to most endpoints, it allows you to specify the goeographical location of the amazon store you wish to see, for example1
- .com2
- co.uk3
- de4
- fr5
- co.jp6
- ca8
- it9
- es10
- in11
- com.mx
- Keepa does not uses standard timestamps instead they use
keepa time minutes
which is a form of compressedunix epoch time
- If you’re moving data into a spreadsheet you probably want the datetime that is recognized by excel or google sheets
/product endpoint
We’ll do a deep dive on the /product endpoint. Which allows us to get a product by Amazon ASIN for a given Amazon Domain. It’s aways handy to look at the official description of the Keepa product object via the official Keepa API specs as it goes into a lot more detail then the endpoint docs.
As an example let’s say we want to look at Bounty Quick-Size Paper Towels

We need to get the ASIN which you can find under the
Product details
section:
With the ASIN and the domain (in this case Amazon.com) we can get Keep to send us back the product object.
- Send a GET request to
https://api.keepa.com/product
- Include the following query parameters:
- key =
your Keepa API key
- asin =
B07MHJFRBJ
- domain =
1
- Pulling all that together you get the url
https://api.keepa.com/product?key=
MYKEY
&asin=B07MHJFRBJ&domain=1
(replace MYKEY with your API key)
Optional Query Parameters
stats
Will compute a bunch of standard statistics against the historical data in products.csv - it’s not creating any new information but it is useful in that it will add data to the json response with the statistics already pre calculated. You pass thestats
query parameter a time range to calculate the stats over eg:stats=90
- last 90 daysstats=&stats=2021-11-15,2021-12-21
- eg 2021 christmas rush
history
Will determine whether any historic data is included. If you sethistory=0
thenproduct.csv
will not be returned
days
lets you limit the historic data to the last x days, egdays=180
would limit the historical data to the last 180 days
offers
specifies how many offers you want returned. Valid values are 20-100. Will return all valid marketplace offers. Returns a Marketplace offer object. Egoffers=40
only-live-offers
will ensure that any offers returned are only currently valid ones vs historical ones. Egonly-live-offers=1
Keepa Product Object JSON Response
Keepa will send back the product object as JSON, and it will be giant, if you put the request into chrome and looked at the response it would look like a giant wall of numbers and text:

So we need to do something useful to transform the JSON.
The JSON has all the historical data in the CSV object, for example price data:
"csv": [ [ 5862668, // <- this is a date in Keep Time Minutes 2065, // <- this is the price for that date 5867406, 1990, 5867588, 2065, 5867934, 1990, 5868648, -1, 5868672, 1990, 5876576, 2065, 5876988, 1990, 5882292, 2065, 5882732, 1990, 5886004, 2065, 5886722, 1990 ]
The JSON also includes product information like:
"imagesCSV": "51TN4JR0z2L.jpg,51+lIkeMhmL.jpg,51U0b+OKMhS.jpg,51Yg-FoDpbL.jpg,41URNLKx5fL.jpg,51uNsd+E-vL.jpg,51zOXI6wq1L.jpg,41N6-ho-kyL.jpg,51fHNV9MdyL.jpg", "manufacturer": "Procter & Gamble (P&G-2)", "title": "Bounty Quick-Size Paper Towels, White, 8 Family Rolls = 20 Regular Rolls", "lastUpdate": 5995600, "lastPriceChange": 5995584, "rootCategory": 3760901, "productType": 0, "parentAsin": "B0B1WW4W39", "variationCSV": "B0B1WWH9NB,B0B1WY2J57,B07MHJFRBJ", "asin": "B07MHJFRBJ", "domainId": 1, "type": "PAPER_TOWEL", "hasReviews": true, "trackingSince": 4210216, "brand": "Bounty", "productGroup": "Drugstore", "partNumber": "SG_B07MHJFRBJ_US", "model": "SG_B07MHJFRBJ_US", "color": "white", "size": "8 Count (Pack of 1)", "edition": null, "format": null, "packageHeight": 294, "packageLength": 610, "packageWidth": 318, "packageWeight": 3062, "packageQuantity": 10, "isAdultProduct": false, "isEligibleForTradeIn": false, "isEligibleForSuperSaverShipping": true, "offers": null, "buyBoxSellerIdHistory": null, "isRedirectASIN": false, "isSNS": true, "author": null, "binding": "Health and Beauty", "numberOfItems": 8, "numberOfPages": -1, "publicationDate": 20181201, "releaseDate": 20190210, "languages": null, "lastRatingUpdate": 5995608, "ebayListingIds": [ 12044049899, 0 ], "lastEbayUpdate": 5870904, "eanList": [ "0037000750260", "0037000325840" ], "upcList": [ "037000750260", "037000325840" ], "liveOffersOrder": null, "frequentlyBoughtTogether": [ "B0798DVT69" ], "features": [ "Pack contains 8 Family Rolls of Bounty Quick Size paper towels, equal to 20 Regular Rolls", "This pack contains 40 more sheets per pack which means 5 extra days' worth of paper vs. Bounty Select-A-Size 8 Huge Roll Estimated based on manufacturer data. Actual usage may vary by household", "Bounty, the Quicker Picker Upper.Do not flush", "2X More Absorbent vs. leading ordinary brand", "Bounty's shortest sheets are now even more absorbent for a versatile clean (versus previous product)" ], "description": "Don't let spills and messes get in your way. Lock in confidence with Bounty, the Quicker Picker Upper. This pack contains Bounty Quick Size paper towels. Bounty's shortest sheets are now even more absorbent* for a versatile clean (*versus previous product). Shorter sheets also allow you to choose how much you use! vs. Select-A-Size.", "promotions": [ { "type": "SNS", "eligibilityRequirementDescription": null, "benefitDescription": null, "promotionId": null, "amount": 2194, "discountPercent": 5 } ], "newPriceIsMAP": false, "coupon": [ 0, -5 ], "availabilityAmazon": 0, "listedSince": 4163040, "fbaFees": { "storageFee": -1, "storageFeeTax": -1, "pickAndPackFee": 1936, "pickAndPackFeeTax": -1 }
Getting the JSON Response into a useful format for Google Sheets
Syncwith allows you to pull data via the Keepa API directly into google sheets and keep the data synced it also allows you to visually transform with out needing to author JMES paths or write any code.
Don’t Have SyncWith?
- SyncWith is a Google Sheets Add On
- SyncWith allows you to move data from any API into Google Sheets
- Learn more about why Marketers love SyncWith
- Check out our Google Workspace Listing and see why we’re the highest rated API add on with over 100,000 installs. Install today and get your data into Sheets in minutes.
Having Trouble Getting Your Keep Data into Google Sheets
Paying customers can contact us at support and we’ll help you custom craft your connections and get your data syncing to Google Sheets.
Other Popular Keepa Endpoints
/seller endpoint
https://api.keepa.com/seller?key=<APIKey>&domain=<domainId>&seller=<sellerId>
-
<APIKey>
- Your private Keepa API key.
<domainId>
Integer value for the Amazon domain you want
<sellerId>
The seller id of the merchant. Can be comma seperated for multiple merchants. you want to request.- For batch requests a comma separated list of sellerIds (up to 100).
- You can get the seller ID from the Sellers URL, eg:

Our URL for P&K Trading Co. seller page is:
https://www.amazon.com/sp?ie=UTF8&seller=A1P3M3EMHO2JV4&isAmazonFulfilled=1