Data Portability and Leaving WarpLink
What you can export from WarpLink, why custom domains stay yours, what installed apps do after you leave, cancel versus delete, and a leaving checklist.
You can export every link as a CSV from the dashboard or page through them with the REST API, and a custom domain stays yours: you repoint its DNS. Cancelling a paid plan does not stop your links. Deleting your account does, permanently. This page lists what you can take with you and what to plan for before you leave.
What you can export
| Data | How | Notes |
|---|---|---|
| All links | Dashboard, Links page, Export button. The route is GET /api/dashboard/links/export. | One CSV for the whole organization. Needs permission to read links. |
| All links, programmatically | GET /v1/links with an API key that has the links:read scope | limit from 1 to 100 (default 20), offset, and the filters tag, is_active, and search. The response carries pagination with total, limit, offset, and has_more. |
| Apps | GET /v1/apps | iOS and Android configuration for each app. |
| Custom domains | GET /v1/domains | The domains registered to your organization. |
| Click rows | The Exports API, the dashboard Analytics page, or the MCP export_analytics tool | CSV, one row per click. See below. |
| Aggregated analytics | GET /v1/analytics and the dashboard Analytics page | The same figures the dashboard shows, within your plan's retention. See Link analytics. |
The REST API allows 60 requests a minute per key (see Rate limiting). At 100 links a request, an organization with 10,000 links pages through in about two minutes.
Links CSV columns
The file has one row per link and these columns, in this order: slug, domain, destination_url, ios_url, ios_fallback_url, android_url, android_fallback_url, app_bundle_id, app_package_name, og_title, og_description, og_image_url, utm_source, utm_medium, utm_campaign, parameters, tags, match_window_hours, expires_at, password_protected, is_active, created_at, created_by.
created_by is filled only for people who can manage the team, and the column is always present so the file keeps one shape. A password is never exported, only whether the link is password_protected.
Raw click rows
Click-level CSV exports use the Exports API. You start an export for the whole organization or for one link, check its status, and download the finished file as often as you need. Every download of a finished export returns identical bytes, and the file respects your plan's retention window. The same exports are available from the dashboard Analytics page and through the MCP export_analytics tool.
Custom domains are yours
You register a custom domain, so you own it. To move it, point its DNS at the service that will host your links, then remove the domain in the dashboard. Your DNS records are the only thing that decides where your short links resolve.
Two things depend on the domain being served by us, so plan for them:
- Universal Links and App Links. While the domain is active, we serve the association files for it (
apple-app-site-associationandassetlinks.json). Your new host must serve equivalent files for the domain, or links on it stop opening your app. - The default domains.
aplnk.toand the{handle}.aplnk.toapp addresses belong to WarpLink. Links on them cannot move with you. If you want a portable link address, use a custom domain from the start.
What installed apps do after you leave
An installed app that contains the WarpLink SDK calls our API with its SDK key. Users keep the version you shipped until they update, so those calls continue after you leave.
| Your action | What the SDK in an installed app does |
|---|---|
| You cancel a paid plan | Keeps working. Link resolution and attribution continue under the Free plan limits. |
| You delete your organization or account | Its keys are deleted with it, so the calls fail with an invalid-key error and the SDK reports that error to your onLink callback. Your app keeps running. |
To leave cleanly, ship an app update that removes the SDK or replaces it with your own handling, and keep the old links redirecting until most users have updated. You cannot change what an installed version does from the server side.
Cancel or delete
| Cancel a paid plan | Delete your account or organization | |
|---|---|---|
| Links | Keep redirecting | Stop redirecting |
| Data | Kept. Your analytics history is kept for your old plan's retention window. | Removed, and cannot be recovered |
| Account | Stays open on the Free plan | Closed |
| Billing | Your paid plan runs to the end of the period, with no refund. The separate refund-and-end-now option refunds the unused time and ends paid access immediately. | The subscription is cancelled. Deletion does not issue a refund. |
| Reversible | Yes. You can resume the subscription before the period ends, or upgrade again later. | No |
Cancelling is not leaving. If you want to stop paying and keep your links working, cancel. If you want your data removed, export first and then delete. For every plan change in detail, see Plan changes and billing transitions.
Leaving checklist
- Export your links from the dashboard Links page.
- Page
GET /v1/linksand keep the JSON as a second copy. It carries fields the CSV does not, such as link IDs. - Record your analytics figures from the dashboard or
GET /v1/analytics. - List your custom domains with
GET /v1/domainsand decide where each will point. - Set up replacement link hosting and make it serve
apple-app-site-associationandassetlinks.jsonfor each custom domain. - Ship an app update that removes or replaces the SDK, and wait for most users to update.
- Repoint DNS for each custom domain.
- Cancel the subscription if you want to stop paying but keep the account.
- Delete the organization only after steps 1 to 7, because deletion cannot be undone.
Attribution Accuracy
Which install matches are deterministic, the known failure modes, and the method and device checklist for measuring correct, wrong, and unmatched installs.
Plan Changes and Billing Transitions
What happens to redirects, SDK calls, analytics, and grace periods when you cancel, downgrade, miss a payment, pass a limit, or end the domain trial.