Amazon Offer Checker: How Contested Is This Listing avatar

Amazon Offer Checker: How Contested Is This Listing

Pricing

from $4.00 / 1,000 products with a prices

Go to Apify Store
Amazon Offer Checker: How Contested Is This Listing

Amazon Offer Checker: How Contested Is This Listing

See how crowded an Amazon listing is: how many other sellers are on it, whether a used offer exists, whether a subscription price sits alongside, and how fast it ships. Never guesses a price. 19 marketplaces. It does not name sellers, by design.

Pricing

from $4.00 / 1,000 products with a prices

Rating

0.0

(0)

Developer

Amazon Scrapers

Amazon Scrapers

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Categories

Share

Amazon offer checker: seller count, used offers, Prime and return terms

Give it a list of products. Get back how crowded each listing is: how many other sellers are on it, whether a used copy is offered, whether a subscription price sits alongside, how fast it ships and on what return terms.

Twenty fields per product, nineteen marketplaces, and a price that comes from Amazon's own buy box data rather than from anywhere else on the page, which on a competition question matters more than it does anywhere else.

What this does not do, and why the name says so

It does not tell you who holds the buy box.

Answering that needs the seller's identity, and this Actor does not collect seller names. A seller name is frequently a person's name, and scraping personal data out of a public website is almost always a GDPR problem in Europe regardless of how public the page is. The Dutch data protection authority calls it "almost always" a violation and says a purely commercial interest does not count as a legitimate one. That line is the same across every Actor in this family.

There are tools on this Store called buy box checkers that cannot name the buy box winner either. Calling this one an offer checker is the honest version of the same product.

What you do get is the shape of the competition, which is most of what the question is usually for.

The seller count, and how nearly it went missing

otherSellersCount is the headline field here, and for a while it was empty on every single product.

Not because Amazon stopped printing it. Because Amazon changed where the number sits. The old wording was "6 new from $12.00", with the count before the word. The current wording is "New & Used (6) from", with the count in brackets after it. This Actor was looking only for the old shape, so it returned nothing on forty-three consecutive rows while the number sat there in plain sight.

Found and fixed on 26 August 2026 by probing the page for what it actually said instead of assuming. Measured immediately after on eight American products: seven of eight carried a count.

It is worth telling because it is the failure mode of every scraper on this Store, and because it explains why this Actor now ships a field probe that reports whether the marker a field depends on is present on the page. A field that quietly goes to zero is worse than one that fails loudly.

Every field it returns

Twenty per product, weighted towards the offer rather than the product.

Price and offer

FieldWhat it holds
priceCurrent price from Amazon's own buy box data (this is what you are charged for)
listPriceThe struck-through price, when Amazon shows one
discountPercentHow much is off as a percentage
currencyThree-letter code, from the page itself
priceSourceWhere the price came from, so you can audit it
hasSubscribeAndSaveWhether a subscription price exists
hasUsedOfferWhether a used copy is offered
isRefurbishedRenewed and refurbished listings
otherSellersCountHow many other sellers offer it

Stock and delivery

FieldWhat it holds
inStockTrue, false, or null when Amazon does not say
availabilityAmazon's own availability sentence
deliveryInfoThe delivery date Amazon promises
returnPolicyThe return terms in full
isPrimePrime delivery on this offer

Identity and catalogue

FieldWhat it holds
asinThe product id
titleFull product title, shortened only past 1000 characters
brandBrand name
marketplaceWhich shop this row came from
urlThe page this was read from
scrapedAtTimestamp of the read

A real row

asin B0DXXYS4BJ
title Roku Streaming Stick HD with Voice Remote
brand Roku
price 29.99
currency USD
priceSource buybox-data
listPrice 39.99
discountPercent 25
otherSellersCount 2
hasUsedOffer false
hasSubscribeAndSave false
isRefurbished false
isPrime true
deliveryInfo Saturday, August 29
returnPolicy Eligible for Return, Refund or Replacement within 30 days
inStock true
availability In Stock
scrapedAt 2026-08-26T09:14:22.031Z

Two other sellers on that listing, no used copy, twenty-five percent off, and the price came from Amazon's own buy box data rather than from anywhere else on the page.

Why priceSource matters more here

On a competition question a wrong price is worse than no price, because you would reprice against a number nobody is charging.

Amazon puts up to nine price-shaped numbers on a product page: the subscribe option, a used offer, a struck-through list price, a per-unit price, a bundle, and a Prime upsell block that shows two different amounts at once. A price scraped out of the markup could be any of them.

Measured on this engine: markup-derived prices were correct zero times out of six, buy box data nine out of nine. One concrete case: a product selling for $16.99 came back as $11.70 from the markup, because the cheapest visible number belonged to a used offer three blocks down. On this Actor that would be doubly wrong, since hasUsedOffer is a separate field precisely so you can see the used offer without it contaminating the price.

So buy box data is the only source, and priceSource records it on every row.

You are not charged for a row without a price.

When you would use it

Before listing against a product, to see how many sellers you would be joining.

While repricing, to check whether a listing has quietly gained competitors. A listing that went from two sellers to nine in a month is a different proposition from the same listing at the same price.

When a price looks wrong, to see whether a used offer or a subscription price is what you are actually looking at.

Before promising a delivery date, since isPrime and deliveryInfo are the competitive position on anything commoditised.

What to put in

ASINs or product URLs. Paste them in any shape: a bare B08N5WRWNW, a full URL with tracking parameters, a spreadsheet cell that still says ASIN: B08N5WRWNW. Duplicates are removed across everything you give it.

A search term or a category link, if you want to survey competition across a category rather than a known list. That is the more interesting use: the spread of otherSellersCount across a category tells you where the crowd is.

Settings worth knowing about

SettingWhat it does
marketplaceOne of nineteen. The offer block depends on the buy box, so read the marketplace table below before committing.
proxyCountryLeave empty and it follows the marketplace. Worth setting by hand when you want the offer picture a shopper in a specific country sees.
maxItemsHard ceiling on delivered products. Zero means no ceiling.
maxItemsPerListHow many products to take from each search term or category link.
maxListPagesHow deep to walk each list.
lanesHow many products are read at once. Eight by default. Sixteen roughly halves the run time and costs a few offer blocks, because Amazon strips the buy box sooner when you push. On this Actor that is the wrong trade.
maxAttemptsAttempts per product, each from a different address. Twelve by default.
residentialFallbackOff by default. Measured 2026-08-26: on it cost roughly six times as much and returned two more products out of sixty.
economicalHangs up once the offer block has arrived. Off by default; measured, it saves nothing.

How it works, in plain terms

Amazon refuses roughly six requests in ten to an address it has not seen before. Every product gets up to twelve attempts, each from a different exit address, and the same address is never used twice in a row. Addresses that work are remembered for the rest of the run and tried first. When refusals climb the runner slows down rather than pushing harder.

Anything still refused at the end goes into a second pass at half speed, using only the addresses that already proved themselves.

The offer block lives inside the buy box, which is the part of the page Amazon guards hardest. That is why this Actor is one of the more expensive of the eleven to run, and why the marketplace table below matters more here than elsewhere.

Reading the run log

Done: 16 charged (+3 delivered without a price, free), 1 refused by Amazon, 0 other. 946 KB per charged result, 179 attempts in total.
Exit addresses: 130 used, 1 proven good, 14 burned.
Attempts by outcome: {"refused by Amazon":105,"page did not carry the field this Actor needs":51,"ok":16,"http_500":2,"proxy error":3,"delivered, product unavailable":1,"timed out":1}

charged is products that came back with a price, which is the marker for the offer block having arrived. The bracketed number came back complete without one and cost you nothing.

If a run ever delivers rows and charges for none of them, the log says so in capitals at the bottom.

Reliability, measured

Three consecutive runs of twelve products on 26 August 2026, at the default settings:

run 1 12 of 12 delivered, 9 with an offer block
run 2 10 of 12 delivered, 7 with an offer block
run 3 10 of 12 delivered, 8 with an offer block

And one run of sixty products the same day: 60 delivered, 53 with an offer block, in 9.4 minutes.

Worth reading out of that: the longer run has the better delivery rate, 100 percent against 89, and that is not luck. The engine spends the first products of a run working out which exit addresses Amazon is tolerating today, so a short run pays the whole warm-up over fewer products. If delivery matters more to you than turnaround, batch your work into larger runs.

The second is the residential switch, and the honest version is less dramatic than it sounds. Measured 26 August on the same sixty products, twice: with the switch off, fifty-one came back with the field this Actor charges on, for $0.0205 of platform usage. With it on, fifty-three came back, for $0.1192. Two more products for roughly six times the cost.

That is why it is off by default. It is in your input form, so if a marketplace is refusing almost everything you can turn it on and pay for the difference.

Marketplaces

Nineteen, from amazon.com to amazon.co.jp, read in their own language.

This job depends on the buy box more than most, and the buy box does not arrive everywhere. Measured on 2026-08-24:

MarketplaceProducts priced
amazon.com57 of 60
amazon.ca5 of 5
amazon.co.uk5 of 6
amazon.fr4 of 5
amazon.it1 of 5
amazon.es1 of 5
amazon.de0 of 8
amazon.com.au0 of 5

On the marketplaces at the bottom of that table this Actor has little to tell you, and it will not pretend otherwise: those rows arrive without a price and without a charge. Run a small job on your marketplace before building on it.

Worth knowing separately: the seller count wording differs by marketplace. amazon.co.uk prints "New & Used (6) from" and amazon.com sometimes prints nothing at all on the same product. Both shapes are read, and an absent count means absent rather than zero.

Pricing

Four dollars per thousand products with an offer block, plus three cents to start a run.

Checking a hundred listings costs forty-three cents: a hundred times four tenths of a cent, plus the three cent start fee. You are not charged for rows without a price or for products that never arrived, and platform usage is included.

The rest of this family

Eleven Actors on one engine. Around an offer checker:

  • Amazon Price Tracker when you want the price line over time rather than the competitive picture today.
  • Amazon Stock Checker when availability is the question and you want to be billed on the stock answer.
  • Amazon Variants Scraper when the listing you are competing on turns out to be a family of fourteen.
  • Amazon Product Scraper for all sixty-four fields.

Questions people ask

Why is otherSellersCount sometimes empty. Because Amazon only prints the count on listings that have other sellers, and not on every page variant even then. Empty means no such line on that page, not zero sellers. If it is empty on everything, check the marketplace table above.

Can I find out who the other sellers are. Not with this Actor, and not with any Actor in this family. Seller names are personal data by this project's standard.

Can I use this for repricing. As an input, yes: it tells you the current price, how many competitors, whether a used offer is in play and whether Prime is. The repricing decision stays yours.

What does hasSubscribeAndSave actually tell me. That a lower recurring price sits next to the one you are reading. On consumables that is often the real competitive price, and it is invisible if you only look at price.

How often should I run it. Competition changes more slowly than price. Daily is plenty for most listings, weekly for stable categories.

How many products can it check. No built-in ceiling. Sixty products took 9.4 minutes on the measured run, so a hundred is around 16.

What it does not collect

No review text, no reviewer names, no customer questions, no seller names. This Actor does not return ratings either: it answers what is on offer and on what terms, and the rating belongs to the product rather than to the offer. The product scraper and the niche research Actor in this family return it.

This Actor reads public pages and takes product facts: prices, offer counts, delivery terms, return terms, availability. Business information about an item, not information about a person.

You are responsible for what you do with the output. Check Amazon's terms for your own use case.