Tarsana docsDashboard

Create an API access token

Change · POST /v1/access-tokens · MCP tool issue-access-token

Creates a long-lived token for scripts and MCP clients. Send it in the X-Tarsana-Access-Token header. The token is shown only once, so copy it now; if you lose it, create a new one and revoke the old one. A token cannot create, list or revoke tokens, and it expires at expires_at. You need to be signed in with a session to create one.

Roles that can call it: viewer, builder, deployer.

Parameters

NameInRequiredDescription
token_labelbodynoOptional: a name for this token, so that you can tell your tokens apart

Returns

A JSON object with these keys: access_token, token_id, token_label, login, carrier, scopes, tenants, issued_at, expires_at, guarantee, caller_authenticated.

Example request

curl -X POST https://api.tarsana.io/v1/access-tokens \
  -H "X-Tarsana-Session: $SESSION" \
  -H "Content-Type: application/json" \
  --data '{"token_label": "laptop-mcp"}'

Example response

{
  "access_token": "YOUR-ACCESS-TOKEN",
  "token_id": "67e94a06c977c24c",
  "token_label": "laptop-mcp",
  "login": "you@example.com",
  "carrier": "X-Tarsana-Access-Token",
  "scopes": [
    "operate",
    "read",
    "submit"
  ],
  "tenants": [
    "acme"
  ],
  "issued_at": "2026-10-05T02:15:39Z",
  "expires_at": "2027-01-03T02:15:39Z",
  "guarantee": "namespaces are separated, callers are not authenticated",
  "caller_authenticated": false
}

Errors

CodeHTTPWhat it means
invalid_parameter400A value in your request does not have the expected format, for example a submission ID that is not a spec hash. Check the value against the field's description and try again.
unauthenticated401Your request has no credential, or one that Tarsana does not recognise. Sign in with login, or send a valid access token.
forbidden403Your role does not allow this operation. The response names the roles that do; ask for a credential with one of them.
rate_limited429You sent too many requests in a short time. Wait for the number of seconds in retry_after_seconds, then try again.
surface_fault500Something went wrong on our side. Try again later, and contact Tarsana support if it keeps happening.

View this page as Markdown