# Bulk Barcode Generator (Excel, CSV, PDF Labels) (`toolsnmoreapi/barcode-generator`) Actor

Turn Excel or CSV files into barcode images, ZIP downloads, and printable PDF label sheets for e-commerce, warehouse, and inventory labeling.

- **URL**: https://apify.com/toolsnmoreapi/barcode-generator.md
- **Developed by:** [ToolsAPI](https://apify.com/toolsnmoreapi) (community)
- **Categories:** E-commerce, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

## 📦 Bulk Barcode & Label Generator

Turn spreadsheets or simple inputs into **clean, scannable barcodes and printable label sheets** — instantly.

Built for **e-commerce, warehouses, operations teams, and product-based businesses** that need fast, reliable barcode generation without manual work.

---

## 🚀 What this Actor does

Upload a file **or type values directly**, and get:

* 🏷️ Barcode PNG images (one per SKU / code)
* 📦 ZIP download with all barcodes
* 🖨️ Printable PDF label sheets
* 📊 Structured dataset (ready for tracking or export)
* 🧠 Smart formatting (clean filenames, deduplication, validation)

👉 No design tools. No plugins. No manual barcode generators.

---

## ⚡ Key Features

### 🔄 Flexible Input (2 ways)

* Upload Excel / CSV for bulk generation
* OR type values manually for quick use

### 🧾 Multiple Barcode Types

* Code 128 (default – best for internal use)
* UPC-A (retail)
* EAN-13 (international retail)
* EAN-8 (compact retail)

### 🧠 Smart Data Handling

* Removes duplicates automatically
* Cleans invalid values
* Validates UPC / EAN checksums
* Auto-generates checksums when needed

### 🏷️ Clean Barcode Output

* High-resolution PNG images
* Centered and aligned text
* Auto-fit font sizing (no overflow)
* Professional layout (ready for printing)

### 🖨️ PDF Label Sheet Generator

* Multi-label printable sheets
* Adjustable layout:

  * Labels per row
  * Labels per page
  * Page size (Letter / A4)

### 📦 Ready for Real Workflows

* ZIP export for bulk download
* Dataset output for tracking
* Clean filenames for automation

---

## 🧠 What this is used for

### 🛒 E-commerce product labeling

Generate barcodes for:

* SKUs
* Product IDs
* Variants
* Bundles

Example:

````

HINGE-BLK-001
HANDLE-SS-002
CLAMP-GLASS-003

```

---

### 📦 Warehouse & inventory management

Label:

* Bins
* Shelves
* Pallets
* Cartons
* Locations

Example:

```

BIN-A-01
PALLET-10001
CARTON-00045

```

---

### 🏷️ Retail barcode generation

Generate valid:

* UPC-A
* EAN-13
* EAN-8

Use for:

* Product packaging
* Retail systems
* POS scanning

---

### 📋 Operations & logistics

Track:

* Purchase orders
* Batch IDs
* Vendor items
* Internal tracking codes

Example:

```

PO-1301
BATCH-2026-04
VENDOR-77821

```

---

## 👥 Who this is for

* 🛒 E-commerce brands
* 📦 Warehouse managers
* 🏭 Manufacturers
* 📊 Operations teams
* 🧾 Inventory planners
* 🚚 Logistics teams
* 🧑‍💼 Agencies managing product catalogs

👉 If you handle physical products, this saves hours.

---

## ⚡ Quick Start

### Option 1: Upload Excel / CSV

Upload a file where **Column A contains your values**:

```

SKU001
SKU002
SKU003

````

Run with:

```json
{
  "barcodeType": "code128",
  "createPdfSheet": true
}
````

***

### Option 2: Manual input (fastest)

```json
{
  "manualValues": [
    "86587614",
    "93090526",
    "SKU-001"
  ],
  "barcodeType": "code128",
  "createPdfSheet": true
}
```

***

## 🔄 How it works

For each value:

1. Cleans and validates input
2. Generates barcode image
3. Formats layout + text
4. Saves PNG file
5. Adds to ZIP
6. Adds to PDF sheet (optional)
7. Logs result in dataset

***

## 📊 Output Example

```json
{
  "barcode_value": "SKU001",
  "encoded_value": "SKU001",
  "barcode_type": "code128",
  "filename": "SKU001.png",
  "image_key": "BARCODE_IMAGE_SKU001",
  "status": "created"
}
```

***

## 📁 What you get

After the run:

- 📦 ZIP file with all barcodes
- 🖨️ PDF label sheet (if enabled)
- 📊 Dataset with results
- 📄 RUN\_INFO summary

***

## 🖨️ PDF Label Sheets

Generate print-ready sheets:

```json
{
  "createPdfSheet": true,
  "labelsPerRow": 3,
  "labelsPerPage": 30,
  "pageSize": "letter"
}
```

Use for:

- Product labels
- Warehouse bins
- Cartons / pallets
- Inventory tagging

***

## ⚙️ Input Options

| Field             | Description              |
| ----------------- | ------------------------ |
| inputFile         | Upload Excel/CSV         |
| manualValues      | Type values directly     |
| barcodeType       | Code 128 / UPC / EAN     |
| inputColumn       | Column to read from      |
| createPdfSheet    | Enable PDF output        |
| labelsPerRow      | Labels per row           |
| labelsPerPage     | Labels per page          |
| pageSize          | Letter / A4              |
| includeText       | Show value under barcode |
| fontSize          | Base font size           |
| deduplicateValues | Remove duplicates        |

***

## ✅ Best Practices

- Use **Code 128** for internal systems
- Use **UPC/EAN** only for real retail codes
- Keep values clean (no extra spaces)
- Test with a few items first
- Verify before printing at scale

***

## ⚠️ Limitations

- PNG output only (no SVG yet)
- PDF layout is generic (not Avery-specific)
- UPC/EAN must be numeric
- Very long values may reduce barcode readability

***

## 🔄 Example Workflow

```
Excel / CSV → Actor → PNG + ZIP + PDF → Print or upload to system
```

***

## 📈 SEO Keywords

barcode generator
bulk barcode generator
excel to barcode
sku barcode generator
warehouse barcode labels
inventory barcode system
ean barcode generator
upc barcode generator
barcode label generator
printable barcode sheets

***

## 💡 Why this stands out

Most tools:

- ❌ messy output
- ❌ no PDF labels
- ❌ manual work
- ❌ no validation

This Actor:

- ✅ clean, ready-to-use output
- ✅ built for real operations
- ✅ fast bulk processing
- ✅ flexible input methods

***

## 📬 Support & Ideas

Want more features?

- QR codes
- Avery templates
- Custom label sizes
- Shopify / ERP integration
- Sequential barcode generator

Reach out or open an issue.

***

## 📄 Disclaimer

Always verify generated barcodes before printing or using in production systems. This tool generates scannable codes but does not validate external system compatibility.

# Actor input Schema

## `manualText` (type: `string`):

Paste one barcode, SKU, UPC, EAN, or product code per line.

Example:
SKU001
SKU002
SKU003

If you upload Excel or CSV instead, put all barcode values in column A.

## `inputFile` (type: `string`):

Optional. Upload a spreadsheet with barcode values in column A only.

Example:
A1 = SKU001
A2 = SKU002
A3 = SKU003

## `barcodeType` (type: `string`):

Choose Code 128 for most SKUs, product labels, inventory, warehouse bins, and general business use.

## `createPdfSheet` (type: `boolean`):

Create a printable PDF sheet with all generated barcodes.

## Actor input object example

```json
{
  "manualText": "SKU001\nSKU002\nSKU003",
  "barcodeType": "code128",
  "createPdfSheet": true
}
```

# 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 = {
    "manualText": `SKU001
SKU002
SKU003`
};

// Run the Actor and wait for it to finish
const run = await client.actor("toolsnmoreapi/barcode-generator").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 = { "manualText": """SKU001
SKU002
SKU003""" }

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

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

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

```

## CLI example

```bash
echo '{
  "manualText": "SKU001\\nSKU002\\nSKU003"
}' |
apify call toolsnmoreapi/barcode-generator --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=toolsnmoreapi/barcode-generator",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Bulk Barcode Generator (Excel, CSV, PDF Labels)",
        "description": "Turn Excel or CSV files into barcode images, ZIP downloads, and printable PDF label sheets for e-commerce, warehouse, and inventory labeling.",
        "version": "0.0",
        "x-build-id": "EdtfONYbXAP9cpcM7"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/toolsnmoreapi~barcode-generator/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-toolsnmoreapi-barcode-generator",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/toolsnmoreapi~barcode-generator/runs": {
            "post": {
                "operationId": "runs-sync-toolsnmoreapi-barcode-generator",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/toolsnmoreapi~barcode-generator/run-sync": {
            "post": {
                "operationId": "run-sync-toolsnmoreapi-barcode-generator",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "manualText": {
                        "title": "🏷️ Paste your barcodes or SKUs",
                        "type": "string",
                        "description": "Paste one barcode, SKU, UPC, EAN, or product code per line.\n\nExample:\nSKU001\nSKU002\nSKU003\n\nIf you upload Excel or CSV instead, put all barcode values in column A."
                    },
                    "inputFile": {
                        "title": "📄 Or upload Excel/CSV",
                        "type": "string",
                        "description": "Optional. Upload a spreadsheet with barcode values in column A only.\n\nExample:\nA1 = SKU001\nA2 = SKU002\nA3 = SKU003"
                    },
                    "barcodeType": {
                        "title": "🔢 Barcode format",
                        "enum": [
                            "code128",
                            "upca",
                            "ean13",
                            "ean8"
                        ],
                        "type": "string",
                        "description": "Choose Code 128 for most SKUs, product labels, inventory, warehouse bins, and general business use.",
                        "default": "code128"
                    },
                    "createPdfSheet": {
                        "title": "🖨️ Create printable PDF label sheet",
                        "type": "boolean",
                        "description": "Create a printable PDF sheet with all generated barcodes.",
                        "default": true
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
