Reference
Deep Links
Deep-link APIs create and manage link records that use app configuration already set up in the web panel. The public API does not create apps, edit app-link settings, verify domains, or manage store fallback configuration.
List Deep Links
GET/v1/deep-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. |
| sort | created_at_desc | created_at_asc | updated_at_desc | updated_at_asc | clicks_desc | clicks_asc | Optional | Defaults to created_at_desc. |
Create Deep Link
POST/v1/deep-links
Provide deepLinkAppId or appId. Shortify uses that app's verified domain and app-link configuration. If url is omitted, the app default URL is used.
| Parameter | Type | Required | Description |
|---|---|---|---|
| deepLinkAppId | string | Required | Configured deep-link app ID. appId is also accepted. |
| url | string | Optional | Destination URL. Defaults to the app default URL when configured. |
| key | string | Optional | Custom slug. slug is also accepted. |
| title | string | Optional | Human-readable title. |
| objects | object | null | Optional | JSON object with JSON values. |
| tags | string[] | Optional | Tag names to attach. |
| comments | string | null | Optional | Internal note. |
| password | string | null | Optional | Optional password protection. |
| expiresAt | ISO date | null | Optional | Expiration time. |
| 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://. |
Create deep link
curl -X POST "https://api.shortify.com/v1/deep-links" \
-H "api-key: sk_live_your_server_key" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: invite-deep-link-create" \
--data '{
"deepLinkAppId": "app_01HV4Z4Y6W3D4J9B2Y8QH6P8JS",
"key": "invite-abc",
"title": "Invite flow",
"objects": {"campaign": "invite-2026"},
"tracking": {"utmSource": "sms", "utmCampaign": "invite-2026"}
}'201
Created{
"success": true,
"data": {
"id": "link_01HV5A4W7QJ9K2X4Q8ZW5FGZ2R",
"title": "Invite flow",
"url": "https://example.com/app-open",
"domain": "go.example.com",
"key": "invite-abc",
"shortLink": "https://go.example.com/invite-abc",
"linkType": "DEEPLINK",
"deepLinkAppId": "app_01HV4Z4Y6W3D4J9B2Y8QH6P8JS",
"archived": false,
"objects": {
"campaign": "invite-2026"
},
"tags": []
},
"requestId": "req_01HV5A4W7QJ9K2X4Q8ZW5FGZ2R"
}Retrieve, Update, Or Archive A Deep Link
GET PATCH DELETE/v1/deep-links/{linkId}
Use the deep-link ID returned by list or create. PATCH accepts editable link fields. DELETE archives the deep link without deleting analytics history or app configuration.
Archive deep link
curl -X DELETE "https://api.shortify.com/v1/deep-links/link_01HV5A4W7QJ9K2X4Q8ZW5FGZ2R" \
-H "api-key: sk_live_your_server_key"