GPSRTools

Bulk GPSR labels from a CSV, step by step

One row per SKU, one ZIP back: a PDF with every label and copy, optional files per SKU, and the listing text for all of them. Here is how to build the sheet so it works the first time.

Updated

Open the CSV batch tool

How the batch works

The batch tool reads a CSV file (comma- or semicolon-separated text with a header line). Each row becomes one label design. Whatever a row leaves empty is taken from the form under the upload box — so you type the manufacturer, the EU responsible person, the warnings and the label size once, and the CSV only needs what changes per SKU.

Everything happens in your browser: the CSV is not uploaded. The free version makes up to 3 SKUs per batch so you can test your file; Pro goes up to 1000 SKUs.

Step 1 — start from the template

Download the CSV template and open it in Excel, WPS or Google Sheets. Keep the first line (the header). Delete the sample rows and add your SKUs. You can delete columns you don't need — only the header names matter, not their order.

The minimum useful file has four columns:

sku,product_name,model,batch MUG-350,Ceramic coffee mug 350 ml,CM-350,LOT2611-A LAMP-200,LED desk lamp,DL-200,B2026-11

Step 2 — the columns the tool reads

Header names are not case-sensitive, and spaces, dashes and underscores are ignored (Product Name = product_name). Common alternative names are accepted too:

ColumnAlso acceptedWhat it does
skuseller_sku, item_sku, asin, artikelnummerNames the per-SKU files in the ZIP
product_nameproduct, name, title, item_nameProduct line on the label
modelmodel_number, type, type_numberType / model
batchlot, batch_number, lot_number, chargeBatch / lot number
serialserial_number, snSerial number
eangtin, upc, barcodePrinted as text
copiesqty, quantity, labels, pcsHow many copies of this label (1–1000)
warningswarning_codes, phrasesWarning codes for this SKU, e.g. manual|hot
languageslangs, languageLanguage codes for this SKU, e.g. en|de|fr
qr_urlqr, url, manual_urlQR code link (e.g. the online manual)
manufacturer_name, _address, _contactmanufacturer_email, manufacturer_websiteOverrides the form for this SKU
rp_name, rp_address, rp_contactresponsible_person, eu_rp, ec_rep, rp_emailEU responsible person for this SKU
importer_name, _address, _contactimporter, importer_emailImporter for this SKU
extra_textextra, note, textOne extra line, e.g. “Contains: 12 blocks”

Columns the tool doesn't know are listed after you load the file and ignored — nothing breaks.

Step 3 — warning and language codes

Separate several codes with |, ;, a comma inside quotes, or a space. Unknown codes are skipped.

Warning codes: small03 (not for children under 3 — small parts), adult (adult supervision), reach (keep out of reach of children), bag (plastic packaging — suffocation), manual (read the instructions), fire (keep away from fire and heat), battery, weee (not household waste), indoor, water (keep dry), hot (surface may become hot), external (external use only), assembly (adult assembly required), nottoy (not a toy).

Language codes: en, de, fr, it, es, nl, pl, sv, cs, sk, sl, hr, hu, ro, bg, el, pt, da, fi, et, lv, lt. Leave the column empty to use the languages chosen in the form.

Step 4 — save as CSV UTF-8

  • Excel (Windows): File → Save As → CSV UTF-8 (Comma delimited) (*.csv). Plain “CSV (Comma delimited)” saves in the local code page and turns ä, é, ß or Chinese characters into question marks.
  • Excel (Mac): File → Save As → CSV UTF-8.
  • Google Sheets: File → Download → Comma-separated values (.csv) — always UTF-8.
  • WPS: choose CSV and, if offered, UTF-8 encoding.

Excel in Germany, France and other countries saves with semicolons; the tool detects the separator by itself. You can also paste rows straight from the spreadsheet into the text box — include the header line.

Step 5 — check the summary, then make the ZIP

After loading, the tool shows how many SKUs and labels it found and which columns it used. Check the preview of the first SKU, choose what goes in the ZIP and download:

  • labels-all.pdf — every label and copy in one file, one label per page, ready for a thermal printer (on label sheets: labels-all-sheets.pdf).
  • pdf/ and png/ — one file per SKU, if you tick them (PNG is handy for listing images).
  • listing-text.csv — the Article 19 text block for every SKU, ready to paste into your listings.

When something goes wrong

  • “No known column names found” — the first line is not a header, or the file was saved as Excel (.xlsx). Save as CSV.
  • Strange characters (ä, ?) — the file isn't UTF-8. Save again as CSV UTF-8.
  • Fewer SKUs than rows — rows without product name, model, SKU and batch are skipped as empty.
  • Addresses broken across columns — an address with commas must be in quotes. Spreadsheets add the quotes for you when you save; only hand-written CSV files need care.
  • Text too small — long names in many languages on a 50 × 30 mm label. Use fewer languages per SKU (languages column) or a larger size.

Try it now

Single labels are free in every thermal size, as PDF or PNG, with no sign-up and nothing uploaded.

Open the CSV batch tool

Frequently asked questions

Can each SKU have a different EU responsible person?

Yes. Fill rp_name, rp_address and rp_contact in the rows that differ; rows left empty use the form.

How many labels can one batch make?

Free: 3 SKUs per batch. Pro: up to 1000 SKUs per batch, each with up to 1000 copies. Very large PDFs depend on your computer's memory — split a huge list into several batches.

Is my product list uploaded?

No. The CSV is read by JavaScript in your browser and the ZIP is built there.

General information, not legal advice. Laws and marketplace rules change: check the official text and your marketplace's current help pages before you rely on this page. Last reviewed 2026-11-08. Spotted a mistake? Tell us.

GPSR Tools Pro

CSV batches of up to 1000 SKUs, A4 / Letter label sheets, custom sizes and your logo. One-time payment — no subscription, no account.

24-hour pass

$9.99

Every Pro feature for 24 hours, starting when you first use the key. Enough to label a whole shipment.

Secure payment by Stripe. Your key is shown right after payment and emailed to you. Labels you made keep working forever, with or without Pro. Refunds

I have a key

Lost your key?