TabGeckoDocs
Website
Documentation / Authentication and scopes

Authentication and scopes

Local operations require a signed-in desktop account and a separate bearer token with the required scopes. Account entitlements, token expiry and revocation are checked independently.

Desktop account requirement

Sign in or register in the desktop account window before accessing profiles, API, MCP or automation. A local API token cannot replace account sign-in. The server confirmation is valid locally for at most 15 seconds; expired confirmation or an unavailable account service blocks further protected operations. Stop and sign-out remain available.

GET /api/v1/account/status reports the confirmation state without exposing account credentials. Account binding and logout endpoints belong to the manager session and are not integration interfaces. The local profile store binds to the first confirmed account; another account cannot access that store.

403 codeMeaning
account.required / account.revoked / account.unavailableSign in again or restore the account connection.
account.owner_mismatchUse the account bound to this local profile store.
account.feature_denied / account.limit_reachedThe account plan does not allow the function or its configured limit is reached.

Bearer authentication

HTTP
Authorization: Bearer <LOCAL_API_TOKEN>
Content-Type: application/json

Send the header on authenticated requests. POST, PUT and PATCH require application/json, including operations with an empty JSON object. Token creation returns plaintext only once; token listings return metadata and a hint, not the original secret.

Select the minimum scopes

ScopePurpose
profiles:readRead profiles and profile metadata
profiles:write / profiles:deleteCreate/update profiles / delete profiles
runtime:controlStart/stop profiles and operate browser pages
proxies:read / proxies:writeRead/manage proxies
cookies:read / cookies:writeRead/write cookies; values can grant access to accounts
secrets:read / secrets:totpRead protected secrets / retrieve TOTP values
rpa:run / rpa:writeRun / configure RPA workflows
sync:controlControl live synchronization
extensions:write / kernels:manageManage extensions / browser kernels
trash:manage / settings:write / audit:readManage trash / write settings / read audit records
adminAdministrative operations including token management; satisfies other scope checks

Scope checks are only one layer: vault state, resource permissions, running state and writable storage can impose additional requirements. The OpenAPI field x-required-scopes lists the fixed route-level requirements; all listed scopes are required and admin satisfies those checks. Conditional checks based on request content or resources remain additional requirements. The table is a task guide, not a claim that every operation in a family has identical rights. Read auth.scope_missing details or inspect the installed MCP tools/list.

Token kinds and presets

Kinds are native, compat and mcp. The MCP preset omits admin, secrets:read and trash:manage, but still includes write operations and sensitive page/cookie access. The scripts preset omits admin, settings:write and secrets:read. Full includes all scopes. Choose “Eigene Rechte” in the desktop token dialog to select individual scopes for native API or MCP tokens. Explicit scopes replace the preset; they are not added to it. Tokens of kind mcp cannot be created with admin or secrets:read through the token API.

POST /api/v1/tokens
{
  "name": "Read-only integration",
  "kind": "native",
  "scopes": [
    "profiles:read"
  ],
  "expires_at": null
}

This administrative example has no expiry because expires_at is null. For a time-limited token, supply a Unix timestamp in milliseconds in the future. Do not grant admin to the integration just to let it create its own token; create it in the app with the needed rights.

Expiry, revocation and rotation

Missing or null expires_at means no automatic expiry. A token is rejected once expires_at is reached or after DELETE /api/v1/tokens/{id} revokes it. That DELETE revokes the credential, not the browser profiles. To rotate: create a replacement, update the client locally, verify a read-only call, then revoke the previous token. Never put a token in a URL, screenshot, repository or support log.