Match a Barcode to Products and Offers

View all Idealo Product Search & Merchant Offers API endpoints →

Look up one GTIN, EAN, UPC or JAN barcode containing 8–14 digits. Preserve it as a string, including any leading zeros. Enter JSON text in body, such as {"country":"de","values":["4008400401621"]}; direct gateway clients send this text as the string value of body. The JSON object requires country de or at and values with exactly one barcode string. Only Germany was live-verified. The observed creation response contained error:false and job_id. After retrieval through get-job, the completed German lookup for EAN 4008400401621 returned one found Ferrero Nutella result, id 4375366, with the matching ean, country:de, fetched_at, image_urls, category_ids, price_min, price_avg, price_max, offers_count and nine detailed EUR offers. Each supplied offer included its title, shop_name, price, shipping, total, condition and availability, with classification:product_page_match and confidence:high; the product had page_type:product. Some product metadata, including brand and description, was null. Validate both product identity and quantity before comparing prices. This EAN identifies Nutella 450g, yet one returned offer was a 15 x 450g multipack with the same product_page_match/high labels. Those labels alone do not establish a single-unit or exact-variant match. Matching on other page types is documented but was not observed, and no universal classification accuracy or complete merchant coverage is established. Store the returned ean, listing id, country and timestamp with any approved catalog match.

API Features

Digit-string barcode input Accept the documented 8–14-digit format as one array element without dropping leading zeros through numeric conversion.
Barcode-to-listing reconciliation The verified Nutella result echoed the requested EAN and supplied listing id 4375366, giving catalog teams identifiers to validate before storing a mapping.
Offer match labels with page context Inspect available classification, confidence and page_type fields; the observed barcode job used product_page_match/high on a product page.
Pack-size-aware comparison safeguard A returned multipack shared the same high-confidence label as single jars, so titles and quantity still need explicit review before unit-price comparison.

Live API Demo

POST /api/project/idealo/search-by-gtin

Request cost is temporarily unavailable. No price is assumed.

View pricing

API Response (JSON)

{}
curl -X POST 'https://api.opendata-api.com/api/project/idealo/search-by-gtin?key=<API_KEY>' \ -H 'Content-Type: application/json' \ -d '{"body":"<body>"}'
📢
Need Help?
If you encounter API issues or need other API requirements, please contact us.
Contact Us

Use Cases

Frequently asked questions

How should an EAN or UPC be encoded?

Use one digit-only string of 8–14 characters inside values, with country set to de or at. Keep leading zeros and do not send a JSON number or multiple barcodes. The public body field carries the serialized JSON object.

Does a matching barcode guarantee every offer is the same pack size?

No. EAN 4008400401621 identifies Nutella 450g, but the observed result included a 15 x 450g multipack. Check titles, quantities and variants before comparing totals or computing a unit price.

How should classification, confidence and page_type be used?

Treat them as additional match context, not proof of an exact quantity match. The verified product page returned product_page_match and high even for the multipack. Other page types and their matching behavior were not live-verified.

What did the live barcode lookup actually return?

The completed German Nutella job returned one found result with ean 4008400401621, listing id 4375366, nine EUR offers, item and shipping prices, delivered totals, availability and fetched_at. Brand and description were null. The offer count and populated fields are observations, not guarantees for every barcode.

Related operations

Guides

View Subscription Plans →