Migrate from Bitly to Flyn
Export your Bitly links, preview them in Flyn for free, and keep links on your branded domain working when you move its DNS to Flyn and verify it
Last updated: September 2026
Previewing is free on every plan. Importing needs Pro, Lifetime or Team.
Already have a Flyn account? Open the importer
Pre-Migration Checklist
Complete these steps before starting the migration to ensure a smooth transition.
- 1Export all links from Bitly as CSV and check the file opened correctly (Data Export needs Bitly Growth or above; on Free or Core, use the Bitly API)
- 2If your links use your own branded domain, add it in Flyn (Settings > Domains) before you import
- 3Document your current custom domain DNS settings (screenshot recommended)
- 4Note any links with special routing rules or redirects
- 5Check your Flyn plan: previewing an import is free, creating the links needs Pro, Lifetime or Team
- 6Notify your team about the upcoming migration window
Step 1: Export from Bitly
First, get your existing links out of Bitly so you can import them into Flyn.
Check that your Bitly plan can export
Bitly lists Data Export on its Growth, Premium and Enterprise plans; Free and Core accounts cannot export from the web app (Bitly pricing page, checked September 2026). Branded domains are also a Growth-and-above feature, so if your links use your own domain, your plan can export them.
Export all links
Open Links in the left sidebar, click Export, choose the email address to send it to, and confirm. Bitly emails the CSV; large exports can take up to 30 minutes. The file has a Status column that marks deleted links; Flyn skips those rows (set that column to Do not import in Review to include them).
Or export a selection
On the Links page, tick up to 100 links and choose Export to download them straight away.
No export on your plan?
Every Bitly plan can use the Bitly API within its monthly request quota. GET /v4/groups/{group_guid}/bitlinks lists your links; save each link and its long_url as a CSV. For a handful of links, copying them into a spreadsheet works too.
Step 2: Import into Flyn
Upload your export and Flyn detects the format, maps the columns (you can change any of them), and previews every link before anything is created. Previewing is free; importing needs Pro, Lifetime or Team.
Using your own branded domain? Add it in Settings > Domains before you import (Step 3 lists the DNS records), so the preview can match those links to it. Want to look first? Drop the file on the migration page: it is read in your browser and nothing is uploaded.
Create a Flyn account
Sign up at flyn.to/signup, no credit card required. Uploading and previewing an import is free on every plan; creating the links needs Pro, Lifetime or Team.
Open Links > Import links
In the Flyn dashboard, open the Links page and choose Import links, or go straight to flyn.to/links/import.
Upload your Bitly CSV
Drag and drop the file onto the importer, click to browse, or paste the rows (CSV, TSV and plain text all work). Flyn recognizes the column names Bitly documents for its export (Link, Custom Link, Title, Destination URL, Date created, plus the older Bitlink and Long URL names). Bitly does not publish a sample file, so check the suggested mapping. You can change any column mapping in the Review step.
Preview, then import
The preview shows what will happen to every link before anything is created. Links on your own branded domain can keep their back-halves when that domain is added in Flyn first. Links on bit.ly cannot move, so each gets a new Flyn link on flyn.co (or a domain you pick in the preview). Choose whether to reuse old back-halves on flyn.co where they are free, and whether a taken back-half is skipped or renamed; existing links are never overwritten. Then start the import and download the report that maps each old short link to its new one.
Step 3: Domain & DNS Migration
Only links on your own branded domain can keep working after the move. Add the domain in Flyn and import its links before you switch DNS, so the links are already there when traffic arrives. Links on domains Bitly owns stay with Bitly, and printed QR codes that encode those links keep pointing there.
Add your domain in Flyn first
In Flyn, go to Settings > Domains > Add Domain and enter your branded short domain (for example go.yourcompany.com). Custom domains are included on Pro, Lifetime and Team, up to 3 per account. Do this before you import, so the preview matches your links to the domain.
Add the TXT record and click Verify
At your DNS provider, add the TXT record Flyn shows: _flyn on your root domain (_flyn.yourcompany.com, even when the short domain is go.yourcompany.com; many DNS panels want just _flyn as the name) with the flyn-verify value. Click Verify. This proves you own the domain and does not change where your links point.
Point the domain at Flyn
After your links are imported, replace the record that points your domain at Bitly (usually a CNAME to cname.bitly.com): use a CNAME to cname.flyn.to for a subdomain, or an A record to 76.76.21.21 for a root domain. Keep the hostname the same.
Verify again and test
DNS changes usually apply within minutes but can take up to 48 hours. Click Verify again: Flyn marks the domain Active once it finds the TXT record and the record pointing at Flyn. Then open a few old short links to confirm they redirect.
DNS Record Summary
| Field | Before | After |
|---|---|---|
| Type | CNAME | CNAME (subdomain) or A (root domain) |
| Host | go (or your subdomain) | go (no change), or @ for a root domain |
| Target | cname.bitly.com | cname.flyn.to or 76.76.21.21 |
| Ownership (TXT) | None | _flyn.yourcompany.com with the flyn-verify= value from Settings > Domains |
What Transfers
Here is what carries over from Bitly to Flyn and what needs to be reconfigured. A back-half can be reused when it uses only letters, numbers, hyphens and underscores and is not reserved for Flyn's own pages; the preview flags the rest, and those links get a new random back-half.
| Item | Transfers | Notes |
|---|---|---|
| Destination URLs | All long URLs are preserved exactly as-is | |
| Custom back-halves | On your domain | Kept on your own branded domain when it is added in Flyn before you import. Back-halves from bit.ly can be reused on flyn.co (or a domain you pick in the preview) when they are free |
| Titles | If in file | The Title column of the all-links export maps to the link title; the select-up-to-100 export has no title |
| Tags | If in file | Bitly's export field list does not include tags; if your file has a tags column, Flyn maps it |
| Custom domains | Add it in Flyn before importing, then switch the CNAME from cname.bitly.com to cname.flyn.to (root domain: A record 76.76.21.21) and click Verify | |
| Click analytics | Historical analytics stay in Bitly, new clicks tracked in Flyn | |
| QR codes | Regenerate | Printed QR codes that encode your own domain follow it to Flyn; ones that encode bit.ly keep pointing there. New QR codes are free in Flyn |
| bit.ly short links | bit.ly is owned by Bitly, so those links stay there. Each gets a new Flyn link, and the import report maps old to new |
Post-Migration Verification
After completing the migration, work through this checklist to verify everything is working.
- Verify 5-10 sample short links resolve to correct destinations
- Confirm custom domain shows a green checkmark in Flyn dashboard
- Check that new clicks are appearing in Flyn analytics
- Test QR codes if you regenerated them in Flyn
- Use the import report to replace published bit.ly links with their new Flyn links where you can
- Update any integrations or API calls to use Flyn endpoints
- Keep your Bitly account active for 30 days as a safety net
Troubleshooting
Common issues and how to resolve them.
Links returning 404 after migration
DNS changes can take up to 48 hours to reach everyone. Use a DNS checker (like whatsmydns.net) to confirm the record points to cname.flyn.to (or 76.76.21.21 for a root domain), and clear your browser cache. The domain should show Active under Settings > Domains; if it does not, click Verify there. If you imported before adding the domain in Flyn, those links were created on flyn.co: add the domain and run the import again.
Old bit.ly links still go to Bitly
The bit.ly domain is owned and operated by Bitly, it cannot be migrated. Only links on your custom branded domain (e.g., go.yourcompany.com) keep their URLs. bit.ly links will continue working through Bitly; the import report lists the new Flyn link for each one.
Analytics showing zero clicks after import
Historical analytics from Bitly do not transfer. Flyn counts clicks from the moment traffic reaches Flyn, so new clicks appear once your links are live on Flyn and your domain points at it.
Columns mapped to the wrong fields
Bitly has renamed its export columns over time (Bitlink became Link, Long URL became Destination URL). Flyn accepts both generations; if a column is still mapped wrong, change it in the Review step. If accented characters look broken, save the file as UTF-8 CSV.
Frequently Asked Questions
How long does it take to migrate from Bitly to Flyn?
Most of the time goes into the export: Bitly emails the file, and large exports can take up to 30 minutes. In Flyn, the importer creates links in batches of 100 with a progress bar, so most imports take minutes. Accounts in their first week may have a daily limit on new links; if an import reaches it, the importer stops and lets you download the remaining rows as a file to import once 24 hours have passed. If you move a branded domain, DNS changes usually apply within minutes but can take up to 48 hours.
Will my existing short links break during migration?
Links on your own branded domain keep working if you import them onto that domain before you switch DNS: add the domain in Flyn, import, then change the record and click Verify. While DNS updates, some visitors still reach Bitly and others reach Flyn, and requests can fail briefly while the SSL certificate is issued, so keep your Bitly account active until the switch is done and lower the record's TTL a day ahead. Links on bit.ly are not affected by the move and keep working through Bitly.
Can I migrate bit.ly links to Flyn?
No. The bit.ly domain is owned by Bitly, so those links stay with Bitly. The importer creates a new Flyn link for each one, and the import report maps every old bit.ly link to its new Flyn link. Links on your own custom domain (like go.yourcompany.com) can keep working: import them onto that domain in Flyn, then move its DNS to Flyn and click Verify.
Do my Bitly analytics transfer to Flyn?
Historical click data stays in Bitly. Once your domain points to Flyn, all new clicks are tracked in Flyn's analytics with richer data including real-time streams, city-level geo, and A/B test metrics.
Can I keep using Bitly and Flyn simultaneously?
Yes. You can create new links in Flyn while keeping your Bitly account active. However, a custom domain can only point to one service at a time via DNS.
Is there a limit on how many links I can import?
Previewing an import is free on every plan, and on the free plan you can still create 25 links a month by hand. Importing needs Pro, Lifetime or Team, with no cap on how many links you import. Accounts less than 7 days old may have a daily limit on new links, an abuse safeguard; if an import reaches it, the importer stops cleanly and lets you download the rows that were not imported, to import once 24 hours have passed. The REST API takes one destination per request (Create Many only copies a single destination) and is rate limited, so the importer is the way to move a whole account.
What happens to my Bitly API integrations?
You will need to update API calls to use Flyn's REST API. The endpoints and authentication differ; Flyn's API creates, lists, updates and deletes links and returns click stats, and API keys need a paid plan (Pro, Lifetime or Team). See the API docs at flyn.to/docs.
Ready to Migrate from Bitly?
Create a free Flyn account and preview your Bitly import at no cost. No credit card required to sign up. Importing needs Pro, Lifetime or Team, and most imports take minutes. Accounts in their first week may have a daily limit on new links; if an import reaches it, the importer stops and lets you download the remaining rows as a file to import once 24 hours have passed.
Already have a Flyn account? Open the importer