Skip to content

Support center

Developer Docs.

SwiftURL has a REST API for creating links, pulling analytics, and wiring the platform into your own tools. The same safety checks and governance apply whether a human or a script creates a link.

API reference OpenAPI 3.1 spec

Authentication

Requests to /api/v1/* accept either a signed-in browser session or an API key. Create keys in the dashboard under Settings → API Keys. Each key is scoped to a workspace, is granted read or read and write access, and is shown only once when created.

Send the key as a bearer token:

curl https://app.swifturl.co/api/v1/links \
  -H "Authorization: Bearer ql_live_your_key_here" \
  -H "x-workspace-id: your_workspace_id"

If you belong to more than one workspace, set the x-workspace-id header to choose one; otherwise your default membership is used. Write operations are further gated by your role.

Create a link

Links are safety-checked before they are created. A link that fails a critical check is rejected.

curl -X POST https://app.swifturl.co/api/v1/links \
  -H "Authorization: Bearer ql_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{ "url": "https://example.com/sale", "domain": "sftl.in", "slug": "spring-sale" }'

POST /api/v1/links supports an Idempotency-Key header, so a retried request will not create a duplicate link.

What you can call

  • Links: GET/POST/api/v1/links, /links/{id}, /links/import
  • Analytics: GET/api/v1/analytics?range=7|30|90, plus geo, campaign, link and realtime breakdowns
  • Campaigns: GET/POST/api/v1/campaigns, /campaigns/{id}
  • Webhooks: GET/POST/api/v1/webhooks, /webhooks/{id}, delivery history
  • UTM presets: GET/POST/api/v1/utm-presets, /utm-presets/{id}
  • Custom domains: GET/POST/api/v1/domains, verify and configure
  • API keys: GET/POST/api/v1/api-keys, /api-keys/{id}

Webhooks

Register endpoints to receive events such as a link's health changing. Each delivery is signed with HMAC-SHA256 so you can verify it came from SwiftURL, and your signing secret is stored encrypted at rest. Deliveries are logged with retry tracking.

Manage endpoints under Settings → Webhooks, or via POST /api/v1/webhooks. Verify a delivery by recomputing the HMAC of the raw request body with your endpoint's signing secret and comparing it to the signature header.

Rate limits & errors

API calls are rate limited to keep the platform reliable. On errors, the API returns a generic message with the relevant HTTP status; detailed diagnostics are logged server-side, not returned to clients.

Need something that isn't here yet? Reach us at support@swifturl.co.