Reference
Links
Link endpoints manage standard short links in the authenticated workspace. They require a workspace Server API Key in the api-key header and use JSON request bodies.
List Links
GET/v1/links
| Parameter | Type | Required | Description |
|---|---|---|---|
| limit | integer | Optional | Default 25. Maximum 100. |
| cursor | string | Optional | Use pagination.nextCursor from the previous page. |
| search | string | Optional | Search title, destination URL, short link, key, domain, or tag name. |
| tag | string | Optional | Exact tag-name filter. |
| domain | string | Optional | Exact domain filter. |
| archived | boolean | Optional | Defaults to false. Set true to list archived links. |
| sort | created_at_desc | created_at_asc | updated_at_desc | updated_at_asc | clicks_desc | clicks_asc | Optional | Defaults to created_at_desc. |
List links
curl "https://api.shortify.com/v1/links?limit=25&search=pricing" \
-H "api-key: sk_live_your_server_key"Create Link
POST/v1/links
Send Idempotency-Key when your backend may retry a create request. The same key and body replay the stored response for 24 hours.
| Parameter | Type | Required | Description |
|---|---|---|---|
| url | string | Required | Destination URL. destinationUrl is also accepted. |
| domain | string | Required | Short-link domain available to the workspace. |
| key | string | Optional | Custom slug. slug is also accepted. A slug is generated when omitted. |
| title | string | Optional | Human-readable title. Defaults to the generated shortLink. |
| objects | object | null | Optional | JSON object with JSON values. Empty objects are stored as null. |
| tags | string[] | Optional | Tag names to attach to the link. |
| comments | string | null | Optional | Internal note. |
| password | string | null | Optional | Optional password. Responses only expose passwordProtected. |
| expiresAt | ISO date | null | Optional | Expiration time. Send null to clear on update. |
| expiredUrl | URL | null | Optional | Where expired traffic should go. |
| tracking | object | Optional | Tracking metadata. Supported keys include utmSource, utmMedium, utmCampaign, utmTerm, utmContent, ref, campaignId, campaignName, channel, adGroupId, adGroup, adId, creativeId, creative, keyword, customParams. |
| desktopOverrideUrl | URL | null | Optional | Optional desktop/web destination override. Must start with http:// or https://. |
| androidOverrideUrl | URL | null | Optional | Optional Android destination override. Must start with http:// or https://. |
| iosOverrideUrl | URL | null | Optional | Optional iOS destination override. Must start with http:// or https://. |
| socialPreview | object | null | Optional | Optional Open Graph and Twitter card overrides. |
Create link
curl -X POST "https://api.shortify.com/v1/links" \
-H "api-key: sk_live_your_server_key" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: pricing-2026-create" \
--data '{
"url": "https://example.com/pricing",
"domain": "go.example.com",
"key": "pricing-2026",
"title": "Pricing campaign",
"objects": {"campaign": "spring-2026"},
"tags": ["pricing", "email"],
"tracking": {"utmSource": "newsletter", "utmCampaign": "spring-2026"}
}'201
Created{
"success": true,
"data": {
"id": "link_01HV4Z4Y6W3D4J9B2Y8QH6P8JS",
"title": "Pricing campaign",
"url": "https://example.com/pricing",
"domain": "go.example.com",
"key": "pricing-2026",
"shortLink": "https://go.example.com/pricing-2026",
"passwordProtected": false,
"clicks": 0,
"botClicks": 0,
"linkType": "SHORTLINK",
"archived": false,
"objects": {
"campaign": "spring-2026"
},
"tags": [
{
"id": "tag_123",
"name": "pricing",
"color": "blue"
}
],
"tracking": {
"utmSource": "newsletter",
"utmCampaign": "spring-2026"
}
},
"requestId": "req_01HV4Z4Y6W3D4J9B2Y8QH6P8JS"
}Retrieve, Update, Or Archive A Link
GET PATCH DELETE/v1/links/{linkId}
Use the stable link ID returned by create and list responses. PATCH accepts the same editable fields as create. DELETE archives the link; it does not remove analytics history.
Update a link
curl -X PATCH "https://api.shortify.com/v1/links/link_01HV4Z4Y6W3D4J9B2Y8QH6P8JS" \
-H "api-key: sk_live_your_server_key" \
-H "Content-Type: application/json" \
--data '{"title":"Updated pricing campaign","objects":{"campaign":"spring-2026","variant":"b"}}'