EAN / GTIN Product Image Extractor avatar

EAN / GTIN Product Image Extractor

Pricing

from $8.00 / 1,000 product image set founds

Go to Apify Store
EAN / GTIN Product Image Extractor

EAN / GTIN Product Image Extractor

Resolve EAN-8, EAN-13, UPC-A, and GTIN-14 barcodes into product image galleries with title, brand, and provenance. HTTP-first against Open Food/Beauty/Pet/Products Facts plus UPCitemdb free plan. Validates GS1 checksums, batches codes, never fabricates images. MCP-ready.

Pricing

from $8.00 / 1,000 product image set founds

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

9 days ago

Last modified

Share

Catalog, PIM, and marketplace teams paste EAN-8, UPC-A, EAN-13, or GTIN-14 barcodes and receive primary plus gallery product image URLs, with product name and brand when public catalogs expose them. Each row includes source provenance and a collection timestamp so agents can trust what they store. Built for enrichment workflows on Apify with scheduling, API, and MCP access.

The Actor is HTTP-first against free Open Facts catalogs (food, beauty, pet, and general packaged goods) with a bounded UPCitemdb Explorer free-plan fallback. It validates GS1 check digits, deduplicates codes, and only persists real HTTPS image URLs.

Best fit for this Actor

  • Choose this Actor when you already hold retail barcodes and need image URLs plus light identity fields for PIM, listing QA, or agent enrichment.
  • It works well for food, beauty, pet, and many packaged-goods codes covered by Open Facts, with UPCitemdb helping on broader retail UPCs.
  • For Amazon listing research after you have an ASIN, start with Amazon Product Intelligence, then pass confirmed barcodes here for image galleries.
  • For supplier pack-shot context from customs filings, pair it with ImportYeti Scraper when your workflow needs importer/supplier evidence next to barcode images.

PIM backfill workflow

A catalog manager exports a list of retail EAN-13 codes from their PIM. They paste Nutella (3017620422003) and LIFEWTR (012000161155) into Barcode codes, keep max images at 10, and run. The dataset returns primaryImageUrl, imageUrls, productName, brand, and source for each found code. They export JSON into the PIM image field and schedule the same input weekly so new SKUs pick up fresh public gallery URLs.

Quick start input

{
"codes": ["3017620422003", "012000161155"],
"maxImagesPerProduct": 10,
"concurrency": 2
}

Open the Input tab in Console for every field. Prefill already includes the two codes above so a first run stays cheap.

Input reference

FieldWhat it controls
codesEAN-8 / UPC-A / EAN-13 / GTIN-14 strings (spaces and dashes stripped). Max 100 unique valid codes.
maxImagesPerProductGallery URL cap per barcode (1–20). Primary image is always imageUrls[0] when present.
maxCodesHard cap after dedupe for quality tests.
concurrencyParallel lookups (1–8). Keep 1–3 for free-catalog courtesy.
sourcesOptional filter: openfoodfacts, openbeautyfacts, openpetfoodfacts, openproductsfacts, upcitemdb.
includeEmptyRowsWhen true, write unbilled NOT_FOUND rows for valid codes with zero images.

What data you receive

One dataset item is one barcode that resolved to at least one real image URL (unless you enable empty rows).

{
"ean": "3017620422003",
"gtin": "3017620422003",
"normalizedGtin": "03017620422003",
"format": "EAN-13",
"productName": "Nutella",
"brand": "Nutella, Ferrero",
"imageUrls": [
"https://images.openfoodfacts.org/images/products/301/762/042/2003/front_en.879.400.jpg"
],
"primaryImageUrl": "https://images.openfoodfacts.org/images/products/301/762/042/2003/front_en.879.400.jpg",
"imageCount": 1,
"source": "openfoodfacts",
"confidence": 0.88,
"scrapedAt": "ISO-8601 collection time"
}
FieldDescription
ean / gtinValidated barcode digits
normalizedGtinZero-padded GTIN-14 for dedupe
productName / brandFrom the winning source when present
primaryImageUrl / imageUrlsReal HTTPS image URLs only
source / confidenceProvenance plus heuristic confidence
scrapedAtCollection timestamp for the row

Download the dataset as JSON, CSV, Excel, or HTML from the run Output tab.

Pricing

Startup billing and empty runs

The apify-actor-start event costs $0.00005 per startup unit. Apify charges one startup unit per GB of allocated memory, with a minimum of one unit, so a 2 GB run incurs two units. This startup charge still applies when input is invalid, no results are found, or an upstream request fails. Statements about free, unbilled, or skipped results refer only to the corresponding result event; they do not waive the startup charge. Apify platform usage is included in the event prices and is not passed through as an additional customer charge. Check the live Pricing tab for current events, tiers, and rates. Result limits cap result events, not the entire run cost.

This Actor uses Pay per event with platform usage included. Check the live Pricing tab for the current schedule.

EventTypical priceWhen charged
apify-actor-start$0.00005Once per run
image-set-found$0.008Once per barcode that returns at least one image

Worked example: two found barcodes in a run allocated at most 1 GB ≈ $0.00005 + 2 × $0.008 event charge, with Apify platform usage included. Invalid checksums and codes with no images skip the image-set-found event.

Outcomes and agent readback

OutcomeMeaning
COMPLETEEvery valid code returned images
PARTIALMix of found and not-found or upstream gaps
VALID_EMPTYValid codes, no images found
INVALID_INPUTEmpty input or every code missed checksum/format validation
UPSTREAM_FAILEDProviders returned transport issues with no successful miss responses

Read OUTPUT / RUN_SUMMARY for outcome, itemsPushed, and chargedImageSets. Provenance lives on each row in source and scrapedAt.

API / MCP example

curl "https://api.apify.com/v2/acts/khadinakbar~ean-gtin-image-extractor/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"codes":["3017620422003"],"maxImagesPerProduct":5,"concurrency":1}'

On Apify MCP this Actor appears as apify--ean-gtin-image-extractor. Pass codes, then read dataset rows for primaryImageUrl and provenance.

Agent prompt card

Resolve these product barcodes to image galleries. Use ean-gtin-image-extractor with codes. Expect one dataset row per found barcode with primaryImageUrl, imageUrls, source, and collection time. Treat missing codes as VALID_EMPTY scope, and confirm cost against the Pricing tab before large batches.

Best results guidance

  • Provide canonical retail barcodes (EAN-13 / UPC-A) rather than internal SKUs.
  • Start with Open Facts sources for food, beauty, and pet packs; confirm electronics and general retail with upcitemdb when needed.
  • Keep concurrency low and validate checksums in your own sheet first so billed rows stay productive.
  • Schedule focused batches when catalogs refresh so agents always see current public image URLs.

Builder's note

I designed this Actor for image-set resolution with provenance rather than nutrition dumps or paid per-file downloads. In my testing, a checksum gate plus a free multi-source waterfall kept MCP payloads flat and honest: found codes charge once, unknown codes finish empty, and every saved URL is a real HTTPS link from the winning catalog.

Use only for legitimate catalog, research, and enrichment workflows under applicable laws and site terms for the public catalogs you query. Product images remain copyright of their owners; this Actor returns public URLs and grants no redistribution rights.

Open Food Facts and related Open Facts projects are trademarks of their owners. This independent Actor is not affiliated with, associated with, or endorsed by Open Food Facts. UPCitemdb is a trademark of its owner. This independent Actor is not affiliated with, associated with, or endorsed by UPCitemdb. GS1 is a trademark of GS1. This Actor is not affiliated with or endorsed by GS1.

Support

Open an Issue on the Actor page with the barcode and RUN_SUMMARY.outcome when a result needs review.