Bulk import, the sheet and exports over the API

Updated 2026-09-08

The bulk endpoints exist because creating ten thousand links one request at a time is slow, hits rate limits, and gives you no useful error report.

The canonical columns

Bulk work uses one column layout everywhere — the CSV import, the in-browser sheet, and the exports:

Short URL, Status, Id, Original URL, Link slug, Cloaking,
UTM Source, UTM Medium, UTM Campaign, UTM Term, UTM Content,
Expires at, Clicks limit, Expiration link, TTL, Tags, Link title,
iOS Link, Android Link, Creation date, Delete, Folder, Redirect type, Password

GET /api/bulk/templates returns this list, the recognised import templates and the full header mapping. GET /api/bulk/template.csv?kind=… downloads an empty template.

Importing

POST /api/bulk/preview accepts a file or pasted text and returns the detected headers, the field each maps to, the total row count and the first twenty rows. Correct the mapping, then POST /api/bulk/import with the same file plus the mapping to apply it. Imports are capped at 10,000 rows per file.

Header mapping is automatic for exports from several common shorteners: Bitlink, slashtag, alias, keyword, back-half and custom back-half all map to the slug; destination, long URL and original URL map to the target. Tags split on commas, semicolons or pipes.

The sheet

GET /api/bulk/sheet returns every link on a domain in the canonical layout. Edit rows and send them to POST /api/bulk/sheet/apply. The rules are simple and worth knowing:

  • A row with an Id updates that link.
  • A row without an Id and with an Original URL creates a link.
  • A row with 1 in the Delete column deletes that link.
  • Anything else is skipped.

The response reports created, updated, deleted and failed counts plus per-row errors, and the run is recorded as a job.

Jobs and errors

GET /api/bulk/jobs lists import and bulk runs with their status and counts. GET /api/bulk/jobs/:id/errors.csv downloads the failed rows with their error messages, so you can fix and re-import only those.

Exports

GET /api/bulk/export.csv produces the same layout for offline editing, and GET /api/export/links exports links for backup.

Find this in your dashboard

  1. Sign in and select the workspace and domain you want to manage.
  2. Open CSV Import. Review the article’s steps and your plan’s available controls.
  3. Save your changes, reopen the record and verify the saved result. For routing changes, check the short link with a test visit.
ShortFreeURL CSV Import in a demonstration workspace
CSV Import · Demo workspace. Click to enlarge.

API workflow guides · Open dashboard

Was this helpful?

Start Free — no credit card

The free plan includes 1,000 links, 6 custom domains and 50,000 tracked clicks a month, free forever. Choose a free subdomain from six shared domains. Paid plans start at $4 a month when you outgrow it, and you keep everything you have built.