Skip to main content
POST
Create a governed short link

Authorizations

Authorization
string
header
required

utmk_, minted on /tokens

Body

application/json

Link input

android_url
string | null

optional Android destination (spec 047): an app link or a Play page, https only; phones on Android are routed here, blank clears it

campaign_id
integer | null
destination
string<uri> | null
domain
string

optional; a verified custom domain name, else the shared domain

expires_at
string<date-time> | null
ios_url
string | null

optional iOS destination (spec 047): an app link or an App Store page, https only; phones on iOS are routed here, blank clears it

note
string | null

free text kept on the link; blank clears it

short_code
string

optional; random when omitted

tags
string[]

tag names (spec 039): an existing tag of the workspace by name, case-insensitive, else a new one; on update the list replaces the link's tags and [] clears them

utm_campaign
string
utm_content
string
utm_medium
string
utm_source
string
utm_term
string
whatsapp_message
string | null

the prefilled message, plain text, never URL-encoded

whatsapp_number
string | null

a WhatsApp click-to-chat link (issue #202): the phone in international format (+, spaces and dashes are stripped). Given INSTEAD of destination — the wa.me URL is composed and the message encoded once, server-side

Response

Link

android_url
string | null
campaign_id
integer | null
created_at
string<date-time>
created_by
object
destination
string
expires_at
string<date-time> | null
id
integer
ios_url
string | null
note
string | null
qr_url
string<uri>

the short URL with the scan marker

short_code
string
short_url
string<uri>
state
enum<string>
Available options:
live,
pending,
blocked,
expired
tags
object[]

the link's tags, by name without regard to case

utm_campaign
string | null
utm_content
string | null
utm_medium
string | null
utm_source
string | null
utm_term
string | null
warning
string | null

governance warning when the convention warns rather than blocks