Amazon Buy Box & Seller Offers Tracker API avatar

Amazon Buy Box & Seller Offers Tracker API

Pricing

$24.99/month + usage

Go to Apify Store
Amazon Buy Box & Seller Offers Tracker API

Amazon Buy Box & Seller Offers Tracker API

Get all Amazon seller offers per ASIN with Buy Box winner, prices, FBA status, and stock data. Tracks price changes, buybox rotations, and new sellers across amazon.com, .de, .co.uk, .fr, .it, .es, .co.jp, .ca. Perfect for repricing and analytics.

Pricing

$24.99/month + usage

Rating

0.0

(0)

Developer

ClearPath

ClearPath

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

1

Monthly active users

13 days ago

Last modified

Share

Amazon Buybox API | Track Seller Offers and Price Changes Across 8 Domains

Extract every seller offer for any Amazon product — prices, conditions, fulfillment method, and buybox winner status. Supports amazon.com, .de, .fr, .co.uk, .it, .es, .co.jp, and .ca. Schedule recurring runs to detect price changes, new sellers, and buybox winner shifts automatically.

Pass ASINs or full Amazon URLs. The Actor fetches all available offers, identifies the buybox winner, and returns structured data per offer. On scheduled runs, it compares against the previous state and flags what changed.

Rental Pricing

$29 per month — unlimited ASINs, unlimited runs, no per-item fees.

  • Process any number of products per run
  • Run as often as you need
  • All 8 Amazon domains included
  • Built-in price change monitoring
  • Cancel anytime

What Data You Get

Each offer in the dataset includes:

  • Price data — current price, original/list price, currency, price delta vs last run
  • Seller info — seller name, seller ID, ships-from location, FBA status
  • Buybox status — whether this offer holds the buybox, and whether the winner changed
  • Product context — ASIN, condition (New, Used - Like New, Refurbished, etc.), total offer count
  • Change tracking — price changed flag, previous price, new seller flag, first-seen timestamp

How Amazon Buybox Monitoring Works

  1. First run — collects all offers and saves a snapshot per ASIN
  2. Subsequent runs — compares current offers against the saved snapshot
  3. Change detection — flags price changes (with delta), new sellers, and buybox winner switches
  4. Per-offer granularity — tracks each seller's offer independently, even when a seller has multiple offers at different conditions

Schedule runs hourly, daily, or weekly depending on how closely you need to track competition.

Supported Amazon Domains

DomainCountryCurrency
amazon.comUnited StatesUSD ($)
amazon.deGermanyEUR (€)
amazon.frFranceEUR (€)
amazon.co.ukUnited KingdomGBP (£)
amazon.itItalyEUR (€)
amazon.esSpainEUR (€)
amazon.co.jpJapanJPY (¥)
amazon.caCanadaCAD ($)

Mix domains freely in one run — pass URLs from different Amazon sites and each product is fetched with the correct locale and proxy.

Input Parameters

ParameterTypeRequiredDefaultDescription
productUrlsstring[]YesAmazon product URLs or bare ASINs. Domain auto-detected from URLs.
amazonDomainenumNoamazon.comDefault domain for bare ASINs. Ignored when URLs contain a domain.
conditionenumNoallFilter offers by condition: all, new, used, usedLikeNew, usedVeryGood, usedGood, usedAcceptable, collectible, refurbished.
maxOffersPerProductintegerNo0Max offers per ASIN. 0 = all offers.
proxyConfigurationobjectNoApify ResidentialProxy country auto-set from domain (.de → DE, .co.jp → JP).

Quick Start

Single product

{
"productUrls": ["B0DZZWMB2L"]
}

Multiple products across domains

{
"productUrls": [
"https://www.amazon.com/dp/B0DZZWMB2L",
"https://www.amazon.de/dp/B0D1XD1ZV3",
"https://www.amazon.co.jp/dp/B09LCHH618"
],
"condition": "new",
"maxOffersPerProduct": 10
}

Bare ASINs on a specific domain

{
"productUrls": ["B0DZZWMB2L", "B0D1XD1ZV3", "B07ZPKN6YR"],
"amazonDomain": "amazon.de",
"condition": "all"
}

Output

Offer fields

{
"asin": "B0DZZWMB2L",
"condition": "New",
"price": 1399.99,
"originalPrice": 1499.99,
"currency": "$",
"sellerName": "Amazon.com",
"sellerId": "ATVPDKIKX0DER",
"shipsFrom": "Amazon.com",
"isBuyboxWinner": true,
"isFBA": true,
"offerIndex": 0,
"maxQuantity": 2,
"offerId": "h%2F9gUZFb...",
"totalOffersForProduct": 18,
"amazonDomain": "amazon.com",
"scrapedAt": "2026-02-27T12:43:36Z"
}

Monitor fields (2nd+ run)

On scheduled runs, every offer includes change tracking:

{
"priceChanged": true,
"previousPrice": 1499.99,
"priceDelta": -100.0,
"buyboxWinnerChanged": false,
"previousBuyboxWinner": "Amazon.com",
"isNewSeller": false,
"firstSeenAt": "2026-02-25T08:00:00Z"
}
FieldTypeDescription
priceChangedbooleanWhether this seller's price changed since last run
previousPricenumberLast known price for this seller + condition
priceDeltanumberPrice difference. Negative = price drop.
buyboxWinnerChangedbooleanWhether the buybox winner is a different seller
previousBuyboxWinnerstringSeller name of the previous buybox holder
isNewSellerbooleanFirst time this seller appears for this ASIN
firstSeenAtstringISO timestamp when the seller was first observed

Use Cases

For Amazon Sellers

  • Track competitor pricing — monitor every seller on your listing, detect undercuts within hours
  • Buybox win rate — log buybox winner changes over time to understand rotation patterns
  • Repricer validation — verify your repricing tool is working by comparing expected vs actual prices

For E-commerce Analysts

  • Cross-market pricing — compare the same ASIN across US, EU, UK, and JP simultaneously
  • Seller landscape — identify how many sellers compete per product, FBA vs FBM distribution
  • Price history — schedule daily runs to build a price trend dataset

For Arbitrage and Resale

  • Price gap detection — spot products priced differently across Amazon domains
  • New seller alerts — detect when new sellers enter a listing (often signals supply changes)
  • Condition-based analysis — track used/refurbished pricing separately from new offers

How to Extract Amazon Buybox Data with Python

from apify_client import ApifyClient
client = ApifyClient("your_api_token")
run = client.actor("clearpath/amazon-buybox-api").call(run_input={
"productUrls": ["B0DZZWMB2L", "B0D1XD1ZV3"],
"condition": "new"
})
for offer in client.dataset(run["defaultDatasetId"]).iterate_items():
if offer["isBuyboxWinner"]:
print(f"{offer['asin']}: {offer['sellerName']} @ {offer['currency']}{offer['price']}")

How to Extract Amazon Buybox Data with JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'your_api_token' });
const run = await client.actor('clearpath/amazon-buybox-api').call({
productUrls: ['B0DZZWMB2L', 'B0D1XD1ZV3'],
condition: 'new',
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.filter(i => i.isBuyboxWinner).forEach(offer => {
console.log(`${offer.asin}: ${offer.sellerName} @ ${offer.currency}${offer.price}`);
});

Advanced Usage

Monitor buybox changes on a schedule

Set up a daily schedule in the Apify Console. On each run, the Actor loads the previous state and enriches every offer with change flags. Filter the dataset for buyboxWinnerChanged: true to see only products where the winner shifted.

{
"productUrls": ["B0DZZWMB2L", "B0D1XD1ZV3", "B0CL61F39H"],
"condition": "new"
}

Filter by condition to track used market

{
"productUrls": ["B0DZZWMB2L"],
"condition": "usedLikeNew"
}

Cap offers per product

When a listing has 50+ sellers and you only need the top offers:

{
"productUrls": ["B0DZZWMB2L"],
"maxOffersPerProduct": 5
}

Data Export

Export results from the Apify Console or API in:

  • JSON — structured data for programmatic use
  • CSV — spreadsheet analysis and reporting
  • Excel — pivot tables, charting, dashboards

Proxy Configuration

The Actor uses residential proxies by default. Proxy country is auto-matched to the Amazon domain — .de routes through Germany, .co.jp through Japan, etc.

Default configuration (recommended):

{
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

FAQ

How many products can I process per run? No limit. Pass as many ASINs or URLs as you need. Each product is processed sequentially.

How many offers does it return per product? All of them by default. Amazon shows up to 10 offers per page; the Actor paginates through all pages automatically. Use maxOffersPerProduct to cap if needed.

Does it work for products with no buybox? Yes. If no buybox winner exists, all offers are returned with isBuyboxWinner: false.

What happens if a product has zero offers? It's skipped gracefully. No error, no empty record in the dataset.

Are prices in local currency? Yes. amazon.de returns EUR, amazon.co.jp returns JPY, amazon.co.uk returns GBP, etc. The currency field tells you which.

How does change tracking work? The Actor stores a snapshot after each run in a named key-value store. On the next run, it compares current offers against the snapshot by offer ID. Only real changes are flagged — same data across runs produces priceChanged: false for every offer.

Is condition text normalized across languages? Yes. German "Neu", French "Neuf", Japanese "新品" are all normalized to "New". Used sub-conditions are normalized too (e.g., "Usato - Come nuovo" becomes "Used - Like New").

Can I mix domains in one run? Yes. Pass full URLs from different Amazon sites. Each URL is processed with the correct locale, currency, and proxy country.

Support