Comparison

Migrating from the Keepa API

Most Keepa integrations look products up by ASIN or barcode, read the price-history arrays, and track a list of products. Each of those has a direct equivalent in the ShopSavvy Data API, which adds prices from retailers beyond Amazon. Sales rank and Buy Box data do not carry over.

Updated · Keepa API docs checked 2026-10-12

Time: About 1-2 days for a typical integration: an hour to get a key and make the first calls, the rest to replace history decoding and tracking.

Before you start

  • List the Keepa request types you use (product, tracking, deals, sellers) and the product fields you read.
  • Export the ASINs or barcodes you track.
  • Decide whether you want Amazon-only views (retailer=amazon.com) or every retailer.

Steps

  1. 1. Get a key

    Start a 14-day Starter trial at shopsavvy.com/data#pricing. The dashboard creates an API key; send it as a bearer token.

    curl -H "Authorization: Bearer ss_live_..." "https://api.shopsavvy.com/v1/products?ids=B07GV2S1GS"
  2. 2. Replace product requests

    Keepa's product request takes asin or a product code and a domain. ShopSavvy takes any identifier in ids (ASIN, UPC/EAN/ISBN, URL, model number), up to 100 per call, and has no domain parameter: offers are US retailers in USD.

  3. 3. Replace price history

    Keepa returns history as csv arrays of Keepa Time minutes and prices per history type. ShopSavvy returns history per offer as an array of points with ISO 8601 timestamps and USD prices, newest first, for a window of up to 366 days per call.

    GET /v1/products/offers/history?ids=611247373064&start=2026-07-01&end=2026-09-30
  4. 4. Replace tracking

    Schedule products for hourly, daily or weekly re-checks with PUT /v1/products/scheduled, and register a webhook for price_drop and availability_change events. Scheduling costs 1 credit per product; refreshes are not charged.

    PUT /v1/products/scheduled?ids=B07GV2S1GS&schedule=daily
  5. 5. Replace token accounting

    Keepa meters tokens per minute. ShopSavvy meters monthly credits (meta.credits_remaining on every response, GET /v1/usage for the period) and a separate limit of 1,000 requests per rolling hour.

Endpoint and field mapping

Keepa APIShopSavvy Data APINote
GET /product?asin=…&domain=1GET /v1/products?ids=<ASIN>Product record; add /offers for prices
GET /product?code=… (UPC/EAN/ISBN-13)GET /v1/products?ids=<barcode>Same identifier
product.csv[] (Keepa Time)offers[].history[] (timestamp, price, availability)Per retailer offer, USD, ISO 8601
product.statsCompute from historyNo precomputed stats object
tracking (notifyIf, thresholdValues)PUT /v1/products/scheduled + POST /v1/webhooksWebhook events: price_drop, availability_change, schedule_completion
tokensLeftmeta.credits_remainingMonthly credits
salesRanks, buyBox data, seller requestsnoneDoes not transfer

“Unconfirmed” means we could not confirm the Keepa API field name from its public documentation on 2026-10-12; check a sample response.

What does not transfer

  • Amazon sales rank and sales-rank history
  • Buy Box history and Amazon seller search
  • Non-US Amazon marketplaces (ShopSavvy offers are USD)
  • Keepa's deals and best-seller list requests

Questions

Can I keep Keepa for sales rank and use ShopSavvy for prices?

Yes. Both accept ASINs, so the same product list works with both.

How much history comes across?

You do not move history: ShopSavvy already has its own, back to 2011 and dense from 2019, for the products and retailers it has observed. Request up to 366 days per call.

Read first: ShopSavvy Data API vs Keepa API · Data API documentation · Pricing