Documentation
furl.io in five minutes
furl.io turns long URLs into short links, redirects visitors in under a millisecond, and shows every click as it happens. Each click can also go to Google Analytics 4 and to your own webhook.
What you get
- Short links such as
furl.io/aB9xK2q, or your own alias likefurl.io/launchwith a custom code from your plan. - Analytics: clicks and unique visitors over time, plus breakdowns by country, city, referrer, device, OS and browser.
- A live view of the last 60 minutes and the latest 25 clicks. New clicks show up within a second or two.
- GA4 forwarding and signed webhooks per link, so clicks land in your own tools too (Pro and higher).
- A JSON API with API keys for automation.
Quickstart: from sign-up to first click
Create an account
Go to Create account, enter your email and a password of 8–72 characters, and accept the Terms of Use and Privacy Policy. Enter the 6-digit code we email you to verify your address; sessions last 7 days.
Create a link
In the dashboard, open Links and press Create link. Paste the destination URL and press Create link. Every other field is optional; hover or tap the i next to a field to see what it does, or read Creating a link.
Share it
Copy the short URL with the copy button and put it wherever people will click it: a post, an email, a QR code. Keep the default
302redirect type so every click is counted.Watch the clicks arrive
Open the link to see its analytics. The Live panel refreshes every 5 seconds and lists each click with its location, referrer and device. The charts and breakdowns cover the last 24 hours to 90 days.
API quickstart
Everything in the dashboard is available over the API at https://furl.io/api/v1. For scripts, create an API key once, then send it as a bearer token. You can also create keys in the dashboard under Settings → API keys.
# 1. Log in and keep the token (valid for 7 days)
TOKEN=$(curl -s https://furl.io/api/v1/auth/login \
-H 'Content-Type: application/json' \
-d '{"email":"[email protected]","password":"your-password"}' | jq -r .token)
# 2. Create an API key for scripts (the full key is shown only once)
curl -s https://furl.io/api/v1/api-keys \
-H "Authorization: Bearer $TOKEN" \
-H 'Content-Type: application/json' \
-d '{"name":"my-script"}'export FURL_API_KEY=furl_... # from the step above
curl -s https://furl.io/api/v1/links \
-H "Authorization: Bearer $FURL_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"original_url":"https://example.com/spring-sale"}'{
"id": 42,
"short_code": "aB9xK2q",
"short_url": "https://furl.io/aB9xK2q",
"original_url": "https://example.com/spring-sale",
"is_custom": false,
"status": "active",
"http_status_code": 302,
"google_analytics_id": null,
"has_ga_secret": false,
"webhook_url": null,
"webhook_secret": null,
"expires_at": null,
"max_clicks": null,
"clicks_used": 0,
"created_at": "2026-10-05T12:00:00Z",
"updated_at": "2026-10-05T12:00:00Z"
}curl -s "https://furl.io/api/v1/links/aB9xK2q/stats?interval=day" \
-H "Authorization: Bearer $FURL_API_KEY"
curl -s "https://furl.io/api/v1/links/aB9xK2q/stats/breakdown?dimension=country" \
-H "Authorization: Bearer $FURL_API_KEY"Keep keys secret
furl_. The full key is shown only once, when you create it.