Get started

SDK API reference

The SDK API is what apps call. It is separate from the dashboard and uses an app's SDK key, never your account.

Base URL

https://api.unolink.dev/v1

Authentication

Create a key in the dashboard under your app's SDK tab (Pro plan and up), and send it in a header:

X-Unolink-Key: ulk_…

The key goes inside your app, so treat it as public. It can only look up and report data for the one app it belongs to, and you can revoke it at any time. Use one key per environment or build so you can revoke them separately. The full key is shown once, when you create it; Unolink stores only a hash.

Errors

Errors are JSON problem details with a status, a title, a detail and, where useful, a stable code.

StatusWhen
401The key is missing, malformed, unknown or revoked (code: invalid_key).
403The app's owner is not on a plan that includes the SDK API.
404The resource doesn't exist, or belongs to another app.
429Too many requests from one IP address. Retry later, with backoff.

GET /v1/clicks/{clickId}

Resolves a click ID from the Google Play install referrer to its link.

curl https://api.unolink.dev/v1/clicks/clk_01JA9Q3F6Z8W2K4N7R5T1V0X3Y -H "X-Unolink-Key: ulk_…"
{
  "clickId": "clk_01JA9Q3F6Z8W2K4N7R5T1V0X3Y",
  "occurredAt": "2026-10-08T09:41:12.512+00:00",
  "link": { "slug": "tiktok", "name": "TikTok", "isDefault": false },
  "deepLink": "/promo/3for2",
  "params": { "offer": "3for2" },
  "utm": { "source": "tiktok", "medium": "paid", "campaign": "launch", "term": null, "content": "ad7" }
}
  • link.slug is null for the app's main link.
  • deepLink and params are the link's current values, so an edit made after the click still reaches the app.
  • The UTM tags are the ones on the link that was tapped.