More
API changelog
In short
This page lists changes to the Clikso API, newest first. Most changes only add things. When a change can affect code that already works, it says so.
October 2026
Longer slugs, and slashes in slugs
short_codecan now be up to 30 characters on every plan. It was 20. This only allows more.- On Starter and up,
short_codecan contain/, likeacme/launch. See Choose your own slug for the rules. - On Free, a
short_codewith/gets402 UPGRADE_REQUIRED. If a workspace moves to Free, its nested links keep working, and you can still update them.
Workspaces waiting for payment, and paused workspaces
- Every account has one default workspace that's free forever, and each extra workspace needs its own paid plan. A new extra workspace waits for its first payment; an extra workspace is paused when its paid plan ends.
- Two new errors, both
402:WORKSPACE_PAYMENT_REQUIREDandWORKSPACE_PAUSED. See Errors. Reads and click analytics keep working on a paused workspace, and its short links keep redirecting. - Get workspace details adds
workspaces[].access_state(nullfor a normal workspace,awaiting_paymentorpaused) andworkspaces[].is_default(truewhen the workspace is its owner's default). This only adds fields.
AI apps can connect over MCP (12 October 2026)
- Clikso runs an MCP server at
https://app.clik.so/mcp. Claude, ChatGPT, Gemini, Cursor, VS Code and other AI apps can use it. See Use Clikso from AI apps. - AI apps sign in with OAuth, so they never need an API key. They follow the same plan limits as API keys.
- Nothing changed for API keys. Your integrations keep working as they are.
Fixes to links, slugs and tags (9 October 2026)
- Can affect working code. On Update a link,
nullnow clearsgeo_targeting,device_targeting,ab_testing,og_previewandqr_metadata. Before,nullleft them as they were. Leave a field out to keep it. - Create and update now check four fields.
titlecan be up to 60 characters,descriptionup to 250, andexpired_redirect_urlup to 2,048.expires_atmust be a date. A bad value gets422 VALIDATION_ERRORwithdetails.field, not a500. - Check a slug now says why a slug cannot be used.
reasonisinvalid_formatorreserved, with amessageto show. It is still a200, and a taken slug is still a plainavailable: false. - Get a tag and Update a tag return the real
link_count, not0. - With a key, Get bootstrap returns
subscription.subscription_idasnull, and pending invitations come without a token.
Developer docs
- These docs went live at clik.so/docs, with an API reference for every endpoint a key can call.
- Each page has examples in nine languages and a Markdown copy.
The API is on every plan
- API keys now work on every plan, including Free.
- A Free workspace can hold 3 keys. Keys you already have keep working, even above that number.
Click analytics for API keys
- Three new endpoints: click summary, clicks over time and raw clicks.
- They have their own quota per workspace, per minute and per UTC day. On Free that is 5 a minute and 100 a day. See Limits.
- The AI analytics chat stays in the dashboard. It is not part of the API.
Plan features are checked for API keys
- Can affect working code. Fields that need a paid plan now return
402 UPGRADE_REQUIREDwhen a key sets them on a plan without the feature. - Starter and up: passwords, tracking pixels and custom social previews.
- Pro and up: country rules, device rules and A/B tests.
- Creating a folder or tag past your plan's count also returns
402. - On an update, sending a value the link already has, or clearing a field, always works.
Link passwords stay in the dashboard
- Can affect working code.
GET /links/{id}/passwordno longer accepts API keys. It returns403 API_KEY_NOT_ALLOWED. - Links still show
has_password, and you can still set or clear a password.
September 2026
Rate limits by plan
- Can affect working code. The per-key limit now depends on the plan: 30 requests a minute on Free, 100 on Starter, 300 on Pro and 500 on Business.
- Over the limit you get
429 RATE_LIMITEDwith aRetry-Afterheader.
A cap on API keys per plan
- Each plan now has a limit on how many keys a workspace can hold. It only applies when you create a key.
- Revoked keys do not count toward it.
Good to know
- Responses only ever gain fields. Your code should ignore fields it does not know.
- Error codes are stable. New codes may be added; existing ones keep their meaning.
- The full contract is the API reference.
