Overtone DocsTest environment

Give an agent selected access

The token owner chooses its permissions. Every request is limited to the intersection of those choices and the owner’s current company permissions. A token never inherits the Owner role.

Create and store a token

  1. Open Security and access → Personal access tokens → Create token.
  2. Name the integration, grant the needed resource families and choose View or Manage. Reports are available only with company-wide Workspace access.
  3. Choose 1, 7, 30 or 90 days. Confirm your password and a fresh authenticator code.
  4. Copy the token and company ID. The secret is displayed once; only its hash is stored.

Store the secret in a secret manager and inject it into the agent’s HTTP client. Do not put it in prompts, query strings, source code or shared logs. Up to 20 active tokens are allowed per owner. Token creation requires the browser security flow.

Make a read-only request

Use the Admin host for company configuration and the Workspace host for reports. Both use /api/v1. Send the selected company’s UUID in X-Telephony-Company. Do not send browser cookies.

# Load OVERTONE_TOKEN and OVERTONE_COMPANY_ID privately into the environment.
curl --fail-with-body --silent --show-error \
  https://admin.overtone-test.sayram.systems/api/v1/session \
  -H "Authorization: Bearer $OVERTONE_TOKEN" \
  -H "X-Telephony-Company: $OVERTONE_COMPANY_ID"

A successful response has {"data": ..., "error": null}. Session introspection returns the current effective grants, user ID, company ID and token ID. It does not return the token secret. A token with only Reports access must use the Workspace host even for introspection.

curl --fail-with-body --silent --show-error \
  https://admin.overtone-test.sayram.systems/api/v1/settings/users \
  -H "Authorization: Bearer $OVERTONE_TOKEN" \
  -H "X-Telephony-Company: $OVERTONE_COMPANY_ID"

Permission families and routes

All paths below are relative to /api/v1. View permits reads; Manage adds the corresponding writes. Existing resource validation and optimistic revisions still apply. This API exposes company dashboard operations.

PermissionResource pathsBehavior
People/settings/users, employee extension, calling-number and inbox-grant subpathsManage edits employee assignments. Password reveal/reset endpoints are unavailable to tokens.
Devices/settings/client, /settings/client-users, /settings/sip-status, /settings/device-sessionsManage may revoke employee device sessions and edit client policies.
Routing/routing, /routing/options, /routing/history, /routing/draft, /routing/validate, /routing/publish, /routing/rebaseSaving a draft and publishing it are separate operations. Publish changes call handling.
Mailboxes/mailboxes and mailbox commandsConfiguration only; no employee message-content access.
Caller experience/schedules, /audio and their commandsManage edits schedules and greeting assets.
Conferences/conferences and conference commandsThe same conference permissions and validation as Admin.
Company/company-profileCompany profile settings.
Messaging/messaging, /settings/messaging-readinessAccount campaign setup and number readiness; no SMS sending endpoint here.
Users and access/access, /users/invite, /invitations, /users/:id/statusOwner-only operations still require a company Owner. Grants and account re-enabling cannot exceed the token’s effective access.
Reports/reports subpaths on WorkspaceScope can only narrow the owner’s scope. View includes reports and exports; Manage also edits saved report views.
Number purchases/number-purchases subpaths on AdminManage can buy numbers and incur charges.

The machine-readable route and contract reference is generated from the registered gateway routes and shared schemas. Unsupported paths return 404 or 403.

Writes, retries and costs

Send JSON with Content-Type: application/json. For commands requiring requestId, generate one UUID for the intended operation and reuse it only when retrying that identical operation. A changed operation needs a new UUID. For revisioned writes, read the current revision and submit the expected revision. On 409, refresh the resource and resolve the conflict before trying again.

Do not blindly retry a timed-out purchase, invitation or publication. Read its result/history first; the server may have committed it before the connection failed. Invitations can send email. Number purchase permissions can incur one-time and recurring charges. Use mocked provider tests for development.

Errors and request limits

StatusAction
400Correct the request body, company header or mixed browser-cookie authentication.
401The token is invalid, expired, revoked or no longer valid for the owner/company. Obtain a replacement through the owner.
403The selected scope or current owner access does not permit this operation.
409Refresh and resolve the revision or idempotency conflict.
429Back off. Baseline limits are 120 requests/minute per token and 180/minute per IP; resource routes may impose lower limits.
503A service is unavailable or did not confirm the operation. Read current state before retrying a write.

Ownership and revocation

Removing an owner’s permission immediately removes it from every token on subsequent requests. Expiry, token revocation, disabling the user and changing authentication credentials prevent further token use. Permission reductions do not rewrite the original selected grants; if the owner regains a permission, that previously selected permission can become available again. Revocation is permanent.

Token operations are audited by owner and token ID, with the method and route template. Secrets are not included. Already completed operations are not undone by later revocation.

Tokens cannot create other tokens, manage personal sessions/passkeys, change interface preferences, authenticate as Ops, access another company or use employee session APIs. Account-linked memberships currently cannot create these tokens; their parent Account remains the authentication authority.