Minting a token
Tokens are minted on the console’s API tokens page,https://app.utmkit.co/tokens.
1
Check whether your workspace requires two-factor authentication
If your workspace requires two-factor authentication, minting is refused until you turn
it on or sign in through single sign-on; the page says so. See
Two-factor authentication.
2
Name it and choose its permissions
Give the token a name that says where it will live (“Zapier”, “reporting job”). Then
tick the permissions it needs, and only those. The picker is grouped by resource, and
it only offers what your role in the workspace can grant.
3
Optionally set an expiry date
A token with an expiry stops working at the end of that day, UTC. Without one it
works until you revoke it.
4
Copy it now
The full token is shown once, at minting. Afterwards the page shows only its prefix,
when it was created and when it was last used. If you lose it, revoke it and mint
another.
The nine permissions
A permission is a word the token carries. Each API operation and each MCP tool declares the one it requires, and the reference shows it on every page.
Reads need only membership. Writes also need your role to allow them, and that is
checked live on every call: a token minted by an admin who is later made a viewer keeps
its permissions but loses the writes, on the very next request.
What a refusal looks like
The API answers refusals in one shape, described in Errors. The ones that concern the token:- 401
unauthenticated— the token is unknown, revoked, expired, or its holder is no longer a member. The door does not say which; all four are the same fact about the account behind it. - 402
subscription_required/subscription_ended— the organization has no live subscription. Nothing about the token fixes this; see Billing. - 403
missing_permission— the token was not minted with the permission this operation needs. The message names it:This token does not carry links:write.This is the one refusal you can fix yourself, by minting a token with the right box ticked. - 403
role_forbids— the token carries the permission, but your role in the workspace cannot exercise it:Your role in this workspace cannot do that.
Revoking
Revoke a token on the Tokens page. The next request with it is refused with 401, and an open MCP session dies with it: no session outlives its token.Connected applications
An assistant that connects to the MCP server by signing in — claude.ai, Claude Desktop’s connectors, the Claude mobile app, Claude Code — does not need a token from this page. It sends you to a UTMKit consent page, where you choose the workspace and tick the permissions from the same list above; nobody can grant more than their role allows. What it receives is listed on the Tokens page under Connected applications, with the person who connected it, its permissions and when it was last used.- Lifetime. It stays connected while it is used at least once every 30 days. Its access renews itself every hour without asking you again.
- Disconnecting. You can disconnect your own; an owner or admin can disconnect anyone’s. The next request is refused, and the activity log records who did it. If a renewal is ever replayed — a sign that a copy exists — UTMKit cuts the connection itself and logs that too.
- Only for the MCP server. A connection’s credentials start with
utmo_andutmr_and openhttps://app.utmkit.co/mcponly; the REST API refuses them. Scripts and integrations keep usingutmk_tokens.
401 with
WWW-Authenticate: Bearer resource_metadata="https://app.utmkit.co/.well-known/oauth-protected-resource/mcp";
the authorization server’s metadata is at https://app.utmkit.co/.well-known/oauth-authorization-server.
It supports the authorization code grant with PKCE (S256) for public clients, the
resource parameter, refresh-token rotation, dynamic client registration and client ID
metadata documents.