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
Live API Demo
🔒 Sign in to try it live
Log in to call this API with your own API key. New accounts get 100 free credits — no card required.
Log in / Sign upNo active API key found. Create one in your Dashboard, then reload this page. Dashboard →
/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>'
Query Result
Use Cases
- Scan-to-add inventory: a warehouse or retail POS app scans a UPC/EAN and auto-fills stock records with title, category, manufacturer and images
- Marketplace listing automation: prefill marketplace listings from a scanned barcode with description, MPN/ASIN attributes and weight/size
- Price comparison engine: use the barcode as a cross-store join key and compare offers from the online_stores array
- Book cataloging: ISBN-10/13 lookups return title, author and cover images for library or used-bookstore scanning apps
- Grocery and calorie tracking: scan a food EAN-13 to pull nutrition facts and product images for meal logging
- Bulk catalog enrichment: resolve CSVs of barcodes into structured PIM/ERP import rows with brand, attributes and images
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.