A thousand links from one CSV

Conference badges, a print run, a partner roster. When you need links in bulk, a spreadsheet is the right tool and the import is the easy part. Here is how to lay one out so it goes through first time.

§
GUIDES

Most links are made one at a time. Some jobs need a thousand at once: a badge per attendee, a code per product, a tracked link per partner. The bulk import takes a CSV and turns each row into a link, with the same validation a single link gets, and tells you exactly which rows it could not use.

The columns

Only one column is required. Everything else is optional and takes the same values the dashboard does.

Column Required Example Notes
url yes https://example.com/spring Full URL with scheme
slug no spring-eu Left blank, a random one is generated
domain no go.example.com Defaults to the workspace default
title no Spring launch, EU Shown in the dashboard only
tags no launch-2026-09;eu Semicolon-separated, must exist in the scheme
expires_at no 2026-12-31 ISO date, UTC
max_clicks no 500 Whole number
password no badge-2026 Stored hashed, never shown again
qr no true Generate a QR code for the row

Column order does not matter. Unknown columns are ignored, so a sheet with your own bookkeeping columns beside these is fine.

Things that trip an import

  • A slug that is already taken. The row is skipped and reported. Imports never overwrite an existing link.
  • Two rows with the same slug. The first wins, the second is reported.
  • A URL without https://. example.com/page is not a URL to a browser. Add the scheme.
  • Excel dates. 31/12/2026 and 12/31/2026 both exist in the world. Use 2026-12-31 and there is nothing to guess.
  • Smart quotes. A CSV saved from a word processor can carry curly quotes around values. Save from a spreadsheet, or as plain UTF-8.
  • A tag that is not in the scheme. Tags are validated against your campaign list, which is the whole point of having one. Add the tag first, then import.

Dry run first

Every import starts as a dry run: the file is parsed, every row is validated, and you see a preview with the problems marked before a single link is made. Fix the sheet, upload again, and confirm when the preview is clean. Large files run in the background and you get an email when they finish.

The result of an import is a downloadable CSV with the original rows plus three new columns: short_url, qr_url if you asked for codes, and status. That file goes straight back to whoever is printing the badges or mailing the partners.

When a CSV is the wrong tool

If the rows are coming out of another system on a schedule, do not export and import. The API creates links one at a time or in batches of up to a hundred, with the same validation, and the response carries the short URL immediately. A spreadsheet is for the jobs a person does once.

All posts Published Jul 22, 2026
§
READ NEXT

Ready to shorten something?

Free to start, and your first branded link is about ninety seconds away.

  • Free forever plan
  • No card required
  • Cancel anytime