Amazon Price & Buy Box Scraper avatar

Amazon Price & Buy Box Scraper

Pricing

from $6.00 / 1,000 asin checks

Go to Apify Store
Amazon Price & Buy Box Scraper

Amazon Price & Buy Box Scraper

Scrapes price, Buy Box winner, availability and the full offer list per ASIN across 18 Amazon marketplaces — with watchlist history, change detection and cross-marketplace checks. Errors never charged.

Pricing

from $6.00 / 1,000 asin checks

Rating

0.0

(0)

Developer

Torchtechnology LTD

Torchtechnology LTD

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 minutes ago

Last modified

Share

What does this Actor do?

Amazon Price & Buy Box Scraper checks any list of Amazon products and returns everything that matters about the money side: the current price as a structured number with the marketplace's own currency, list price and discount, coupons and deal badges, stock/availability, the Buy Box winner (seller name, seller ID, fulfillment, Amazon-or-not), and — optionally — the complete offer list with every seller's price, condition, shipping, delivery promise, ships-from and Prime badge. It works across eighteen verified marketplaces: amazon.de, .com, .co.uk, .fr, .it, .es, .ca, .com.au, .co.jp, .in, .nl, .se, .pl, .com.be, .com.mx, .com.br, .ae, and .sa.

Built-in watchlist history: every successful check is recorded per watchlist, so repeated runs of the same ASIN build a price/Buy-Box time series. Turn on monitor mode to get change detection (price moves, Buy Box flips to another seller, stock changes) with deltas and a plain-English summary, and includeHistory to have past snapshots attached directly to each result. No external state needed on your side.

It is designed for both humans and AI agents: deterministic JSON output, documented error semantics, and pay-per-result pricing where errors are never charged.

Why use this Actor?

  • Sellers & repricers — know the moment you lose the Buy Box (changeDetected, buyboxSellerName, buyboxIsAmazon), not when sales dry up.
  • Resellers & arbitrage — catch real price drops and see the full offer list, including the cheapest offer (lowestOffer) without scrolling "All offers" pages by hand.
  • Brand owners — watch your ASINs for unauthorized sellers winning the Buy Box across all EU marketplaces in one run.
  • Cross-border price comparisonalsoCheckMarketplaces checks the same ASIN on up to 17 more marketplaces in the same run.
  • Price history without Keepa subscription — schedule the Actor and read the stored snapshots (includeHistory), pay-per-check instead of a flat monthly fee.

When not to use it: you need review texts (use a reviews actor), ranked category charts (use a bestsellers actor), or keyword rankings (use a search actor).

How to use this Actor

  1. Click Try for free and open the Input tab.
  2. Enter ASINs (with a marketplace), paste full Amazon product URLs, or drop search/category URLs to collect ASINs from.
  3. Leave monitor mode off for a one-time check — or turn it on, give the run a stable watchlist ID, and schedule it (hourly/daily) to build history.
  4. Run it. Results land in the dataset, downloadable as JSON, CSV, Excel, or pulled via the API.

Input

FieldTypeDefaultDescription
asinsstring[]Plain ASINs (e.g. B0CZ9LH53B), checked on marketplace. Duplicates in one run are checked once — use includeHistory for past results of the same ASIN.
productUrlsstring[]Product URLs (/dp/…, /gp/product/…, marketplace auto-detected) — or search (/s?k=…) and category/chart URLs (/gp/bestsellers/…, /b?node=…) to collect ASINs from first.
marketplacestringcomOne of the 18 marketplace codes; applies to plain ASINs only.
alsoCheckMarketplacesstring[]Cross-marketplace fan-out: every ASIN is additionally checked on each listed marketplace.
maxAsinsPerListUrlinteger20Cap for ASINs collected per search/category URL (each is charged like a direct ASIN).
includeAllOffersbooleantrueAlso fetch the "All offers" page per ASIN and parse every offer.
maxOffersinteger20Upper bound of parsed offers per ASIN.
monitorModebooleanfalseDiff every ASIN against its last stored snapshot: changeDetected, changes[], priceDelta, changeSummary.
watchlistIdstringdefaultNamespaces the history store (price-history-v2-<watchlistId>). Keep it stable across scheduled runs.
includeHistorybooleanfalseAttach past snapshots of the same marketplace+ASIN (newest first, current check excluded).
historyLimitinteger10How many past snapshots to attach (0 = all stored; up to 200 kept per ASIN).
requestDelayMsinteger0Extra pause between ASIN checks; raise it if you see bot-detection errors.
proxyConfigurationobjectApify ResidentialProxy settings; custom proxyUrls supported.
proxiesByMarketplaceobjectGeo-pinned proxies per marketplace ({"co.uk": ["http://…"]}). Overrides proxyConfiguration for that marketplace.

Output

One dataset item per ASIN check:

{
"asin": "B0CZ9LH53B",
"parentAsin": "B0DZP9GR4J",
"marketplace": "com",
"url": "https://www.amazon.com/dp/B0CZ9LH53B",
"title": "Anker 737 Power Bank (PowerCore 24K), 24,000mAh …",
"brand": "Visit the Anker Store",
"image": "https://m.media-amazon.com/images/I/…jpg",
"price": { "value": 109.99, "currency": "USD" },
"priceString": "$109.99",
"priceRange": null,
"listPrice": null,
"discountPercent": null,
"pricePerUnit": null,
"coupon": null,
"inSale": false,
"hasFeaturedOffer": true,
"buyboxPrice": { "value": 109.99, "currency": "USD" },
"buyboxSellerName": "AnkerDirect",
"buyboxSellerId": "A2MSUK46IX9JJW",
"buyboxIsAmazon": false,
"buyboxFulfilledBy": "Amazon",
"inStock": true,
"availabilityText": "Only 7 left in stock - order soon.",
"offerCountRendered": null,
"offerCountParsed": 10,
"offers": [
{
"sellerName": "AnkerDirect",
"sellerId": "A2NSXUMBQKZERF",
"price": { "value": 109.99, "currency": "USD" },
"priceString": "$109.99",
"condition": "New",
"shipping": null,
"delivery": "FREE delivery Saturday, August 8 …",
"shipsFrom": "Amazon",
"isPrime": true
}
],
"lowestOffer": { "value": 109.99, "currency": "USD", "sellerName": "AnkerDirect", "isPrime": true },
"rating": 4.7,
"reviewCount": 1215,
"bestsellerRanks": [{ "rank": 57116, "category": "Cell Phone Portable Power Banks" }],
"monitorMode": true,
"watchlistId": "default",
"isFirstCheck": false,
"changeDetected": true,
"changes": ["Price dropped from 119.99 USD to 109.99 USD (-8.3%)."],
"changeSummary": "Price dropped from 119.99 USD to 109.99 USD (-8.3%).",
"previousPrice": 119.99,
"priceDelta": -10.0,
"priceDeltaPercent": -8.3,
"previousBuyboxSeller": "AnkerDirect",
"history": [{ "checkedAt": "2026-08-15T…", "price": 119.99, "buyboxSeller": "AnkerDirect", "inStock": true }],
"historyCount": 3,
"input": "B0CZ9LH53B",
"scrapedAt": "2026-08-16T10:33:30Z"
}

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel. The Output tab has four views: Overview (one row per ASIN), All offers (one row per offer), Price history (one row per stored snapshot), and Errors.

Data table

FieldMeaning
price / priceStringCurrent price as {value, currency} plus the raw rendered string. null when Amazon shows none (e.g. variant range → see priceRange)
priceRange{min, max, currency} when the product only shows a variant price range
listPrice, discountPercent, pricePerUnitStrikethrough reference price, Amazon's rendered saving %, unit price
coupon{text, percent, amount} when a coupon badge is rendered, else null
inSale, dealBadgeTextSale flag from discount/deal-badge evidence, plus the badge text
hasFeaturedOfferBuy Box presence — from the purchase UI only, never derived from price existence
buyboxPrice, buyboxSellerName, buyboxSellerId, buyboxIsAmazon, buyboxFulfilledByWho holds the Buy Box and at what price. Seller ID comes only from the seller link — never guessed
noFeaturedOfferNoticeAmazon's own "no featured offers" notice text when shown
inStock, availabilityTextTri-state stock (true/false/null = no robust statement) plus Amazon's raw availability text
offerCountRendered / offerCountParsedOffer count link on the PDP vs. actually parsed offers
offers[]Every parsed offer: seller, seller ID, structured price, condition, shipping, delivery, ships-from, Prime, plus seller feedback (sellerRating, sellerRatingsCount, sellerPositivePercent when rendered). The pinned featured (Buy Box) offer is included and flagged isFeaturedOffer: true — for single-offer ASINs it is the only one Amazon renders
lowestOfferCheapest parsed offer by item price (computed from the parsed list, shipping excluded)
rating, reviewCount, bestsellerRanksPDP rating context and all rendered Best-Sellers-Rank entries
isFirstCheck, changeDetected, changes, changeSummary, previousPrice, priceDelta, priceDeltaPercent, previousBuyboxSellerMonitor mode only — diff against the watchlist's previous snapshot
history, historyCountWith includeHistory: past snapshots (newest first, current excluded)
notesPartial-failure notes (e.g. offer list unavailable — PDP evidence still delivered)

null means "not rendered by Amazon" — never a guess. Error items carry error + errorDescription and are never charged:

errorMeaningTypical action
invalid_asinNot a 10-char ASINFix the input
invalid_urlNot a product/search/category URLFix the URL
unsupported_marketplaceDomain not among the 18 marketplacesUse a supported domain
product_not_foundAmazon 404 for the /dp/ pageASIN gone — remove it
page_not_foundAmazon 404 for a search/category URLCheck the URL
no_results_foundList page rendered no product linksRetry later
blockedBot-detection page after one automatic retryUse residential/geo-pinned proxies
transportNavigation failure (proxy/timeout)Simply retry
unexpected_pagePage rendered without title, price block and availability (bot variant)Retry with residential proxies

Pricing

Pay-per-event; you only pay for real answers:

  • result — one per ASIN check (also per first/baseline check in monitor mode)
  • result-changed — monitor mode check with a detected change
  • result-unchanged — monitor mode check confirming nothing changed (price it cheaper in the Console so daily monitoring stays affordable)

Error items are free. The offer list, history attachment and change detection ride along on the ASIN event — no per-offer or per-snapshot charges. Event prices are set on the Pricing tab.

Tips

  • Batch your ASINs into one run — per-run startup cost is shared.
  • Keep a stable watchlistId and schedule the run (Apify Scheduler, e.g. daily): that is what builds the history time series and makes monitor mode compare against your last check instead of starting fresh.
  • The proxy exit country must match the marketplace for correct local prices. Every task walks the proxy tier chain: your proxiesByMarketplace pool first, then the bundled pool (per-Actor named KVS proxy-pool-amazon-price-buybox, record pool — works under LIMITED_PERMISSIONS; the user input always wins), then Apify datacenter, then Apify Residential (retries only on bot detection/transport).
  • Turn includeAllOffers off when you only need price + Buy Box — it saves one page load per ASIN.
  • Search/category URLs multiply output fast (maxAsinsPerListUrl × URL count) — cap them while exploring.
  • Running behind a firewall of blocks? Raise requestDelayMs to 2000–5000.

Get alerted on price changes and Buy Box flips

Monitor mode tells you what changed — combine it with the Apify Scheduler and a webhook to turn that into an alert:

  1. Save a task with monitorMode: true, a stable watchlistId and your ASINs (or start from the ready-made example Watch Amazon price drops with a watchlist on the Examples tab).
  2. In Apify Console, open the task → Schedule and pick an interval (hourly or daily works well).
  3. Add an integration on the task: Webhooks (or Slack/Zapier/Make via the Integrations tab) with the event ACTOR.RUN.SUCCEEDED pointing at your endpoint.
  4. In the webhook handler, fetch the finished run's dataset (GET /v2/actor-runs/<runId>/dataset/items) and alert only on items with changeDetected: true — the changes array lists exactly what moved (e.g. price old → new, Buy Box seller old → new), and changeSummary gives a one-line human summary.

No code? Use the dataset of the scheduled runs directly: every run carries the full diff, so a daily digest is just the latest dataset filtered to changeDetected: true.

Known limitations

  • Amazon renders at most ~20–30 offers on the first All-Offers page; maxOffers caps what is parsed (first page only).
  • isPrime per offer is only reported when the row actually renders a Prime badge — otherwise null, never a guessed false.
  • Seller IDs exist only where Amazon links the seller profile — Amazon itself often sells without a link (sellerId: null, name still reported).
  • Verified marketplaces: de, com, co.uk, fr, it, es, ca, com.au, co.jp, in, nl, se, pl, com.be, com.mx, com.br, ae, sa (18). Others may work but are untested — report via the Issues tab.

Use with AI agents (MCP)

This Actor is MCP-ready and works as a structured Amazon price/Buy-Box tool for AI agents. Exact identity: cyprusapi/amazon-price-buybox.

Tool description: check Amazon ASINs on 18 marketplaces and return structured records with current price, list price, discount, coupon, stock, Buy Box winner (seller, ID, fulfillment), the full offer list, and — per watchlist — stored history snapshots and change detection.

Example prompt: "Check these three ASINs on amazon.com, tell me the Buy Box seller and the cheapest offer, and attach the price history from my 'main' watchlist." → input: {"asins": ["…"], "marketplace": "com", "includeHistory": true, "watchlistId": "main"}

Output interpretation for agents:

  • price.value / price.currency are numeric and marketplace-local — safe for arithmetic
  • Items with an error field are failures — never charged, never count them as data
  • changeDetected is only meaningful in monitor mode; on first checks it is null
  • A field set to null means "not rendered by Amazon" — do not treat it as zero or absence

Cost guidance: one ASIN check = one event (result / result-changed / result-unchanged); errors, offers, history and change detection are included.

FAQ, disclaimers, and support

  • Is it legal? The Actor reads publicly available product and offer pages without login. You are responsible for complying with Amazon's Terms of Service and applicable law in your jurisdiction.
  • Do I need proxies? Yes — residential proxies are strongly recommended; Amazon rate-limits datacenter IPs aggressively. Geo-pinned proxies per marketplace give correct local prices.
  • Where does the history live? In a named key-value store price-history-v2-<watchlistId> of the Actor's storage — it persists across runs and survives dataset expiration. Delete the store in the Console to reset a watchlist.
  • Found a bug or need another marketplace? Open an issue — selector maintenance is part of the product.