Amazon Product Lookup: amazon product scraper from $4/1k
Pricing
from $3.04 / 1,000 product founds
Amazon Product Lookup: amazon product scraper from $4/1k
Amazon product scraper and ASIN lookup API. Paste ASINs or product links, get one flat row each: title, brand, price, currency, list price, rating, ratings count, availability, feature bullets, category, image and Best Sellers Rank, from six marketplaces. Never charged for a miss.
Pricing
from $3.04 / 1,000 product founds
Rating
0.0
(0)
Developer
Adrian Voss
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Amazon Product Lookup: amazon product scraper from $2/1k
You give this actor a list of Amazon ASINs or product links. For each one it fetches that product's live detail page and returns a single flat row: title, brand, price and currency, list price where the listing is discounted, star rating, ratings count, availability, the feature bullets, the category breadcrumb, the main product image, and the Best Sellers Rank line. It works across six marketplaces, amazon.com, amazon.de, amazon.co.uk, amazon.fr, amazon.es and amazon.it, and a full product URL always keeps its own marketplace, so one run can mix a US ASIN with a German one. Nothing is stored between runs: every row is read from the page as it looked at fetch time.
Who it's for
Ecommerce sellers and agencies who need to watch a competitor's catalogue without opening forty browser tabs: price, availability and rank on the ASINs that matter, on whatever cadence you schedule. Repricing and market research teams pulling a daily snapshot of a category's top ASINs into a sheet or a warehouse table. Affiliate and content publishers refreshing the price, image and star rating on product pages that would otherwise go stale. Brand protection teams tracking whether their own ASINs are in stock, and at what price, on each European marketplace. Retail analysts who want the Best Sellers Rank line for a set of ASINs over time. And AI agents, which get a stable, flat, one row per ASIN shape over a plain HTTP endpoint, with no pagination and no nested payload to unpick.
Why this one
- One row per ASIN, and the field names never move.
asin,title,brand,price,currency,listPrice,rating,reviewCount,availability,bulletPoints,category,imageUrl,bestSellerRankText,productUrl. Apify's MCP layer infers an actor's output shape from its recent runs, so a renamed field breaks every agent that calls it. These are frozen. - Never charged for a miss. A dead ASIN, a bot check, or an input that is not an ASIN still
produces a row with a
statusand a plain-Englishmessage, and costs nothing. See "Price" below for the found-row rate. - A missing price is reported as missing, not invented. A discontinued listing with no buy
box comes back with the title, rating, reviews and bullets it does have, and
price: null. That is a real product row. Nothing on it is guessed. - Six marketplaces, mixable in one run. Pick a marketplace for bare ASINs, or paste full
product links and let each one carry its own.
marketplacecomes back on every row so you always know which storefront a price came from. - Both price layouts are handled. Amazon serves the buy box as an embedded price JSON blob
on some pages and as older accessibility markup on others, and both spellings of the decimal
separator (
1,234.56on .com and .co.uk,1.234,56on .de, .fr, .es and .it). All four combinations parse to the same number. - The list price is read from the buy box only. A detail page carries dozens of struck
through prices belonging to recommendation carousels.
listPriceis scoped to this product's own price block, so it is either this ASIN's list price ornull, never an accessory's.
What you get
Every row starts with the same five fields, then adds the columns you selected in "Which columns do you want?" (all included by default).
| Field | Type | Description |
|---|---|---|
query | text | The ASIN or product link you submitted, echoed back |
found | boolean | true if a product detail page was read for this input |
status | text | OK on a hit; NOT_FOUND, BLOCKED, BAD_FORMAT or REQUEST_FAILED on a miss |
message | text | Plain-English reason for a miss, present only when found is false |
scrapedAt | ISO 8601 datetime | When the page was fetched |
asin | text | The 10-character ASIN |
marketplace | text | Which storefront the row came from: com, de, co.uk, fr, es or it |
title | text | The product title as shown on the detail page |
brand | text | Brand or store name from the byline under the title |
price | number | Current buy box price as a plain number, or null when there is no buy box |
currency | text | ISO currency code for price, read from the page itself |
listPrice | number | The struck through list price, when the listing is discounted |
rating | number | Star rating out of 5 |
reviewCount | number | How many ratings the listing has |
availability | text | The availability line, for example "In Stock" |
bulletPoints | array | The feature bullets, in page order, up to 20 |
category | text | Category breadcrumb, joined with > |
imageUrl | link | Largest available main product image |
bestSellerRankText | text | The Best Sellers Rank line as printed, for example "#332 in Home & Kitchen" |
productUrl | link | Canonical product page for this ASIN on this marketplace |
Deselect any column in the Input tab to drop it from every row. query, found, status,
message and scrapedAt always stay.
Price
$4 per 1,000 ASINs, plus a $0.00005 start fee. Misses (found:false) are never charged.
1,000 ASINs through this actor: ~$4 if every one is found, less if some are not. The leading Amazon product scraper on the Store lists $5 per 1,000 products.
How to use
- In the Apify Console. Open the actor page and click Start — the
asinsfield is already pre-filled with a working example. Results land in the run's dataset as soon as each item is found. - Via the API. Call it directly with a POST request — no Console needed once you have an API token:
curl "https://api.apify.com/v2/acts/accountable_eel~amazon-product-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \-X POST \-H "Content-Type: application/json" \-d '{"asins":["B00FLYWNYQ","B07FZ8S74R"]}'
- On a schedule. Save this actor as an Apify Task with the input you want, then add a Schedule (hourly, daily, weekly) so it runs on its own — no server of your own required.
- Paste your ASINs or product links into "ASINs or Amazon product URLs", one per line.
- Pick the marketplace for bare ASINs. Full product links ignore this and keep their own.
- Set the proxy country, under "Advanced", to that marketplace's country: US for amazon.com,
Germany for amazon.de, and so on. Amazon prices a page for the delivery locale of the IP it
sees, so a US proxy on amazon.com returns USD. The
currencycolumn always reports what the page actually showed, so a mismatch is visible rather than silent. - Leave "Try it first" on for the first run. It caps the run at 5 ASINs so you can see the output shape before spending on the full list.
- Turn "Try it first" off and press Start to run the whole list.
Typical uses: a daily price and availability snapshot of a competitor's ASINs, refreshing prices and images on an affiliate site, checking which of your own ASINs are in stock on each European marketplace, or pulling the Best Sellers Rank line for a category's top sellers.
Input
{"asins": ["B00FLYWNYQ","B07FZ8S74R"]}
One ASIN or product link per line. A link keeps its own marketplace, so you can mix amazon.com and amazon.de in the same list; a bare ASIN uses the marketplace you pick below. Accepted formats: B00FLYWNYQ, https://www.amazon.com/dp/B00FLYWNYQ, https://www.amazon.de/gp/product/B07FZ8S74R.
Sample output
One row per ASIN:
| query | found | status | asin | marketplace | title | brand | price | currency | listPrice | rating | reviewCount | availability | bulletPoints | category | imageUrl | bestSellerRankText | productUrl | scrapedAt |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| B0CKKD1GXW | false | NOT_FOUND | <list price (struck through)> | 2026-09-08T17:43:18.595Z |
A real row from amazon.com:
| query | found | asin | title | brand | price | currency | rating | reviewCount | availability | bestSellerRankText |
|---|---|---|---|---|---|---|---|---|---|---|
| B00FLYWNYQ | true | B00FLYWNYQ | Instant Pot Duo 6 Qt 7-in-1 Electric Pressure Cooker, Stainless Steel | Instant Pot | 33611.05 | HUF | 4.7 | 180289 | In Stock | #332 in Home & Kitchen |
That row was captured without a proxy from a Hungarian exit IP, which is why the currency is HUF. Set the proxy country to match the marketplace and the same ASIN returns USD.
An ASIN with no live listing, or a bot check, comes back as a row with found: false and a
status and message explaining which, and is never billed.
Use it from Clay, n8n, Make, or an AI agent
This actor runs synchronously over plain HTTP — call it directly from a script, a workflow tool, or an AI agent, no Apify Console needed once you have an API token.
curl "https://api.apify.com/v2/acts/accountable_eel~amazon-product-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \-X POST \-H "Content-Type: application/json" \-d '{"asins":["B00FLYWNYQ","B07FZ8S74R"]}'
n8n. Add an HTTP Request node: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~amazon-product-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body Content Type JSON, JSON Body {"asins":["B00FLYWNYQ","B07FZ8S74R"]} (swap in an expression from an earlier node for a real value).
Clay. Add an "HTTP API" column: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~amazon-product-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body {"asins":["{{ASIN}}"]}, mapping the row's ASIN into the asins array.
MCP. In Claude, Cursor, or any MCP client with the Apify MCP server, ask for "Amazon Product Scraper: ASIN Lookup API | Apify" — the agent will find and run this actor.
Tips
- Keep "Max concurrency" low. It defaults to 3 and caps at 10 on purpose: Amazon rate-limits by IP, and a burst that trips its bot check costs you retries and returns nothing, while a slower run gets the whole list.
- Set the proxy country to the marketplace's country. It is the single setting that decides which currency the prices come back in.
- Full product links are the safest input when your list spans marketplaces, because each link carries its own storefront and cannot be sent to the wrong one.
- An ASIN listed on amazon.com is not always listed on amazon.de. A
NOT_FOUNDon one marketplace and a row on another is normal, not a failure. - Use "Hide rows with no result" when you are feeding a table that only wants live listings, and leave it off while you are still debugging an input list. Misses are free either way.
bestSellerRankTextis returned as Amazon prints it, including several ranks in one string. Parse it downstream rather than expecting a single number, because the shape differs by category and by marketplace language.
vs. alternatives
| What it costs | What you get | Trade-off | |
|---|---|---|---|
This actor (amazon-product-lookup) | $0.004 per found ASIN, $0.00005 actor start, nothing for a miss | One flat row per ASIN: title, brand, price, currency, list price, rating, ratings count, availability, feature bullets, category, image and Best Sellers Rank, on six marketplaces | Product detail pages only. It does not search, does not walk a category or seller listing, and does not return review text or offer-level seller data. Give it ASINs; it will not find them for you. |
| junglee/Amazon-crawler | $5 per 1,000 products | The broadest Amazon crawler on the Store, including search and category crawling rather than just detail pages, and 1,904 monthly users behind it | If you need to discover ASINs rather than look them up, that is the job it does and this one does not. It is rated 3.80 with an 8.6% run failure rate as of September 2026; this actor is narrower and charges nothing when a lookup returns nothing. |
| Amazon Product Advertising API | Free, but gated | The same catalogue data from Amazon directly, with offer and variation detail this cannot reach | It is the official source and it is better data. It also requires an Associates account in good standing with qualifying sales, and it is regional. If you have PA-API access, use it. This exists for everyone who cannot get it, or who wants six marketplaces without six sets of credentials. |
| Doing it yourself | Your time, plus a residential proxy budget and the maintenance | The same fields | Amazon serves two different price layouts, four decimal-separator and currency conventions, a captcha wall under load, and a page whose main image is not in the src attribute. Handling those, plus the retry and miss-classification logic, is what this absorbs. |
Prices and ratings for third-party tools are their published figures as of September 2026 and are not tracked here. Check the vendor before relying on the comparison.
FAQ
Why is price null on a row that otherwise looks fine?
The listing has no buy box: it is discontinued, temporarily unavailable, or sold only through
third-party offers. The rest of the row (title, brand, rating, reviews, bullets) is real and
is returned. A price is never guessed to fill the column.
Why did I get a price in the wrong currency?
Amazon prices a page for the delivery locale of the IP that requested it, not for the domain.
Set the proxy country under "Advanced" to the marketplace's country. The currency column
always reports what the page showed, so you can spot a mismatch immediately.
Am I charged for a miss? No. The charge fires only when a product detail page was actually read. A dead ASIN, a bot check, an input that is not an ASIN, and a failed request all produce a row (unless you turn on "Hide rows with no result") and none of them cost anything.
What does BLOCKED mean?
Amazon served its bot check instead of the product page, or returned HTTP 403, 429 or 503.
Lower "Max concurrency", make sure the proxy group is set to Residential, and rerun. Blocked
rows are free, so a retry only costs the actor start.
Can it search Amazon, or crawl a category or a seller? No. This is a lookup: ASINs in, one row each out. It has no search, no category walk and no seller page crawl. If you need to discover ASINs, find them first and feed them here.
Does it return review text? No. It returns the star rating and the ratings count from the detail page, not individual reviews.
Which marketplaces are supported? amazon.com, amazon.de, amazon.co.uk, amazon.fr, amazon.es and amazon.it. Bare ASINs use the marketplace you pick in the Input tab; full product links always use their own.
Is this a live read or a stored database? Live. Every run fetches the current detail page, so a price that changed an hour ago shows the new one, and a listing that went out of stock shows that. Nothing is cached between runs.
Can an AI agent call this directly? Yes. It is on the Apify MCP server, so an agent in Claude, Cursor or any MCP client can find and run it by name, or you can call the REST endpoint above from any script or workflow tool.
Is this GDPR-relevant? No personal data is involved. It reads a public product page: catalogue and pricing metadata about a product, not information about any individual.
Related actors
- GTIN / Barcode Lookup: resolve an EAN, UPC or GTIN barcode to a product, brand and category from open product data.
- Google Play App Lookup: the same one row per identifier shape for Android app listings.
- Apple App Store Lookup: app title, price, rating and ratings count from Apple's official lookup API.
- Shopify Store Lookup: storefront and product detail for the same kind of catalogue work outside Amazon.