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

12

Total users

1

Monthly active users

2 days ago

Last modified

Share

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

Price changes. New sellers. Buy Box winners.

From Clearpath, creators of Shopify Product Scraper, Coles Scraper and Woolworths Scraper. Product, seller and store-level data from the same team.

Why choose this actor?

See exactly how seller prices changed. Repeated runs return the previous price, current price and difference for matching offers. Find price drops and increases directly in your exported data.

Track new competitors and Buy Box changes. Identify newly appearing sellers and changes to the featured seller, with the previous Buy Box winner included. The first run establishes your baseline; later runs reveal changes.

Keep the offer details that explain the price. Compare seller names, item conditions, fulfillment by Amazon and ships-from information alongside prices. Collect available offers across eight Amazon markets, with an optional per-product limit.

Track your products

Quick start

Start with one Amazon product and collect its available seller offers:

{
"productUrls": [
"B0D1XD1ZV3"
],
"amazonDomain": "amazon.com",
"condition": "all",
"maxOffersPerProduct": 0
}

Open actor input and replace the ASIN with your product. Run the same product and market again, or schedule recurring runs, to compare changes. Keep the condition filter consistent. maxOffersPerProduct: 0 removes the optional offer limit. Export JSON, CSV or Excel. The hero uses a historical offer example; prices change.

Clearpath · Commerce Data
 Amazon Buybox
You are here
 Shopify Products
Product details
 Shopify Leads
Store contacts
 Coles
Price & stock
 Woolworths
Price & stock

Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

clearpath/amazon-buybox-api on Apify. Call: ApifyClient("TOKEN").actor("clearpath/amazon-buybox-api").call(run_input={...}), then client.dataset(run["defaultDatasetId"]).list_items().items for results. Key inputs: productUrls (array of strings, required), amazonDomain (string, default "amazon.com"), condition (string, default "all"). Full actor spec (input schema with all params/enums/defaults, output dataset fields, README): GET https://api.apify.com/v2/acts/clearpath~amazon-buybox-api/builds/default (Bearer TOKEN) → inputSchema, actorDefinition.storages.dataset, readme. Pricing: see https://apify.com/clearpath/amazon-buybox-api/pricing for the current price and any scheduled changes. Get token: https://console.apify.com/account/integrations

Pricing

See the Pricing tab for the current price, usage charges and any scheduled pricing changes.

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[]Yes—Amazon 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