Create a short link
A short address on Rizamo's link host that sends people on to url and counts each click, by day and country. Nothing about the person who clicks is kept: no IP address, cookie or device. Link previews (Instagram, Facebook, WhatsApp, Slack, X and others) and bots are not counted. Without profileId, the link is yours (the person, key or agent that made it) and people limited to some profiles do not see it. A team makes up to 1,000 links in 24 hours, and only once it has a connected account or a paid plan (403 until then).
apiKeyAuthorizationBearer <token>An API key from the web app, under Developers. It starts with rz_live_.
Idempotency-Key?string1 to 255 printable characters, new for each request (a UUID); the body up to 1 MB. For 24 hours a repeat with the same key, path and body gets the first answer, with Idempotent-Replayed: true, instead of running again; 5xx, 409 and 429 answers are not kept. Errors, Retries, has the rest.
1 <= length <= 255application/json- body
url*stringWhere the link sends people: a public http or https address, up to 2,048 characters, without line breaks. It is kept as the URL standard writes it (url in the answer: the host in ASCII, the path encoded). Rizamo's own short links are refused, so a link never points at another.
^[^\u0000-\u001f\u007f-\u009f]*$length <= 2048utm?UTM tags Rizamo adds to url as utm_* parameters, so your own analytics (Google Analytics and the like) see where visitors came from. A tag the address already has stays as it is, never overwritten; empty ones add nothing. The tagged address is what url shows in the answer, and it must fit in 2,048 characters too.
profileId?stringA profile you reach, which the link belongs to.
length <= 100expiresAt?stringWhen it stops working, in the future. Left out, it never expires.
date-timeOK
application/json- response
id*stringcode*stringshortUrl*stringThe link to share. It sends people on to url and counts the click.
url*stringWhere it sends people.
profileId*|The profile it belongs to. Null: it is its creator's (the person, key or agent that made it).
source*|nullcreatedBy*||||Null when Rizamo made it on its own, such as for a comment automation.
clicks*integerClicks so far. Link previews and bots are not counted; one person clicking twice counts twice.
-9007199254740991 <= value <= 9007199254740991expiresAt*|From then on the link answers 404. Null: it never expires.
disabledAt*|When Rizamo disabled it for breaking the Acceptable Use Policy: it answers 404 from then on, whatever changes. Null for every other link.
createdAt*stringdate-timeupdatedAt*stringdate-timecurl -X POST 'https://api.rizamo.com/v1/links' \ -H 'Idempotency-Key: 4b9e7c1a-2f3d-4e8a-9c6b-1d2e3f4a5b6c' \ -H 'Content-Type: application/json' \ -d '{ "url": "https://cafelumen.pt/menu", "utm": { "source": "instagram", "medium": "social", "campaign": "winter-menu" }, "profileId": "prof_01m40k9k80fxd8cvng8derm7g9"}'{ "id": "lnk_01m4b3r6g0e48txnypr2tcytdp", "code": "k7Qm2p", "shortUrl": "https://go.rizamo.com/k7Qm2p", "url": "https://cafelumen.pt/menu?utm_source=instagram&utm_medium=social&utm_campaign=winter-menu", "profileId": "prof_01m40k9k80fxd8cvng8derm7g9", "source": null, "createdBy": { "type": "agent", "agent": "claudecode", "name": "Claude Code", "agentId": "agac_01m4rmaz80fs9a5amx5zbezkq2", "onBehalfOf": { "userId": "user_01m4pc7v40fdm89vjt5k51b5h8", "name": "Ana Costa" } }, "clicks": 0, "expiresAt": null, "disabledAt": null, "createdAt": "2026-11-04T10:12:31.000Z", "updatedAt": "2026-11-04T10:12:31.000Z"}