Look Up Products by Barcode or Keyword

View all Barcode Lookup & Product Search endpoints →

A single endpoint with two modes, selected by what you pass as query. Barcode mode: pass a numeric barcode — UPC-A, EAN-13, JAN, ISBN-10 or ISBN-13 — and the response carries a product object with barcode_formats echoing the matched codes (upc_a, ean_13, isbn_10, isbn_13 as applicable), title, description, a category path array, brand and manufacturer, an attributes map (mpn, asin, size, dimensions, weight when known), a features list, nutrition_facts and ingredients for food items, image URLs, and author or artist for books and media. Many records also include an online_stores array with per-store name, price and URL. Search mode: pass a plain-text term and the response carries a results array — each hit includes barcode, title, category, image and manufacturer — plus a nextPage cursor; send it back as page to fetch the next batch until nextPage is null. Leave page empty for barcode lookups. A code with no catalog record returns HTTP 200 with an empty results array, so absence is easy to handle. Field depth varies by product: popular items carry full attributes and store offers, while obscure records may return only a sparse title.

API Features

Two modes in one call A numeric query resolves a single barcode to its full product record; a text query switches to keyword search with paginated results
Deep product records Title, description, category path, brand, manufacturer, MPN/ASIN/size/weight attributes, features, nutrition facts and images per product
Per-store prices The online_stores array lists store name, price and URL so you can compare offers across retailers without extra calls
Simple cursor pagination Search mode returns a nextPage cursor; pass it back as page to fetch the next batch until it comes back null
All major barcode formats UPC-A, EAN-13, JAN, ISBN-10 and ISBN-13 resolve through the same parameter and echo under barcode_formats

Live API Demo

GET /api/project/barcodes-lookup/search-product-details

API Response (JSON)

{}
curl -X GET 'https://api.opendata-api.com/api/project/barcodes-lookup/search-product-details?key=<API_KEY>&query=<query>'
📢
Need Help?
If you encounter API issues or need other API requirements, please contact us.
Contact Us

Use Cases

Frequently asked questions

How do I look up product information from a barcode?

Pass a UPC-A, EAN-13, JAN or ISBN code as query. The response returns structured fields such as title, brand, category path, attributes and images. A code with no catalog record returns HTTP 200 with an empty results array, so handle it as a miss rather than an error.

How do I call the barcode lookup API in Python to get product details?

Send a GET request with requests, passing the barcode as query and leaving page empty, then read the product object from the data field of the gateway response. For keyword search, pass the returned nextPage value back as page to fetch the next batch.

How do I get a book's title, author and cover from an ISBN?

Pass the ISBN-10 or ISBN-13 as query. Matched book records include title, author and cover image URLs, and barcode_formats echoes the matched isbn_10 or isbn_13, which suits bulk book cataloging.

What data API can I use to build a scan-and-compare price feature?

Call the endpoint with the scanned barcode. Matched records carry an online_stores array listing per-store name, price and URL, so you can compare offers across retailers using the barcode as the join key without extra requests.

How do I auto-fill product records in an inventory system by scanning?

After a scanner reads the barcode, call the endpoint and prefill the receiving form with the returned title, category, manufacturer and images. Codes without a catalog record return an empty result and can fall through to a manual entry flow.

How do I get a food item's nutrition facts from its barcode?

Matched food products return nutrition_facts and ingredients fields. Field depth varies by product — popular foods are complete while obscure records may return only a sparse title, so check the fields are present before storing them.

Guides

View Subscription Plans →