API resource
Trackable links
Short links on go.creatoros.ca that count every click (bots excluded) by day, source, referrer, country and device. Add ?s=<source> to a short URL to tag where a click came from, e.g. ?s=ig-bio or ?s=meta-ads; the rest of the visitor's query string passes through to the destination. Links belong to the key's workspace, slugs are permanent, and a deleted link answers 410. Up to 1,000 links per workspace and 100 new links an hour.
List links
/v1/linksEvery link with its destination, total clicks and daily: the last 14 days of clicks, oldest first.
curl "https://creatoros-production-5658.up.railway.app/v1/links" \
-H "Authorization: Bearer $CREATOROS_API_KEY"{
"links": [
{
"id": "5b9f7c2e-1d4a-4f7e-9c3b-2a8e6d1f0c44",
"slug": "launch",
"short_url": "https://go.creatoros.ca/launch",
"destination": "https://www.creatoros.ca/subscribe",
"title": "Launch post",
"source": "manual",
"clicks": 212,
"last_clicked_at": "2026-09-30T21:04:11Z",
"created_at": "2026-09-25T15:00:00Z",
"daily": [
3,
8,
12,
20,
18,
9,
14,
22,
30,
25,
17,
11,
9,
14
]
}
]
}Create a link
/v1/linksOnly http(s) destinations. Without slug you get a random 7-character one.
Body
urlurlrequiredWhere the link goes.
slugstringCustom slug (permanent; 409 slug_taken if used).
titlestringLabel on the Links page.
curl -X POST "https://creatoros-production-5658.up.railway.app/v1/links" \
-H "Authorization: Bearer $CREATOROS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://www.creatoros.ca/subscribe",
"title": "Meta ad: pricing"
}'{
"link": {
"id": "5b9f7c2e-1d4a-4f7e-9c3b-2a8e6d1f0c44",
"slug": "k3Xp9aQ",
"short_url": "https://go.creatoros.ca/k3Xp9aQ",
"destination": "https://www.creatoros.ca/subscribe",
"title": "Meta ad: pricing",
"clicks": 0
}
}Update a link
/v1/links/{linkId}Change the destination or title. The slug never changes.
Path parameters
linkIdstringrequiredThe link id.
Body
urlurlNew destination.
titlestringNew label.
curl -X PATCH "https://creatoros-production-5658.up.railway.app/v1/links/5b9f7c2e-1d4a-4f7e-9c3b-2a8e6d1f0c44" \
-H "Authorization: Bearer $CREATOROS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://www.creatoros.ca/pricing"
}'{
"link": {
"id": "5b9f7c2e-1d4a-4f7e-9c3b-2a8e6d1f0c44",
"destination": "https://www.creatoros.ca/pricing"
}
}Delete a link
/v1/links/{linkId}The short URL then answers 410 Gone; its slug is never reused.
Path parameters
linkIdstringrequiredThe link id.
curl -X DELETE "https://creatoros-production-5658.up.railway.app/v1/links/5b9f7c2e-1d4a-4f7e-9c3b-2a8e6d1f0c44" \
-H "Authorization: Bearer $CREATOROS_API_KEY"{
"ok": true
}Link stats
/v1/links/{linkId}/statsDaily clicks over the window, plus the top sources (?s= tags), referrers, countries and devices.
Path parameters
linkIdstringrequiredThe link id.
Query parameters
daysnumber7, 30 (default) or 90.
curl "https://creatoros-production-5658.up.railway.app/v1/links/5b9f7c2e-1d4a-4f7e-9c3b-2a8e6d1f0c44/stats?days=30" \
-H "Authorization: Bearer $CREATOROS_API_KEY"{
"link": {
"id": "5b9f7c2e-1d4a-4f7e-9c3b-2a8e6d1f0c44",
"short_url": "https://go.creatoros.ca/launch",
"clicks": 212
},
"days": 30,
"total": 212,
"bot_clicks": 9,
"daily": [
{
"date": "2026-09-30",
"clicks": 14
}
],
"sources": [
{
"key": "meta-ads",
"clicks": 96
}
],
"referrers": [
{
"key": "instagram.com",
"clicks": 60
}
],
"countries": [
{
"key": "CA",
"clicks": 88
}
],
"devices": [
{
"key": "mobile",
"clicks": 170
}
]
}