Shorten hundreds of URLs at once via CSV upload
Stop shortening links one by one. Upload a CSV, get back a clean file with all your short links in seconds — tagged, tracked and ready to deploy.
- Upload CSV, get CSV back
- Custom slugs per row
- Batch UTM tagging
- Full analytics on every link
Bulk import
CSV → Short linksCSV upload
One URL per row
Batch process
Up to 5,000 at once
Results CSV
Download instantly
Seconds
Not hours of manual work
Simple CSV format
One URL per row, optional slug in column two. No special formatting needed — paste from any spreadsheet and upload.
Batch tagging & UTM
Apply a UTM preset to the entire batch, or include UTM values per row in the CSV for granular campaign attribution.
Tracked from day one
Every link created in bulk gets the same full analytics as manually created links — country, device, referrer and more.
Frequently asked questions
Everything about bulk URL shortening and CSV imports.
How does bulk link shortening work?
Upload a CSV file with one URL per row. ShortLink processes each URL, generates a short link, and returns a downloadable CSV with the original and shortened URLs side by side.
How many URLs can I shorten at once?
Free accounts can bulk-shorten up to 50 URLs per upload. Pro accounts support up to 5,000 per upload. Business accounts have no per-upload limit.
Can I set custom slugs in the CSV?
Yes. Add a second column to your CSV with your desired slug for each row. If a slug is blank, ShortLink auto-generates one.
Can I add UTM tags to all bulk links at once?
Yes. Set a UTM preset (source, medium, campaign) before uploading — it will be applied to every link in the batch. You can also include UTM values in the CSV per link.
Do bulk-shortened links get analytics too?
Yes. Every bulk-created link has full click analytics — country, device, browser and referrer — just like individually created links.
What happens if a URL in my CSV is invalid?
Invalid rows are flagged in the results CSV with an error message. Valid URLs in the same batch are still processed and returned successfully.