Amazon Product Scraper: Price, Buy Box, Offers & BSR avatar

Amazon Product Scraper: Price, Buy Box, Offers & BSR

Pricing

from $3.00 / 1,000 product (full page)s

Go to Apify Store
Amazon Product Scraper: Price, Buy Box, Offers & BSR

Amazon Product Scraper: Price, Buy Box, Offers & BSR

Amazon product data by ASIN, product link or keyword: price, list price, Buy Box seller and seller ID, offer list with seller ratings, Best Sellers Rank in every category, ratings, bought last month, variations. amazon.com, .co.uk, .de, .com.tr in local currency; fast mode: 48 ASINs per request.

Pricing

from $3.00 / 1,000 product (full page)s

Rating

0.0

(0)

Developer

Berkan Kaplan

Berkan Kaplan

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 hours ago

Last modified

Categories

Share

Get Amazon product data by ASIN, product link or keyword on amazon.com, amazon.co.uk, amazon.de and amazon.com.tr: price and list price, the Buy Box seller and its seller ID, the offer list with seller ratings, Best Sellers Rank in every category, rating, ratings count, "bought in past month", variations, images and bullet points. Prices come in the marketplace's own currency, priced for a delivery address in that country.

  • 🛒 Full product page or fast list data (Amazon's own search results, up to 48 ASINs per request) — pick per run.
  • 🏷️ Buy Box and offer list: the Buy Box offer and Amazon's first page of other offers (about 10) — seller, seller ID, price, condition, ships from (FBA or not), seller rating and positive % — plus the total number of offers.
  • 📈 Best Sellers Rank in every category Amazon shows, plus "10K+ bought in past month" as a number.
  • 🌍 Local prices: GBP on amazon.co.uk, EUR on amazon.de, TRY on amazon.com.tr — never a converted dollar price.

No Amazon account, no API key, no browser.

Quick start (API)

curl -X POST "https://api.apify.com/v2/acts/foxlabs~amazon-product-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"asins": ["B07CMS5Q6P", "B004YAVF8I", "B09X7MPX8L"]}'

What you get

One row per product and marketplace.

GroupFields
Productasin, marketplace, title, brand, url, categories (breadcrumb), bullets ("About this item"), specifications (Amazon's product information table, keyed by Amazon's own labels), imageUrl, images (full size from product pages; the search thumbnail in fast rows), parentAsin, variationAsins, variationCount, variationAttributes (size, color…)
Priceprice (the Buy Box price), currency (from the price on the page), priceInCartOnly (Amazon shows the price only in the cart), listPrice with listPriceLabel (Amazon's own label: List Price, Typical price, RRP, UVP, Statt, Önceki Fiyat… on product pages; the short form such as List or Typical on search results), savingsPercent, unitPrice ("£0.04 / count"), coupon
Buy BoxbuyBoxSeller, buyBoxSellerId (Amazon's merchant ID), soldByAmazon, shipsFrom, fulfilledByAmazon, availability, inStock, deliverTo (the delivery location Amazon priced the page for)
OffersoffersCount and lowestOfferPrice ("New (16) from $246.19"); with Offer list on: offers[] — isBuyBox, price, currency, condition, seller, sellerId, shipsFrom, sellerRating, sellerRatingsCount, sellerPositivePercent, delivery — and otherOffersCount (how many other offers Amazon lists besides the Buy Box offer)
Demand & rankrating, ratingsCount, boughtPastMonth (number) and boughtPastMonthText, bestsellerRank + bestsellerCategory (the first rank), bestsellerRanks[] (every rank with its category), isAmazonsChoice, bestSellerBadge
SearchsearchQuery, searchRank (organic position), isSponsored, isPrime (fast rows)
Runinput (your input line, to join results back), detailLevel (full / fast), scrapedAt, error (only on rows that explain a problem; null on product rows)

Fields Amazon does not show for a product are null — a price, a count or a rank is never guessed and never 0 when unknown. Fast rows carry the search-result fields only (no seller, rank, variations, bullets; brand only when the result shows a brand line, as fashion and toy results do).

Sample output

A row from an Apify platform test run (2026-10-01, offer list on; 2 of its 11 offers, 3 of its 21 variations and 3 of its 33 specification rows shown; images, isPrime, isSponsored, searchQuery and searchRank left out):

{
"asin": "B07CMS5Q6P",
"marketplace": "amazon.com",
"title": "Logitech G305 Lightspeed Wireless Gaming Mouse - Black",
"brand": "Logitech G",
"price": 29.99,
"currency": "USD",
"priceInCartOnly": false,
"listPrice": 49.99,
"listPriceLabel": "List Price",
"savingsPercent": 40,
"unitPrice": null,
"availability": "In Stock",
"inStock": true,
"buyBoxSeller": "Amazon.com",
"buyBoxSellerId": "ATVPDKIKX0DER",
"soldByAmazon": true,
"shipsFrom": "Amazon.com",
"fulfilledByAmazon": true,
"offersCount": 16,
"lowestOfferPrice": 25.1,
"otherOffersCount": 15,
"offers": [
{ "isBuyBox": true, "price": 29.99, "currency": "USD", "condition": "New", "seller": "Amazon.com", "sellerId": null, "shipsFrom": "Amazon.com", "sellerRating": null, "sellerRatingsCount": null, "sellerPositivePercent": null, "delivery": "FREE delivery Tuesday, October 6 on orders shipped by Amazon …" },
{ "isBuyBox": false, "price": 25.1, "currency": "USD", "condition": "Used - Acceptable", "seller": "Amazon Resale", "sellerId": null, "shipsFrom": "Amazon.com", "sellerRating": null, "sellerRatingsCount": null, "sellerPositivePercent": null, "delivery": "FREE delivery Tuesday, October 6 on orders shipped by Amazon …" }
],
"rating": 4.6,
"ratingsCount": 40122,
"boughtPastMonth": 10000,
"boughtPastMonthText": "10K+ bought in past month",
"bestsellerRank": 8,
"bestsellerCategory": "Video Games",
"bestsellerRanks": [{ "rank": 8, "category": "Video Games" }, { "rank": 1, "category": "PC Gaming Mice" }, { "rank": 1, "category": "Mac Gaming Mice" }],
"categories": ["Video Games", "PC", "Accessories", "Gaming Mice"],
"bullets": ["The next-generation optical HERO sensor delivers incredible performance and up t…", "…"],
"specifications": { "Connectivity Technology": "USB", "Additional Features": "Wireless", "Movement Detection": "Optical" },
"imageUrl": "https://m.media-amazon.com/images/I/51sg9BLSMTL._AC_SL1500_.jpg",
"parentAsin": "B0H5WRQK7Q",
"variationAsins": ["B07CMS5Q6P", "B086PDW7BB", "B09YJ6C61T"],
"variationCount": 21,
"variationAttributes": ["color", "style", "pattern"],
"isAmazonsChoice": true,
"bestSellerBadge": null,
"coupon": null,
"deliverTo": "Dallas 75216",
"url": "https://www.amazon.com/dp/B07CMS5Q6P",
"detailLevel": "full",
"input": "B07CMS5Q6P",
"scrapedAt": "2026-10-01T15:44:33.344Z",
"error": null
}

How it works

  • Full product page: the Actor reads the product page and stops reading after the Best Sellers Rank block (the reviews below it are not used); on amazon.com.tr, where a few product-information rows come after the rank, it reads up to the reviews.
  • Fast list data: Amazon's own search can look up a list of ASINs at once (s?rh=p_78:ASIN|ASIN…). The Actor asks for up to 48 ASINs per request and reads the search-result data of each. An ASIN the search does not return (for example a variation Amazon does not list) is read from its product page instead and still counted as fast data.
  • Offer list: Amazon's "All offers" panel for each product — the Buy Box offer and the first page of other offers.
  • Location and currency: Amazon prices a page for the delivery address. Every session asks for the local currency. On amazon.co.uk and amazon.de each datacenter session first sets a domestic postcode through Amazon's own location menu (London SW1A 1AA / Berlin 10115, or your zipCode, which also works on amazon.com); a residential session already has an IP in the country and uses Amazon's location for it unless you set zipCode. A page that still comes in another currency, or priced for a foreign location, is read again on a new session and then through a residential IP in that country; if it stays wrong it is left out with the reason, never delivered with a foreign price. A single search result priced in another currency is delivered without its prices (or, for an ASIN list, read from its product page).
  • Blocks: requests start on Apify datacenter proxy. Amazon's "Continue shopping" page and its bot-check page are answered without a browser. A blocked or incomplete page is retried on up to three new datacenter sessions and then through Apify residential proxy in the marketplace's country.

Input & options

FieldWhat it does
asinsASINs or product links, one per line. A link's own marketplace is used.
searchQueriesKeywords or Amazon search-result links (with filters). Organic results only.
marketplaceamazon.com (default), amazon.co.uk, amazon.de, amazon.com.tr — for bare ASINs and keywords.
detailLevelfull (default): product page per product. fast: search-result data, up to 48 ASINs per request.
includeOffersAlso read the offer list of each product (one extra request; separate event).
maxResultsPerSearchProducts per search (default 50, up to 500). Amazon stops after 7 result pages for most keywords: "water bottle" gave 304 organic results.
maxItemsStop after this many products in the run (empty = no limit).
zipCodeDelivery postcode in the marketplace's country. It applies to every marketplace in the run, so use it with one marketplace per run.
proxyConfiguration, residentialFallbackLeave the defaults.

Example inputs (copy & paste)

1. Product details for an ASIN list (US)

{ "asins": ["B07CMS5Q6P", "B004YAVF8I", "B09X7MPX8L"], "detailLevel": "full" }

2. Daily price check of a large ASIN list (fast, 48 per request)

{ "asins": ["B07CMS5Q6P", "B004YAVF8I", "B09X7MPX8L", "B09XBTZDX8"], "detailLevel": "fast" }

3. Buy Box and all sellers (brand / MAP monitoring)

{ "asins": ["B09X7MPX8L", "B07CMS5Q6P"], "includeOffers": true }

4. German prices in EUR for products you know by link

{ "asins": ["https://www.amazon.de/dp/B0BTYCRJSS", "https://www.amazon.de/dp/B000VJ8NEU"], "zipCode": "10115" }

5. Top results for a keyword on amazon.co.uk

{ "searchQueries": ["phone case"], "marketplace": "amazon.co.uk", "detailLevel": "fast", "maxResultsPerSearch": 20 }

Use cases

  • Brand protection and MAP monitoring: who holds the Buy Box, which sellers list your products, at what price, shipped by whom; items whose price Amazon shows only in the cart (priceInCartOnly, set only after three reads of the page show it that way — Amazon also shows this now and then for ordinary items).
  • Price monitoring and repricing: price, list price and lowest other offer for thousands of ASINs on a schedule (fast mode reads 48 per request; coupons come with full product pages).
  • Amazon seller and product research: Best Sellers Rank in every category, "bought in past month", rating and review counts, offer count.
  • Cross-border comparison: the same ASIN on amazon.com, amazon.co.uk, amazon.de and amazon.com.tr, each in its own currency.
  • Catalog enrichment: titles, brands, bullet points, specifications, images and variation families.

Performance

Measured on the Apify platform on 1 October 2026 with 1 GB memory (the default), datacenter proxy first:

RunProductsTime
Fast, ASIN list (US) + 2 keyword searches (DE)1,000 ASINs (993 from 21 multi-ASIN requests, 7 from their product pages) + 100 search results3 min 7 s
Fast, 26 keyword searches (US, UK, DE, TR)1,3006 min 33 s
Full product pages, 4 marketplaces, datacenter proxy only200 (all 200 delivered)8 min 14 s
Full product pages + offer list (US, UK, DE)110 (110 offer lists)4 min 17 s
Full product pages, US, while Amazon challenged many requests100 (all 100 delivered; 8 through residential proxy)7 min 31 s

Full pages run 8 at a time; how often Amazon answers with a bot check changes during the day, and a challenged page costs one or more extra requests. Peak memory on the current build: 170–410 MB in runs of 60 to 1,300 products.

Data quality

Share of delivered product rows with the field filled (Apify platform runs, 1 October 2026; a field is empty when Amazon does not show it for that product):

Fieldamazon.com (100)amazon.co.uk (50)amazon.de (50)amazon.com.tr (30)
Price (local currency)97%100%96%100%
Buy Box seller + seller ID99%100%94%100%
Best Sellers Rank93%96%94%100%
Rating + ratings count99%100%98%100%
Bought in past month94%98%90%60%
List / reference price51%46%50%10%

The table comes from test runs on builds 0.1.1–0.1.5; a later run of 56 US products (build 0.1.7) gave price 95%, Buy Box seller 95%, Best Sellers Rank 91%, bought in past month 82%.

Fast rows (1,300 search results in four marketplaces and 1,000 US ASINs): price 98–99%, rating 99–100%, image 100%, bought in past month 82–92% (amazon.com.tr 60%; amazon.de measured in a later run after a fix). Titles are product names also on fashion and toy results, whose brand line goes to brand (150 such results checked on build 0.1.6).

  • None of the 3,083 priced product rows and 583 priced offers in the test runs came in another currency. A page in another currency or priced for a foreign location is not delivered with that price.
  • Currency is read from the price on the page; only a price Amazon prints without any currency sign gets the marketplace's currency. Numbers Amazon shows as text are converted with the marketplace's own format ("1.682,00TL", "(7.407)", "10K+", "4 B"); anything that cannot be read stays null.
  • Each (marketplace, ASIN) appears once per run.
  • Parsers are tested offline on 36 responses recorded from all four marketplaces (product pages, offer panels, multi-ASIN searches, keyword searches, bot-check and location pages), including books, apparel, Amazon-sold and third-party offers, and products without a Best Sellers Rank.
  • A missing value is mostly Amazon not showing it (no list price, no "bought" badge, no rank on brand-store fashion pages). It can also be a reduced product page Amazon served after a bot check: in the test runs, 8 of 38 rows without a rank had one in another run. The Actor reads such pages again on another session and delivers a reduced page only if no complete one comes.

Pricing

Pay per event (the prices, and any per-run start fee, are on the Pricing tab):

  • product — one product row read from its product page (detailLevel: full).
  • product-lite — one product row from Amazon's search results (detailLevel: fast, and keyword searches in fast mode). An ASIN the fast lookup does not return and that is read from its product page is still one product-lite.
  • offers — on top of the row, when the offer list was requested and Amazon returned at least one offer.

Rows that explain a problem (an invalid input line, an ASIN Amazon does not show, a search without results, a page that stayed in the wrong currency) carry the reason in error and are not charged. See the Pricing tab for the prices.

Integrations

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('foxlabs/amazon-product-scraper').call({ asins: ['B07CMS5Q6P'], includeOffers: true });
const { items } = await client.dataset(run.defaultDatasetId).listItems();

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("foxlabs/amazon-product-scraper").call(run_input={"asins": ["B07CMS5Q6P"], "detailLevel": "fast"})
items = client.dataset(run["defaultDatasetId"]).list_items().items

Make, Zapier, n8n, Google Sheets and webhooks work through Apify's integrations; schedule the same input daily to follow prices and Buy Box changes.

FAQ

Which marketplaces? amazon.com, amazon.co.uk, amazon.de and amazon.com.tr. Other Amazon stores are reported as "not supported yet" (free row).

Full or fast? Full reads every product page (Buy Box seller, rank, variations…). Fast reads Amazon's search results for up to 48 ASINs per request — much faster (1,000 ASINs in about 3 minutes), charged as the lighter product-lite event, with price, list price, rating, ratings count and bought-last-month.

Why is price empty for some products? Amazon shows no Buy Box price (no featured offer, out of stock), or shows the price only in the cart (priceInCartOnly: true). The Actor never guesses a price.

Why does the Buy Box seller change between runs? Amazon rotates the Buy Box between sellers; each row is what Amazon showed at scrapedAt.

Are reviews included? No. Amazon shows its full review lists only to signed-in users; the rating, ratings count and "bought in past month" are included.

Which delivery address are prices for? On amazon.co.uk and amazon.de a London / Berlin postcode unless you set zipCode (a page read through a residential IP in the country, without zipCode, is priced for that IP's location); on amazon.com and amazon.com.tr the location Amazon guesses from the request's IP (for example "Tempe 85280"), or your zipCode. deliverTo shows the location the page was priced for whenever Amazon prints one.

Why is the Best Sellers Rank empty for some products? Amazon does not show a rank on every product page (brand-store fashion pages, for example, have none). The rank is never filled from another page.

soldByAmazon is true but buyBoxSellerId is not Amazon's usual ID? On amazon.co.uk some products sold by "Amazon" carry another merchant ID on the page (for example vitamins). The Actor delivers the seller name and ID as Amazon shows them.

Do I need a proxy or an Amazon account? No. The default Apify Proxy setting is all you need.

Can I get the same product from several marketplaces? Yes — give product links from each marketplace; each link is read on its own store.

What does bestsellerRank mean when there are several? It is the first rank Amazon lists (usually the main category); bestsellerRanks has every rank with its category.

Troubleshooting

  • A row has error: "not-found: …": the ASIN has no product page on that marketplace (removed, or sold on another Amazon store).
  • A row has error: "invalid-input: …": the line is not an ASIN or an Amazon product link, or the marketplace is not supported yet.
  • Fewer search results than asked: Amazon lists fewer organic results for that keyword (sponsored results are left out).
  • Everything empty: the rows with error give the reason for each input line; the SOURCE_REPORT record in the run's key-value store has the requests per marketplace (with blocked and failed pages), the totals (delivered, not found, failed) and the outcome of each search.
  • Public product pages only: no login, no account data, no reviews.
  • Amazon's Conditions of Use restrict automated access; you are responsible for how you use the data. Product data on EU marketplaces may be protected by database rights.
  • Prices, Buy Box and offers change minute to minute; a row is a snapshot at scrapedAt.
  • The offer list covers the Buy Box offer and Amazon's first page of other offers (about 10); otherOffersCount says how many other offers Amazon lists in total.

Support

Questions, a marketplace you need, or a field that looks wrong: open an issue on the Actor's Issues tab or write to info@foxlabs.com.tr.

Changelog

0.1 — 2026-10-01

First version: ASIN lists, product links and keyword searches on amazon.com, amazon.co.uk, amazon.de and amazon.com.tr; full product pages or fast search-result data (48 ASINs per request); optional offer list; local currency and domestic delivery location; product, product-lite and offers events. Fixes made during the private test runs before release are listed in CHANGELOG.md.

Built by foXLabs.