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 like furl.io/launch with 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

  1. 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.

  2. 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.

  3. 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 302 redirect type so every click is counted.

  4. 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.

Get an API key
# 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"}'
Create a short link
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"}'
201 Created
{
  "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"
}
Read its analytics
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

API keys are 45 characters long and start with furl_. The full key is shown only once, when you create it.