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/pageis not a URL to a browser. Add the scheme. - Excel dates.
31/12/2026and12/31/2026both exist in the world. Use2026-12-31and 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.
Getting the links back out
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.