Spreadsheets and files
Barcode generator for a CSV catalog
Upload a file with a value column. Get the same file back with an image address or an error on each row.

You add barcodes to a catalog by uploading the CSV. Each row comes back with an image address, or with the reason it cannot be a barcode, and every other column stays as it was. The upload does not draw pictures. It writes the address of each barcode, which Excel, Google Sheets, a web shop, or a label tool can show later.
What do I need before the upload?
- Sign in. The upload form on the homepage uses your sign-in, so it needs no key.
- Create a picture key on the Account page if you want the addresses ready to show.
- Export the catalog as a UTF-8 CSV with a header row.
- Name the code column value, or v, and format it as text before export so leading zeros survive.
- Add a symbology column, or s, only for rows that need a fixed type, such as code128 for SKUs.
- Upload the file, with the picture key in its field, and open the file that comes back.
What file do I send?
This file has a GTIN, a code with a wrong check digit, and a SKU:
value,name,symbology
4006381333931,Tea,
4006381333932,Wrong digit,
SKU 44,Shelf,code128
What file do I get back?
Two columns are added: image_url and error. With a picture key, a third column, image_formula, holds a ready IMAGE formula. The file starts with a byte-order mark so Excel reads the headers correctly.
| value | image_url | error |
|---|---|---|
| 4006381333931 | https://beepable.app/b/ean13.png?v=4006381333931&k=… | |
| 4006381333932 | Check digit is invalid for this GTIN. Name code128 to encode it anyway. | |
| SKU 44 | https://beepable.app/b/code128.png?v=SKU%2044&k=… |
If you uploaded without a picture key, add it in the sheet instead. In this file image_url is column D, so put your picture key in Z1 and use:
=IF(D2="","",IMAGE(D2&"&k="&$Z$1))
The IF skips rows with an error. Their reason is already in the error column as text, which is easy to filter.
What if the file or a row is refused?
| Message | Why | What to do |
|---|---|---|
| The CSV needs a value column. | No header is named value or v. | Rename the code column. |
| A CSV can contain at most 10,000 rows. | The file is too long. | Split it into several files. |
| This file is larger than 5 MB. Split it into smaller files. | The file is too big. | Split it. |
| Use a picture key, not an All routes key, in image addresses. | An All routes key was typed in the picture key field. | Use a picture key there. |
| Check digit is invalid for this GTIN. Name code128 to encode it anyway. (in a row) | The last digit of that GTIN is wrong. | Fix the code at its source. |
| This is neither a valid GTIN, an Amazon FNSKU, nor a URL. Name a symbology, such as code128. (in a row) | A SKU without a symbology. | Set symbology to code128 on that row. |
A refused file comes back as the single sentence, not as a partial CSV. A refused row leaves the rest of the file untouched. Quote any field that contains a comma.
What happens after the download?
Keep the returned file. Beepable does not store your catalog or the pictures. Each address draws the same barcode every time, and a barcode drawn once is saved for a year, so a sheet with 10,000 rows can be reopened without waiting. Do not put a private link in the value column, because it becomes part of a public address.
For automated imports, a program can send the same file to https://beepable.app/csv with an All routes key. The API reference has the details.
Frequently asked questions
Which column does the CSV need?
A header named value, or v. A symbology column, or s, is optional. Every other column is copied through unchanged.
Does one bad row fail the file?
No. That row gets an empty image_url and the reason in error. The other rows still get their address.
How many rows can one file hold?
10,000 data rows and 100 columns, up to 5 MB. Split a larger catalog into several files.
How do I show the pictures afterwards?
Fill in the picture key field when you upload. Every image_url then includes your key, and the file gets an image_formula column you can paste into Excel or Google Sheets.
Which key does the upload need?
On the homepage, none: the upload uses your sign-in. A program needs an All routes key. A picture key is refused with: This key can only draw pictures.



