Amazon Buy Box Monitor avatar

Amazon Buy Box Monitor

Pricing

Pay per event

Go to Apify Store
Amazon Buy Box Monitor

Amazon Buy Box Monitor

Pricing

Pay per event

Rating

0.0

(0)

Developer

SR

SR

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Give it a list of ASINs and it returns who currently wins the Amazon buy box on each one: the featured offer's price, the merchant selling it, who fulfils it, the delivery promise, and every alternative buying option pinned on the page.

No login, no cookie, no API key. It reads the ordinary product page an anonymous shopper sees, on any of 15 marketplaces, with the exit country pinned so the price is the one that market really shows.

What you get

  • The buy box winner, as sold_by and ships_from, which is the pair that tells you whether Amazon itself, the brand, or a third-party reseller owns the sale
  • Every alternative buying option, not just the winner. New, used and renewed rows each come back with their own price, seller, condition, delivery promise and returns policy
  • A page_state that explains itself. A product with no offer is not the same as a variation parent waiting for a size to be chosen, which is not the same as a Prime Video title that has an ASIN but nothing to buy. Six named states instead of a silent empty row
  • Price in the marketplace's own currency, because the exit is pinned to that country. An unpinned request returns whatever currency the proxy landed in
  • scraped_at on every row, so consecutive runs build the time series that makes buy box data worth anything
  • Delivery and fastest-delivery promises, parsed per option, which is usually the reason a more expensive seller is winning
  • Labels understood in nine languages, so sold_by is populated on amazon.de and amazon.co.jp rather than only on the English sites
  • No actor-start fee. A run that returns nothing costs nothing

Why monitor the Amazon buy box

The buy box decides the sale. A shopper who presses Add to Cart buys from whoever holds it, and on a contested listing that can change several times a day as sellers reprice against each other. If you sell on Amazon, losing it is a revenue event you want to know about in minutes. If you are a brand, an unfamiliar name in sold_by is how you find out someone is reselling your product without permission.

Amazon publishes none of this through an API you can point at a competitor's listing. The Selling Partner API answers questions about your own account, not about the market, and the buy box winner is a rendering decision made on the product page itself. Reading that page is the only way to see it.

What almost every existing tool gets wrong is treating the answer as a snapshot. A single check tells you who holds the buy box right now, which is close to useless. The value is in the series: who held it yesterday, at what price, and what changed when they lost it. That is why this actor returns a timestamp on every row and is built for small, frequent, cheap runs rather than one big sweep.

Input

FieldTypeRequiredDefaultWhat it does
asinsarrayyes["B0DJGDC3BD"]ASINs or full Amazon product URLs. URLs are reduced to their ASIN
marketplaceselectnocomWhich Amazon site, and therefore the currency and exit country
limitintegerno50ASINs per run, 1 to 200
retriesintegerno4Retry attempts per product, each with a rotated user agent and TLS fingerprint

Output

{
"asin": "B0DJGDC3BD",
"url": "https://www.amazon.com/dp/B0DJGDC3BD",
"marketplace": "com",
"title": "Amazon Fire TV Stick HD (newest model), free & live TV",
"page_state": "buybox",
"num_options": 1,
"price": 17.99,
"price_text": "$17.99",
"currency": "$",
"condition": "new",
"sold_by": "Amazon.com",
"ships_from": "Amazon.com",
"availability": "In Stock",
"in_stock": true,
"delivery": "FREE delivery Thursday, September 4",
"fastest_delivery": "Or fastest delivery Tomorrow, September 1",
"returns": "30-day refund/replacement",
"max_quantity": 3,
"add_to_cart": true,
"buying_options": [{ "label": "Buy new", "price": "$17.99", "sold_by": "Amazon.com" }],
"scraped_at": "2026-08-31T18:42:07Z"
}

Use cases

Knowing within the hour that you lost the buy box. Schedule your own ASINs hourly and alert when sold_by changes away from you. The row also carries the winning price, so the alert tells you not just that you lost it but by how much you were undercut, which is the number you need before you reprice.

Finding unauthorised sellers on your own listings. Run your catalogue weekly and collect the distinct values of sold_by per ASIN. Anyone in that set who is not you and not an authorised distributor is a problem you cannot see from Seller Central. buying_options widens the net further, because it lists sellers who are visible on the page without holding the buy box.

Watching a competitor's pricing. Their ASINs, your schedule. Because price is a number and scraped_at is a timestamp, two weeks of runs is a price history nobody sells you. ships_from tells you whether they are on FBA, which is usually what decides who wins at equal price.

Cross-market price comparison. The same ASIN on com, co.uk and de returns three rows with three currencies, each priced as that market actually sees it. Running the same list against several marketplaces is the cleanest way to find where a product is mispriced.

How it compares

this actorjunglee/Amazon-crawlerthe buy box clones
Per 1.000 products$4,50$5,00mostly unpriced
Actor-start feenonenonevaries
Buy box winner (sold_by / ships_from)yespartialyes
All alternative buying optionsyesoffers listno
Explains why a page has no offer6 named statesnono
Timestamp per row for a time seriesyesnono
Non-English marketplaces9 label languageslimitedno
30-day run failure rate0% across validation runs10,8%

Honest about the other side: junglee/Amazon-crawler has 1.843 monthly users and returns search results and category crawls that this actor does not do at all. It is a broader product scraper. This one answers a single question properly.

The nearest direct competitors are five near-identical buy box actors, none above four monthly users, and none of them keeps state between runs.

Pricing

One event. asin costs $0,0045 per product checked, which is $4,50 per 1.000. ASINs that do not resolve or stay blocked are never written to the dataset and are therefore never billed. All pricing is pay-per-event. No actor-start fee, no per-compute-unit charges, and a run that returns nothing costs nothing.

Limits and gotchas

  • Not every ASIN is a retail product. Prime Video, Kindle and Music titles have ASINs and answer on /dp/, but there is nothing to buy. Those come back as page_state: not_a_product rather than an empty buy box.
  • A variation parent pins nothing until a size or colour is chosen. Those return page_state: select_variant. Pass the child ASIN of the specific variant you care about.
  • page_state: see_all_buying_options means Amazon showed no featured offer at all, only a link to the offer listing. That is a real market state, usually a listing with no seller meeting the buy box criteria.
  • An ASIN is marketplace-specific. A US ASIN often does not resolve on amazon.co.uk, and the run says asin_not_found for it rather than returning an empty row.
  • Each row is one full product page, over a megabyte, fetched through a residential exit. A 200-ASIN run takes minutes. Concurrency is deliberately low because Amazon throttles hard, and a faster setting draws 429s.
  • Buy box ownership changes intraday. A daily run tells you much less than an hourly one. The actor is priced for frequent small runs for exactly this reason.

FAQ

Can I see who has the Amazon buy box without an API key? Yes. The featured offer is rendered on the ordinary product page for anonymous visitors, and that is what this actor reads. There is no credential field in the input.

Does it show sellers who do not have the buy box? Yes, in buying_options, which carries every buying option Amazon pins on the product page with its own seller, price and condition. For the complete third-party offer list behind the "other sellers" panel you would need an offer-listing scraper; this returns what the page itself shows.

Why does my ASIN come back with no price? Check page_state. It will say whether the product is a variation parent, has no featured offer, is unavailable, or is not a retail product at all. That field exists so you never have to guess.

Which marketplaces are supported? Fifteen: com, co.uk, de, fr, it, es, nl, se, pl, ca, com.au, com.mx, com.br, in and co.jp. Each is fetched through an exit in its own country so the price and offer match that market.

How do I track buy box changes over time? Schedule the run and store asin, sold_by, price and scraped_at. A change in sold_by between two runs is a buy box flip, and the price difference tells you what it cost.