Links

Get a link

Returns a single link, including its total click count.

GET https://u2l.ai/api/v1/links/{domain}/{slug}

Authorizations

Authorizationstringrequired

Bearer authentication header of the form Bearer <token>, where <token> is your U2L API key (u2l_live_...). Create one in the dashboard under Settings > API.

Path Parameters

domainstringrequired

The link's domain (e.g. u.gy or u2l.ai).

slugstringrequired

The link's slug (the part after the domain).

Response 200

idstring

Link ID (UUID).

slugstring

The part after the domain.

domainstring

The link's domain.

destinationstring

Where the link redirects to.

titlestring

Optional title.

tagsstring[]
hasPasswordboolean
expiresAtstring

Expiration time, if set.

permanentboolean

true = 301 redirect, false = 302.

typestring

SL = short link, QR = QR code, PG = link-in-bio page. One of: SL, QR, PG.

createdAtstring
updatedAtstring
folderIdstring
clicksinteger

Total clicks.

ogTitlestring

Custom social preview title.

ogDescriptionstring
ogImagestring
abTestEnabledboolean
destinationBstring

A/B variant destination.

splitPercentageinteger

Traffic percentage to destination A.

qrStyleobject

QR styling options (QR links only).

externalBrowserboolean

Open in the phone's default browser when tapped inside in-app browsers (Android).

Errors

401 Missing or invalid API key.
404 The resource does not exist or is not yours.
429 Rate limit exceeded. Check X-RateLimit-Reset for when the window resets.

See Rate Limits & Errors for the error envelope and per-plan limits.

curl https://u2l.ai/api/v1/links/u.gy/my-link \
  -H "Authorization: Bearer u2l_live_your_api_key"
const response = await fetch("https://u2l.ai/api/v1/links/u.gy/my-link", {
  headers: {
    "Authorization": "Bearer u2l_live_your_api_key",
  },
});

const data = await response.json();
console.log(data);
import requests

response = requests.get(
    "https://u2l.ai/api/v1/links/u.gy/my-link",
    headers={"Authorization": "Bearer u2l_live_your_api_key"},
)

print(response.json())
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	req, _ := http.NewRequest("GET", "https://u2l.ai/api/v1/links/u.gy/my-link", nil)
	req.Header.Set("Authorization", "Bearer u2l_live_your_api_key")
	res, _ := http.DefaultClient.Do(req)
	defer res.Body.Close()

	data, _ := io.ReadAll(res.Body)
	fmt.Println(string(data))
}
{
  "id": "9f0c2f9e-3b7a-4c1d-8e5f-2a6b7c8d9e0f",
  "slug": "my-link",
  "domain": "u.gy",
  "destination": "https://example.com/my-page",
  "title": "My example link",
  "tags": [
    "campaign"
  ],
  "hasPassword": false,
  "expiresAt": null,
  "permanent": true,
  "type": "SL",
  "createdAt": "2026-07-20T10:30:00.000Z",
  "updatedAt": "2026-07-20T10:30:00.000Z",
  "folderId": null,
  "clicks": 128
}