# Barcode / EAN / ISBN Product Lookup (`mechniverse/barcode-product-lookup`) Actor

Enter a barcode (EAN-8/13, UPC-A, ISBN-10/13) and get the product name, brand, category, image and package details — aggregated from Open Food Facts, Open Beauty Facts, Open Pet Food Facts, Open Products Facts, Google Books and Open Library. Pay only for successful lookups.

- **URL**: https://apify.com/mechniverse/barcode-product-lookup.md
- **Developed by:** [Ganesh Chandak](https://apify.com/mechniverse) (community)
- **Categories:**
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 product lookups

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

**Scan any barcode — food, books, beauty, household, pet — and get clean product data in one call.**

Enter a **barcode** (EAN-8, EAN-13, UPC-A, ISBN-10 or ISBN-13) and get the product name, brand, category, image, and product page link — aggregated from six free public databases (Open Food Facts, Open Products Facts, Open Beauty Facts, Open Pet Food Facts, Open Library and Google Books). No API keys, no subscriptions, no scraping. **Pay only when a product is found.**

### What you get

- **6 product databases in one lookup** — food, books, cosmetics, pet food, household goods and general products
- **Every barcode format supported** — EAN-8/13, UPC-A, ISBN-10 (auto-converted to ISBN-13) and ISBN-13
- **Clean, structured output** — product title, brand, category, image URL, source and product page link
- **Category targeting** — choose a category (food, books, beauty, pet, household) to search only its sources at a lower rate
- **Bulk lookup** — check up to 10 barcodes in a single run, priced per barcode
- **No key required** — all sources are free public databases; no API key setup on your side

### Sample output

Input: `{"barcode": "3017620422003", "category": "food"}`

```json
{
  "barcode": "3017620422003",
  "title": "Nutella",
  "brand": "Nutella, Ferrero, Yum yum",
  "category": "Confectionary based spreads",
  "image_url": "https://images.openfoodfacts.org/images/products/301/762/042/2003/front_en.879.400.jpg",
  "product_url": "https://world.openfoodfacts.org/product/3017620422003",
  "source": "openfoodfacts",
  "category_label": "food",
  "charged": true
}
```

Books? Input `{"barcode": "9780306406157", "category": "books"}` returns the book title, publisher, cover image and its Open Library page.

### Pricing

| | |
|---|---|
| **Targeted lookup** — you pick a category (food / books / beauty / pet / household) | **$0.003** per barcode |
| **All-sources lookup** — no category, `all`, or an unknown category | **$0.005** per barcode |
| **1,000 targeted lookups** | **$3** |
| **1,000 all-sources lookups** | **$5** |

- **Pay only for results** — a valid barcode that isn't found in any searched source is **free**
- **Invalid input is cheaper** — a malformed barcode (wrong format or failed checksum) that we have to validate and reject is charged a **$0.001** handling fee, never the full rate
- **Bulk is priced per barcode** — a run of 10 barcodes = 10 × the per-barcode rate, charged only for the ones that return data
- **No subscription** — pay as you go; Apify free-plan credits apply

### How to use

1. Open the Actor in **Apify Console** (or call it via the [API](https://docs.apify.com/api/v2)).
2. Enter a single barcode in the **Barcode** field — e.g. `3017620422003` — optionally pick a **Category** to search only that category's sources at the cheaper rate. For several products, add up to 10 barcodes to the **Barcodes** list (one per line).
3. Get results as **JSON, CSV, or Excel**, or integrate via API, [schedules](https://docs.apify.com/platform/schedules), webhooks, or [Zapier / Make / n8n](https://docs.apify.com/platform/integrations).

### Who is this for?

- **E-commerce & inventory developers** — enrich product catalogs from barcodes without maintaining scrapers or paying for commercial barcode APIs
- **Grocery, nutrition & wellness apps** — barcode-scan features backed by Open Food Facts and Open Beauty Facts data
- **Libraries, bookstores & reading apps** — resolve ISBNs to titles, covers and publisher data via Open Library / Google Books
- **AI agents & chatbots** — answer "what is this product?" questions from a photo or scanned code
- **Consumer researchers** — batch-lookup product origins, categories and brands

### FAQ

**Which countries / databases does it cover?** Products are resolved through the open Open Food Facts / Open Beauty Facts / Open Pet Food Facts / Open Products Facts / Open Library / Google Books catalogs — these are global, community-maintained databases, so coverage is worldwide.

**Do I need an API key?** No. All sources are free public databases — there is no key setup on your side.

**Can I look up multiple barcodes at once?** Yes — up to 10 per run in the **Barcodes** list. Each barcode is processed and priced independently.

**What happens if a barcode isn't found?** If the barcode is valid but no source has it, you are **not charged** — the record tells you it wasn't found and which sources were checked.

**What about an ISBN vs a normal barcode?** Both work. ISBN-10 is converted to ISBN-13 automatically and routed to book catalogs only — that's why a book ISBN searched without a category still returns quickly.

**Do you scan images?** This Actor takes barcode *numbers* as text input. Use any barcode scanner app to turn a photo into the digits, then pass those in.

### For AI agents & automations

Deterministic JSON in, JSON out — no API keys, no subscriptions, no auth walls. Callable as a tool through [Apify's MCP server](https://docs.apify.com/integrations/mcp) (agents search *barcode* / *product lookup*), or directly via the API:

```bash
curl -X POST https://api.apify.com/v2/acts/mechniverse~barcode-product-lookup/run-sync-get-dataset-items \
  -H "Authorization: Bearer $APIFY_TOKEN" -H "Content-Type: application/json" \
  -d '{"barcode":"3017620422003","category":"food"}'
```

One valid barcode in → one clean product record out, priced per barcode and billed independently. Invalid formats return an error record, never a silent empty result.

### Data sources

This Actor reads only **publicly listed product information** from open databases — no private or personal data. Product data is provided by the respective source catalogs as-is.

Questions or feature requests? Open an issue on the **Issues** tab — we read every one.

***

Building an India shopping or price tool? Pair this with [India Price Comparison — Amazon & Flipkart](https://apify.com/mechniverse/india-price-comparison) to add live prices from both marketplaces.

# Actor input Schema

## `barcode` (type: `string`):

One barcode: EAN-8, UPC-A, EAN-13, ISBN-10 or ISBN-13 (spaces and dashes are fine). Example: 3017620422003. ISBN-10 is converted to ISBN-13 automatically.

## `barcodes` (type: `array`):

Look up several barcodes in ONE run — one per line, max 10. Each barcode is processed and priced separately. Leave empty for a single lookup.

## `category` (type: `string`):

Pick a category to search only its sources (targeted rate, cheaper). Omit it or choose 'all' to search everything at the higher all-sources rate. ISBN codes always route to book catalogs internally, but the price still follows this choice: a valid category = targeted rate, anything else = all-sources rate.

## Actor input object example

```json
{
  "barcode": "3017620422003",
  "category": "all"
}
```

# Actor output Schema

## `dataset` (type: `string`):

One record per input barcode: product data + transaction info (what was charged)

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "barcode": "3017620422003",
    "category": "all"
};

// Run the Actor and wait for it to finish
const run = await client.actor("mechniverse/barcode-product-lookup").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "barcode": "3017620422003",
    "category": "all",
}

# Run the Actor and wait for it to finish
run = client.actor("mechniverse/barcode-product-lookup").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "barcode": "3017620422003",
  "category": "all"
}' |
apify call mechniverse/barcode-product-lookup --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,mechniverse/barcode-product-lookup"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/bsfjGy5Vo6tRs1yDt/builds/TYdanlV4R7CLurDeA/openapi.json
