Update a policy smart link
Replaces the routing policy, renames the link, or toggles it active. The policy is validated; routing picks changes up within about a minute. Requires a write-scoped key.
Authorization
bearerAuth Your al_live_<prefix>_<secret> API key. Mint and manage keys in the dashboard.
In: header
Path Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
curl -X PATCH "https://example.com/api/admin/smartlinks/0" \ -H "Content-Type: application/json" \ -d '{}'{ "id": 0, "domain": "string", "slug": "string", "name": "string", "policy": { "v": 1, "arms": { "paid": { "enabled": true, "weight": 1, "label": "string", "trial_days": 1, "require_country_link": true }, "ftl": { "enabled": true, "weight": 1, "label": "string", "trial_days": 1, "require_country_link": true } }, "geo": [ { "countries": [ "string" ], "arms": { "paid": { "enabled": true, "weight": 1, "label": "string", "trial_days": 1, "require_country_link": true }, "ftl": { "enabled": true, "weight": 1, "label": "string", "trial_days": 1, "require_country_link": true } } } ] }, "active": true, "url": "http://example.com", "created_at": 0, "updated_at": 0}{ "detail": { "code": "string", "message": "string" }}{ "detail": { "code": "string", "message": "string" }}Create a policy smart link
Creates https://<domain>/r/<slug>. Slug: 1-32 chars of [a-z0-9_-]; 'paid' and 'ftl' are reserved. Without an explicit policy the link starts with the default: paid/trial 50/50, trial served only to countries that have their own permanent trial link (everyone else gets paid). Requires a write-scoped key. Never contacts OnlyFans.
Dry-run a policy smart link
Answers "where would a visitor from country X land?" WITHOUT redirecting anyone: runs the exact production policy + destination resolution per country and returns one row per (country, eligible arm). Requires a read-scoped key.