Programmatically manage links, track events, and access analytics.
Base URL
https://app.utmpro.link/api/v1
All API requests require a Bearer token. Create API keys in Settings → API Keys.
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://app.utmpro.link/api/v1/links
/api/v1/linksList all links with pagination and search.
Query Parameters
page (int, default 1) · pageSize (int, default 25) · search (string) · workspaceId (long, required)// Response
{
"data": [{ "id": 1, "externalId": "lnk_abc123", "slug": "my-link", "domain": "go.utmpro.link", "primaryUrl": "https://example.com", "totalClicks": 150, "createdAt": "2026-06-01T..." }],
"pagination": { "page": 1, "pageSize": 25, "total": 42 }
}
/api/v1/linksCreate a new short link.
// Request Body
{
"primaryUrl": "https://example.com/page",
"domainId": 1,
"customSlug": "my-link", // optional
"utmSource": "newsletter", // optional
"utmMedium": "email", // optional
"utmCampaign": "june2026", // optional
"destinations": [], // optional, for weighted URLs
"tagIds": [1, 2], // optional
"password": null, // optional
"expiresAt": null // optional
}
/api/v1/links/{id}Get a single link by ID.
/api/v1/links/{id}Update an existing link.
/api/v1/links/{id}Archive/delete a link.
/api/v1/links/{id}/analyticsGet analytics for a specific link. Query: interval (1h, 24h, 7d, 30d, 90d)
/api/v1/qr/{linkId}Get QR code data URL for a link.
/api/v1/domainsList workspace domains.
/api/v1/domainsAdd custom domain. Body: {"domain": "links.example.com"}
/api/v1/analytics
Get workspace analytics summary. Returns: clicks, unique clicks, time series, countries, devices, browsers, referrers, top links.
Query: workspaceId (required), interval (1h|24h|7d|30d, default 24h)
/api/v1/events/lead
Track a lead conversion.
{ "linkId": "lnk_abc123", "customerEmail": "user@example.com", "eventName": "signup" }
/api/v1/events/sale
Track a sale with revenue attribution.
{ "linkId": "lnk_abc123", "amount": 99.00, "currency": "USD", "customerEmail": "user@example.com", "referralCode": "PARTNER123" }
/api/v1/partner/salesRecord a partner sale with automatic commission calculation.
/api/v1/partner/programGet partner program info for a workspace.
/api/v1/workspaceGet workspace info including plan, usage, member count.
400Bad Request — Invalid parameters401Unauthorized — Missing or invalid API key403Forbidden — Insufficient permissions/scopes404Not Found — Resource doesn't exist429Too Many Requests — Rate limit exceeded500Internal Server Error| Plan | Requests/min | Requests/hour |
|---|---|---|
| Free | 60 | 1,000 |
| Pro | 300 | 5,000 |
| Business | 1,000 | 20,000 |
| Advanced | 5,000 | 100,000 |
When rate limited, the response includes a Retry-After header.