# UTMKit - [UTMKit documentation](https://docs.utmkit.co/en/index.md): What UTMKit is, and where to start whether you use the console or integrate with the API and the MCP. - [Get started](https://docs.utmkit.co/en/get-started/index.md): Sign up with your email, get your first workspace and create your first governed link from the assistant. - [The assistant](https://docs.utmkit.co/en/get-started/the-assistant.md): What the chat can do, how it applies your workspace's rules, and how it checks its own answers. - [Concepts](https://docs.utmkit.co/en/get-started/concepts.md): The words used across these guides, one short paragraph each, with a link to the page that explains each in full. - [Create a link](https://docs.utmkit.co/en/links/create.md): How a governed short link is created — destination, UTM parameters, short code, domain and campaign — and what the workspace's rules check before the link exists. - [Edit and withdraw a link](https://docs.utmkit.co/en/links/edit-and-withdraw.md): What can change on a link after it is created, what never changes and why, and what happens to visitors when a link is withdrawn. - [Expiry dates](https://docs.utmkit.co/en/links/expiry.md): Give a link a last day; it stops resolving at the end of that day, reads Expired in your list, and keeps its numbers. - [Custom domains](https://docs.utmkit.co/en/links/custom-domains.md): Publish your short links on your own subdomain instead of the shared one, and keep them there for every workspace in your organization. - [Tags and saved views](https://docs.utmkit.co/en/links/tags-and-saved-views.md): Group links across campaigns with coloured tags, filter the Links page with one search string, and save a filter under a name the whole workspace can use. - [Destination health](https://docs.utmkit.co/en/links/destination-health.md): How UTMKit checks the page a link points at — before the link exists, and every day after — and how it tells you when a destination stops answering. - [Deep links](https://docs.utmkit.co/en/links/deep-links.md): One short link that sends iPhones to your iOS destination, Android phones to your Android destination, and everyone else to the web page. - [QR codes](https://docs.utmkit.co/en/qr-codes/index.md): Every short link has a QR code you can preview, size and download, and the code keeps working when the destination changes. - [Scans vs clicks](https://docs.utmkit.co/en/qr-codes/scans-vs-clicks.md): A scan of a printed code is counted apart from a click on the same link, so a poster and an email can be compared. - [QR code designs](https://docs.utmkit.co/en/qr-codes/designs.md): Set your colours, shapes and logo once, and every code anyone in the account downloads comes out in your house style. - [Campaigns](https://docs.utmkit.co/en/campaigns/index.md): A campaign groups a workspace's links under one name and gives the report something to filter by. - [The convention](https://docs.utmkit.co/en/rules/the-convention.md): The shape every UTM value in the workspace must have, and whether a link that breaks it is refused or only flagged. - [Approved values](https://docs.utmkit.co/en/rules/approved-values.md): Close a UTM parameter to a list of values you have approved, one parameter at a time, and know what retiring the last one does. - [Dependency rules](https://docs.utmkit.co/en/rules/dependency-rules.md): Narrow one UTM parameter by the value of another, as in "when utm_source is google, utm_medium may only be cpc or display". - [Member locks](https://docs.utmkit.co/en/rules/member-locks.md): Lock a member to the approved values of chosen UTM parameters, so a junior can use the sources you have but cannot invent one. - [Audit existing URLs](https://docs.utmkit.co/en/rules/audit-existing-urls.md): Check the links you already have, and URLs pasted from anywhere, against the workspace's rules; accept the findings that are deliberate and apply the spellings that should win. - [The report](https://docs.utmkit.co/en/analytics/the-report.md): Clicks over time, sliced by source, medium, campaign and more, with automated visits left out and the page saying so. - [Exports](https://docs.utmkit.co/en/analytics/exports.md): Two CSV files — the workspace's links and a finished audit's findings — and what every column means. - [Scheduled reports](https://docs.utmkit.co/en/analytics/scheduled-reports.md): A short email every week or month with the period's numbers and a link to the full client report, sent to the people you name. - [Client reports and branding](https://docs.utmkit.co/en/analytics/client-reports-and-branding.md): A read-only report a client opens with a link and no account, on the agency's own domain, under the agency's logo and colours. - [Conversions](https://docs.utmkit.co/en/analytics/conversions.md): A conversion is a result your own server reports against a link — a purchase, a signup, a lead — so the report says which links produced results, not only which got clicked. - [Workspaces and organizations](https://docs.utmkit.co/en/workspaces/index.md): What an organization owns, what a workspace owns, how to move between workspaces and how to create one. - [Members and roles](https://docs.utmkit.co/en/workspaces/members-and-roles.md): The four roles a workspace seat can hold, what each may change, and how to invite, re-assign and remove people. - [Activity log](https://docs.utmkit.co/en/workspaces/activity-log.md): Who changed what in a workspace, recorded together with the change itself and readable by owners and administrators. - [Billing](https://docs.utmkit.co/en/billing/index.md): The trial, the plans, what happens when an allowance runs out, how to change or cancel a plan, and the way back after a subscription ends. - [Two-factor authentication](https://docs.utmkit.co/en/security/two-factor.md): Add a second step to your sign-in with an authenticator app, keep recovery codes, and require it of everyone in a workspace. - [Single sign-on](https://docs.utmkit.co/en/security/single-sign-on.md): Let your organization sign in through Okta, Google, Microsoft or another OpenID Connect provider, prove your email domains, and decide whether it is required. - [APIs & MCP](https://docs.utmkit.co/en/developers/index.md): Two doors into the same workspace: a REST API for your code, and an MCP server for your assistant. - [Authentication & tokens](https://docs.utmkit.co/en/developers/authentication.md): Mint a token on the console, choose what it may do, and send it as a bearer on every request. - [MCP server](https://docs.utmkit.co/en/developers/mcp.md): Point Claude Desktop, Claude Code or Cursor at your workspace: nineteen tools, each behind one token permission. - [Rate limits](https://docs.utmkit.co/en/developers/rate-limits.md): A per-token request limit with a retry hint, and two abuse bounds that answer with the same status and a different code. - [Errors](https://docs.utmkit.co/en/developers/errors.md): Every refusal comes back in one envelope, with a code from a closed list and a sentence a person can read. - [List links of the token's workspace, newest first](https://docs.utmkit.co/api-reference/links/list-links-of-the-tokens-workspace-newest-first.md): Requires a token with the `links:read` permission. - [Create a governed short link](https://docs.utmkit.co/api-reference/links/create-a-governed-short-link.md): Requires a token with the `links:write` permission. - [One link](https://docs.utmkit.co/api-reference/links/one-link.md): Requires a token with the `links:read` permission. - [Update destination, UTMs or expiry; re-validated and re-scanned](https://docs.utmkit.co/api-reference/links/update-destination-utms-or-expiry;-re-validated-and-re-scanned.md): Requires a token with the `links:write` permission. - [Withdraw the link — removed from the edge on the console's own path](https://docs.utmkit.co/api-reference/links/withdraw-the-link-—-removed-from-the-edge-on-the-consoles-own-path.md): Requires a token with the `links:write` permission. - [List the tags of the token's workspace, with their link counts](https://docs.utmkit.co/api-reference/tags/list-the-tags-of-the-tokens-workspace-with-their-link-counts.md): Requires a token with the `links:read` permission. - [Create a tag ahead of any link — the colour may be chosen](https://docs.utmkit.co/api-reference/tags/create-a-tag-ahead-of-any-link-—-the-colour-may-be-chosen.md): Requires a token with the `links:write` permission. - [List campaigns of the token's workspace, with their link counts](https://docs.utmkit.co/api-reference/campaigns/list-campaigns-of-the-tokens-workspace-with-their-link-counts.md): Requires a token with the `campaigns:read` permission. - [Create a campaign — a repeated name returns the existing one](https://docs.utmkit.co/api-reference/campaigns/create-a-campaign-—-a-repeated-name-returns-the-existing-one.md): Requires a token with the `campaigns:write` permission. - [One campaign](https://docs.utmkit.co/api-reference/campaigns/one-campaign.md): Requires a token with the `campaigns:read` permission. - [Rename or re-describe — existing links keep their utm_campaign](https://docs.utmkit.co/api-reference/campaigns/rename-or-re-describe-—-existing-links-keep-their-utm_campaign.md): Requires a token with the `campaigns:write` permission. - [The workspace's UTM convention](https://docs.utmkit.co/api-reference/rules/the-workspaces-utm-convention.md): Requires a token with the `rules:read` permission. - [Update the convention — casing, separator, required parameters, mode; a field left out keeps its value](https://docs.utmkit.co/api-reference/rules/update-the-convention-—-casing-separator-required-parameters-mode;-a-field-left-out-keeps-its-value.md): Requires a token with the `rules:write` permission. - [The approved values, per UTM parameter](https://docs.utmkit.co/api-reference/rules/the-approved-values-per-utm-parameter.md): Requires a token with the `rules:read` permission. - [Approve values for one parameter — additive, repeats are no-ops](https://docs.utmkit.co/api-reference/rules/approve-values-for-one-parameter-—-additive-repeats-are-no-ops.md): Requires a token with the `rules:write` permission. - [Retire an approved value — retiring the last one OPENS the parameter](https://docs.utmkit.co/api-reference/rules/retire-an-approved-value-—-retiring-the-last-one-opens-the-parameter.md): Requires a token with the `rules:write` permission. - [The dependency rules, one row per allowed value under a driving pair](https://docs.utmkit.co/api-reference/rules/the-dependency-rules-one-row-per-allowed-value-under-a-driving-pair.md): Requires a token with the `rules:read` permission. - [Allow values for a target under a driving pair — additive](https://docs.utmkit.co/api-reference/rules/allow-values-for-a-target-under-a-driving-pair-—-additive.md): Requires a token with the `rules:write` permission. - [Remove one dependency rule — one allowed value, not the whole set](https://docs.utmkit.co/api-reference/rules/remove-one-dependency-rule-—-one-allowed-value-not-the-whole-set.md): Requires a token with the `rules:write` permission. - [Click report — scans reported apart from clicks](https://docs.utmkit.co/api-reference/analytics/click-report-—-scans-reported-apart-from-clicks.md): Requires a token with the `analytics:read` permission. - [Report a conversion against one of the workspace's links](https://docs.utmkit.co/api-reference/conversions/report-a-conversion-against-one-of-the-workspaces-links.md): Requires a token with the `conversions:write` permission. ## OpenAPI Specs - [openapi](/openapi.json)