Amazon EAN to ASIN & Offers | $1/1K avatar

Amazon EAN to ASIN & Offers | $1/1K

Pricing

from $1.00 / 1,000 ean / asin lookups

Go to Apify Store
Amazon EAN to ASIN & Offers | $1/1K

Amazon EAN to ASIN & Offers | $1/1K

$1 per 1,000 lookups, up to 100 per run. Turn EANs, UPCs, GTINs, ISBNs or ASINs into Amazon's matching ASIN with its buy box and seller offers: price, shipping, FBA, stock and seller rating. 23 marketplaces.

Pricing

from $1.00 / 1,000 ean / asin lookups

Rating

0.0

(0)

Developer

PricePirate

PricePirate

Maintained by Community

Actor stats

1

Bookmarked

9

Total users

5

Monthly active users

3 days ago

Last modified

Share

Amazon EAN to ASIN, Price & Offers | $1/1K

Turn a list of barcodes into Amazon data. For every EAN, UPC, GTIN, ISBN or JAN you give it, this Actor finds the product on Amazon and returns its ASIN, its buy box, and the seller offers on the first page of Amazon's offer list: price, shipping, total, condition, FBA, Prime, stock and seller rating. If you already have ASINs, you get their offers directly.

$1 per 1,000 lookups on every Apify plan, 23 Amazon marketplaces, up to 100 identifiers per run.

Good for catalogue matching (EAN → ASIN), price monitoring and repricing, arbitrage and sourcing research, marketplace onboarding, and checking who holds the buy box on your own products.

✓ What you get

  • EAN → ASIN for EAN-8, EAN-13, UPC-12, GTIN-14, ISBN-13 and JAN barcodes
  • Offers by ASIN: give an ASIN (or a book's ISBN-10) and the search is skipped
  • Buy box: seller, price, shipping and total of the offer that wins it
  • Up to about 10 offers per product, each with seller name, seller ID and seller-page link, seller rating, condition, price, shipping, total, delivery estimate, FBA, Prime, stock and a buy-box flag
  • Offer count across all pages, with a flag when page 1 does not show them all
  • Product details (optional): brand, description, bullet points, images, categories with browse-node IDs, technical details, the GTIN when Amazon prints one, stock, Amazon's Choice and Best Seller flags

Mixed input is fine: the Actor detects each value's type, checks barcodes against their check digit, and removes duplicates (a UPC-12 and the same code as an EAN-13 with a leading zero count once).

💻 Input

{
"identifiers": ["4006381333931", "9120018350599", "B001AXLDDO"],
"marketplace": "de",
"zipcode": "80331",
"includeDetail": false
}
  • identifiers (required): 1 to 100 values, one per line. Split longer lists into several runs.
  • marketplace (default de): one of de, us, gb, fr, it, es, nl, be, pl, se, ie, tr, ca, mx, br, jp, in, au, sg, ae, sa, eg, za, or uk (an alias for gb). One marketplace per run. Austria (at) is not an Amazon marketplace and is unsupported.
  • zipcode (optional): the delivery location that prices, shipping and offers are shown for. The default is the capital (10115 Berlin on amazon.de, 75001 Paris, SW1A 1AA London, …). Only marketplaces that localize by ZIP code take one: de, us, gb, fr, it, es, ca, jp, in, ie, za. The format is checked before the run starts.
  • includeDetail (default false): also fetch the product page of every match. Charged separately, see Pricing.

💻 Output

One dataset item per input value:

{
"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, "shop_name": "tiSsi Kindermöbel", "price": 69.95, "shipping": 0, "total": 69.95, "…": "…" },
"offers_count": 5,
"offers_truncated": false,
"offers": [
{
"position": 1,
"seller_id": "ACQ8QTNHIZQJ8",
"shop_name": "tiSsi Kindermöbel",
"shop_url": "https://www.amazon.de/sp?seller=ACQ8QTNHIZQJ8",
"shop_review_rating": 3.5,
"shop_review_count": 7,
"condition": "new",
"condition_text": "Neu",
"currency": "EUR",
"price": 69.95,
"list_price": null,
"shipping": 0,
"total": 69.95,
"shipping_note": "für qualifizierte Erstbestellung",
"availability_text": "6. - 7. Oktober",
"delivery_min_hours": 24,
"delivery_max_hours": 72,
"ships_from": "tiSsi Kindermöbel",
"is_fba": false,
"is_prime": false,
"is_buy_box": true,
"stock": 25
}
],
"detail": null
}
}
  • operation: search-by-gtin (the barcode was searched on Amazon) or offers-by-asin (you gave the ASIN).
  • offers_count is Amazon's count across all offer pages. When it is larger than the number of rows in offers, offers_truncated is true.
  • shipping is the shipping charge Amazon shows for the delivery location. shipping_note keeps Amazon's condition text, because free shipping is often conditional ("for qualifying first orders").
  • stock is the quantity Amazon lets a buyer add to the cart. Amazon may cap it, so treat it as "at least", not as the seller's full inventory.

The Overview table in the Console shows query, status, ASIN, name, buy-box price and offer count; the Offers table has one row per offer.

💻 Statuses & errors

statusMeaningCharged
foundA product matched; result has its offersyes
not_foundAmazon's search had no organic result for the barcode, or the ASIN does not exist on this marketplaceyes
invalidNot a valid barcode (wrong check digit or length) or ASIN; nothing was looked upno
errorThe lookup failed; see errorCodeno

A product with no sellers right now is found with offers: [] and buy_box: null.

errorCodestatusCodeMeaning
invalid_input400On invalid items: why the value was rejected
free_limit_reached402This operation's whole batch exceeds the remaining lifetime result allowance
concurrency_limit_reached429This account's other Amazon runs hold the lookup capacity; try smaller batches or wait
timeout408Amazon did not answer in time
internal_error500Amazon could not be fetched for this value right now

Errors are never charged. Run the failed values again later.

💰 Pricing

Pay per event, the same price on every Apify plan:

EventPriceWhen
ean-lookup$1.00 per 1,000each found or not_found item
detail$1.00 per 1,000each item that includes product details (includeDetail)

invalid and error items are free. All completed results are delivered even if your maximum cost per run leaves no budget to charge them. Detail is charged only when successful detail data is actually returned, never just because includeDetail was requested. There are no separate platform usage charges.

Example: 100 barcodes, of which 60 are found, 38 are not found, 1 is invalid and 1 times out: you pay for 98 lookups, $0.098. With includeDetail you also pay for the 60 details, $0.158 in total.

Free Apify plans get 50 lifetime completed results per account on Amazon. The gateway owns this quota, separately from Idealo and Google Shopping. found and not_found consume it, including uncharged results; errors and invalid inputs do not. Old Actor run counters/datasets are not imported. Each gateway job reserves its whole batch before work, with no truncation. If that batch will not fit, all its values receive free_limit_reached.

Mixed barcode/ASIN input uses two operation-specific jobs. Admission is atomic per job, not per mixed run: one group can complete and consume quota while the other is refused. Which group wins can depend on concurrent admissions. For example, with 50 free results remaining a 40-GTIN + 40-ASIN run can admit one 40-value job and reject the other, not reject all 80 together. Use single-operation runs if you need a single admission decision.

Timing and run outcome

Up to 100 identifiers per run and 100 outstanding Amazon lookups per Apify account (separate from the gateway's non-Amazon pool). A 429 waits 15, 30, 60, 120 and 240 seconds while budget remains. Both operation jobs share an 890-second admission/polling budget, poll every 15 seconds, and salvage finished partials at deadline. Missing results become free timeout items. Requests have a 30-second timeout; set Actor and saved-task timeouts to 960 seconds for salvage and delivery headroom.

Runs always end succeeded, including total failure, with error items and an explanation in the log/status message. Restart behavior mirrors Idealo: input is re-submitted, not resumed from a persisted gateway job. A restart can repeat dataset items, quota consumption and charges; avoid unnecessary restarts.

📬 Contact & support

Questions or higher limits: support@pricepirate.com