Amazon Product Data & Price by EAN/UPC
DeprecatedPricing
from $0.90 / 1,000 lookups
Amazon Product Data & Price by EAN/UPC
DeprecatedLook up Amazon products by EAN, UPC, GTIN or ISBN: ASIN, title, brand, images, bullet points, technical details, buy box price and seller offers. 23 marketplaces, up to 100 per run.
Pricing
from $0.90 / 1,000 lookups
Rating
0.0
(0)
Developer
Anyprice
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
a day ago
Last modified
Categories
Share
Get Amazon product data from an EAN or UPC: the matching ASIN, title, brand, images, bullet points, technical details, the buy box price and the seller offers. It works on 23 Amazon marketplaces, with up to 100 barcodes or ASINs per run.
The Actor is built for catalogue work. You have barcodes from a supplier, an ERP or a product feed, and you want the Amazon listing data behind them as structured JSON.
What it does
For each identifier you enter, the Actor:
- works out what it is: EAN-8, EAN-13, UPC-12, GTIN-14, ISBN-13, JAN, ISBN-10 or ASIN, and checks barcodes against their check digit
- for a barcode, searches Amazon for it and takes the first organic search result as the match (sponsored results are skipped); for an ASIN or ISBN-10, it goes straight to that product
- reads the offer list: buy box, seller offers from the first page (about 10), and Amazon's total offer count
- with Include product details switched on (the default here), also reads the product page: brand, description, bullet points, images, categories with browse node IDs, technical details, the GTIN when Amazon prints one, stock, and the Amazon's Choice and Best Seller flags
You can mix barcodes and ASINs in one list. Duplicates are removed, including a UPC-12 and the same code written as an EAN-13 with a leading zero.
Who it is for
- Marketplace sellers onboarding a new supplier range: turn the supplier's EAN list into ASINs, titles and images in one run.
- PIM and catalogue teams filling gaps in product data (brand, bullet points, technical details) from Amazon.
- Sourcing and arbitrage research: see the current price and how many sellers already offer a product before buying stock.
- Agencies auditing a brand's Amazon presence across several marketplaces with the same EAN list.
Input
| Field | Type | Default | Notes |
|---|---|---|---|
identifiers | array of strings | (required) | 1 to 100 EANs, UPCs, GTINs, ISBNs, JANs or ASINs, one per line |
marketplace | string | de | One Amazon marketplace per run |
zipcode | string | empty | Delivery location for prices and shipping. Empty means the capital (10115 Berlin on amazon.de) |
includeDetail | boolean | true | Also read the product page. Charged as a separate detail event |
Marketplaces: de, us, gb (or uk), fr, it, es, nl, be, pl, se, ie, tr, ca, mx, br, jp, in, au, sg, ae, sa, eg, za.
ZIP codes only work on marketplaces that localize by ZIP: de, us, gb/uk, fr, it, es, ca, jp, in, ie, za. The format is checked before the run starts. A ZIP code for another marketplace, or one in the wrong format, stops the run with an input error and nothing is looked up.
Input example
{"identifiers": ["9120018350599", "4006381333931", "B001AXLDDO"],"marketplace": "de","zipcode": "80331","includeDetail": true}
Output
One dataset row per identifier, in input order. Key fields:
| Field | Meaning |
|---|---|
query | Your input value, as you wrote it |
operation | search-by-gtin (a barcode was searched) or offers-by-asin (you gave an ASIN or ISBN-10). null on invalid rows |
status | found, not_found, invalid or error |
result.asin, result.name, result.url, result.image | The matched product |
result.rating, result.rating_count | Customer rating and number of ratings |
result.buy_box | The offer that holds the buy box (same fields as an offer), or null |
result.offers | Seller offers from page 1: seller, price, shipping, total, condition, FBA, Prime, stock |
result.offers_count | Amazon's offer count across all pages; offers_truncated is true when page 1 does not show them all |
result.detail | Product page data, or null when details were off or not available |
result.detail.gtins | Barcodes Amazon prints on the product page. Use them to confirm a barcode match |
Example found row with details (prices are illustrative):
{"query": "9120018350599","operation": "search-by-gtin","country": "de","status": "found","result": {"asin": "B001AXLDDO","name": "Träumeland T014301 - Babymatratze Regenbogen 60 x 120 cm","url": "https://www.amazon.de/dp/B001AXLDDO","image": "https://m.media-amazon.com/images/I/41iYiseYxWL.jpg","rating": 4.6,"rating_count": 92,"buy_box": { "position": 1, "seller_id": "A1EXAMPLE0SELLER", "shop_name": "Example Kindermöbel", "price": 69.95, "shipping": 0, "total": 69.95, "currency": "EUR", "is_fba": false, "is_prime": false, "is_buy_box": true, "stock": 25 },"offers_count": 5,"offers_truncated": false,"offers": [{ "position": 1, "seller_id": "A1EXAMPLE0SELLER", "shop_name": "Example Kindermöbel", "condition": "new", "currency": "EUR", "price": 69.95, "shipping": 0, "total": 69.95, "is_fba": false, "is_prime": false, "is_buy_box": true, "stock": 25 }],"detail": {"brand": "Träumeland","parent_asin": "B001AXLDDO","description": null,"about_item": ["Bezug ist abnehmbar, waschbar bis 60°C und schontrocknergeeignet", "für Allergiker geeignet"],"images": ["https://m.media-amazon.com/images/I/51c1nQ-4D3L._SL1080_.jpg"],"categories": [{ "name": "Baby", "node": "355007011" }, { "name": "Matratzen", "node": "3969001031" }],"gtins": ["09120018350599"],"technical_details": { "Marke": "Träumeland", "Größe": "60 x 120 cm", "Material": "100% Baumwolle" },"price": 69.95,"list_price": null,"currency": "EUR","in_stock": true,"availability_text": "Auf Lager","sold_by": "Example Kindermöbel","other_sellers_count": 5,"sales_volume": null,"amazon_choice": null,"best_seller": null}}}
The offer objects above are shortened. Each offer also has shop_url, shop_review_rating, shop_review_count, condition_text, list_price, shipping_note, availability_text, delivery_min_hours, delivery_max_hours and ships_from. stock is the quantity Amazon lets a buyer put in the cart, so read it as "at least this many", not as the seller's whole inventory.
Billing
Pay per event. The Pricing tab shows the current rates. Two events can be charged:
ean-lookup: once for every row with statusfoundornot_founddetail: once for everyfoundrow that actually comes back with product details
invalid and error rows are free. Asking for details is not charged by itself; only a row that contains them is. Because includeDetail is on by default in this Actor, switch it off if you only need the ASIN and offers.
Rows are written first and charged afterwards. If your maximum cost per run is reached, you still get every row, and only what fits the budget is charged.
Statuses and errors
status | Meaning | Charged |
|---|---|---|
found | Amazon has a matching product; result is filled | yes |
not_found | No organic search result for the barcode, or the ASIN does not exist on this marketplace | yes |
invalid | Wrong length or check digit, or not an ASIN. Nothing was looked up | no |
error | The lookup failed. See errorCode | no |
A product with no sellers at the moment is found, with offers: [] and buy_box: null.
errorCode | statusCode | Meaning |
|---|---|---|
invalid_input | 400 | On invalid rows: why the value was rejected |
free_limit_reached | 402 | Your free plan's result allowance does not cover these values |
timeout | 408 | Amazon did not answer before the run's deadline |
concurrency_limit_reached | 429 | Your other runs of this Actor were using all lookup capacity |
internal_error | 500 | Amazon could not be fetched for this value right now |
Limits
- 100 identifiers per run after de-duplication, one marketplace per run.
- Up to 100 Amazon lookups from this Actor can be in progress for your account at once. When that is full, the Actor waits (15 to 240 seconds, five tries) before returning
concurrency_limit_reached. - Each run has an 890-second budget for lookups. Unfinished values become free
timeoutrows. Give the run a timeout of at least 960 seconds. - On a free Apify plan the number of results is limited. Values that do not fit come back as free
free_limit_reachedrows. - The run always finishes as Succeeded. Check each row's
status.
FAQ
How reliable is the EAN to ASIN match?
The Actor takes Amazon's first organic search result for the barcode. That is usually the right product, but Amazon search can return something else. Compare result.name with your own data, or check that your barcode appears in result.detail.gtins (Amazon only prints a GTIN on some product pages).
Can I send ASINs I already know? Yes. ASINs and ISBN-10s skip the search and go straight to the offers. They are charged the same way as barcodes.
Why is detail null although details were on?
The product page could not be read for that product. You still get the offers, and no detail event is charged for that row.
Why is Austria not in the list?
Austria has no Amazon marketplace of its own, so there is no at option.
Is there a price history? No. Each run is a snapshot. Schedule the Actor and keep the datasets if you need a history.
Questions or higher limits: support@anyprice.dev