// developer_docs

Fluxly API.

Shorten URLs, fetch analytics and manage links from any code. REST, JSON, one bearer token.

// step_01

Get an API key.

API access ships with the Full Stack plan. Head to the dashboard, scroll to the "Developer API" section, name your key, and click Generate. Your full key is shown once — copy it immediately.

// auth_header
Send your key as a Bearer token on every request:
Authorization: Bearer fluxly_live_xxxxxxxxxxxxxxxxxxxxxxxxx
// step_02

Shorten a URL.

POST to /api/links. target_url is required; everything else is optional. Plan limits apply.

POST /api/links
curl -X POST https://fluxly.uk/api/links \
  -H "Authorization: Bearer fluxly_live_xxxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "target_url": "https://example.com/very/long/path",
    "custom_slug": "my-link",
    "expires_at": "2026-12-31T23:59:00Z",
    "password": "optional-passphrase"
  }'
// response
{
  "link_id": "lnk_abcdef123456",
  "slug": "my-link",
  "target_url": "https://example.com/very/long/path",
  "has_password": true,
  "expires_at": "2026-12-31T23:59:00+00:00",
  "click_count": 0
}
Your short URL: https://fluxly.uk/r/<slug>
// step_03

List, analyze, delete.

GET /api/links
curl https://fluxly.uk/api/links \
  -H "Authorization: Bearer fluxly_live_xxxxxxxxxxxxxxxxxxxxxxxxx"
GET /api/links/{id}/analytics
curl https://fluxly.uk/api/links/lnk_abcdef123456/analytics \
  -H "Authorization: Bearer fluxly_live_xxxxxxxxxxxxxxxxxxxxxxxxx"
DELETE /api/links/{id}
curl -X DELETE https://fluxly.uk/api/links/lnk_abcdef123456 \
  -H "Authorization: Bearer fluxly_live_xxxxxxxxxxxxxxxxxxxxxxxxx"
Analytics returns: total_clicks · timeline (clicks per day) · referrers (top 10) · devices · recent_clicks.
// step_04

Examples.

Node.js
// Node.js (no SDK needed — just fetch)
const res = await fetch("https://fluxly.uk/api/links", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.FLUXLY_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    target_url: "https://example.com/long-url",
    custom_slug: "launch-day",
  }),
});
const link = await res.json();
console.log("Short URL:", `https://fluxly.uk/r/${link.slug}`);
Python
# Python (with requests)
import os, requests

r = requests.post(
    "https://fluxly.uk/api/links",
    headers={"Authorization": f"Bearer {os.environ['FLUXLY_API_KEY']}"},
    json={"target_url": "https://example.com/long-url", "custom_slug": "launch-day"},
)
link = r.json()
print("Short URL:", f"https://fluxly.uk/r/{link['slug']}")
// rate_limits & errors

A few quick notes.

  • · 401 — missing/invalid/revoked key.
  • · 402 — your plan doesn't allow that feature (e.g. password gates on Free).
  • · 409 — slug already taken (try a different one or omit for a random one).
  • · 410 — link expired.
  • · Keys are SHA-256 hashed at rest. We can't recover lost keys — revoke and create a new one.
// ready
Build something cool.