On this page
Workspace and access
Configure the environment your integration uses, grant the minimum required key role, and decide how you will observe usage and retain run data. These settings are workspace operations; they are separate from an agent's draft.
Production and sandbox
List environments identifies the production and sandbox tenants and the environment selected by your key. An admin can create the sandbox on first use. Sandbox members are shared with the organization, while agents, runs, secrets and phone setup belong to the selected environment.
Before running an example, check that your key is for the intended environment. A resource ID from another environment will not resolve. Phone trunks and numbers need setup in each environment where you use them. Run admission must also be enabled; a sandbox alone does not establish carrier routing or permission to place a call.
| Operation | MCP tool | Key role | Purpose |
|---|---|---|---|
GET /api/v1/environments | environments_list | viewer | List this organization's production and sandbox environments |
POST /api/v1/environments/sandbox | environments_ensure_sandbox | admin | Create this organization's sandbox environment on first use (same members) |
API keys and provider credentials
Create keys in Settings → API keys. Use a viewer key for read-only reporting, a member key for agent and run integrations, and an admin key for workspace setup. Each endpoint states its minimum role. Real outbound phone calls also require Can place calls on a member key (can_dial: true); admin keys can place calls, while viewers cannot. Store secrets in your secret manager and inject them on the server; do not place an API key in browser code.
API key creation and rotation return the secret once. Save it at creation; list operations return metadata. Revocation affects future access and can deny queued effects of runs started by that key. Coordinate rotation with the systems using it.
Provider credentials let your environment use its own model-provider key. Their read operations expose metadata. Read the endpoint's validation and deletion behavior before replacing a credential.
| Operation | MCP tool | Key role | Purpose |
|---|---|---|---|
GET /api/v1/provider-keys | provider_keys_list | viewer | List the model-provider keys runs dial with (metadata only, never the key) |
PUT /api/v1/provider-keys/{provider} | provider_keys_put | admin | Set or rotate the tenant's own key for a model provider; the provider checks it before it is stored |
DELETE /api/v1/provider-keys/{provider} | provider_keys_delete | admin | Remove the tenant's key for a model provider; new runs use the platform key |
GET /api/v1/keys | keys_list | admin | List API keys (never secrets) |
POST /api/v1/keys | keys_create | admin | Create an API key with an explicit role |
DELETE /api/v1/keys/{key_id} | keys_revoke | admin | Revoke an API key; queued effects of its runs are denied |
POST /api/v1/keys/{key_id}/rotate | keys_rotate | admin | Replace an API key's secret |
Members and secrets
An admin invites members and assigns roles. Review members and pending invitations periodically; revoke stale invitations and remove access when it is no longer needed. Keep service API keys separate from a person's login.
Agent action credentials, SIP passwords and webhook signing values belong in versioned secrets. The agent references a secret version; listing secrets does not expose the value. See Triggers and webhooks for integration setup.
| Operation | MCP tool | Key role | Purpose |
|---|---|---|---|
GET /api/v1/secrets | secrets_list | viewer | List secret metadata (never values) |
PUT /api/v1/secrets/{secret_id} | secrets_put | admin | Create a secret or add a new version |
DELETE /api/v1/secrets/{secret_id} | secrets_delete | admin | Delete a secret and all its versions |
GET /api/v1/team | team_list | viewer | List members and pending invitations |
POST /api/v1/team/invitations | team_invite | admin | Invite a member |
DELETE /api/v1/team/invitations/{invitation_id} | team_invite_revoke | admin | Revoke a pending invitation |
POST /api/v1/team/invitations/{invitation_id}/resend | team_invite_resend | admin | Send a pending invitation again with a new link and expiry |
DELETE /api/v1/team/members/{user_id} | team_remove | admin | Remove a member |
PATCH /api/v1/team/members/{user_id} | team_set_role | admin | Change a member's role |
Rates, usage and limits
Read your rate card and metered usage to understand the active pricing configuration. Budget and rate-card responses can report configured: false; do not treat that as zero cost. Usage can be incomplete while measurements are settling, so inspect the response's completeness fields.
A spending cap and a daily outbound call limit address different constraints. The budget concerns metered spend; the call limit concerns outbound calls. Concurrent run capacity is separate again. A refused run's error reason tells you which limit blocked admission. See API limits.
| Operation | MCP tool | Key role | Purpose |
|---|---|---|---|
GET /api/v1/usage | usage_summary | viewer | Summarize metered usage by agent, run or day: the billable runs, or (purpose=test) the test runs, metered and not billed |
GET /api/v1/usage/budget | budgets_get | viewer | Read the tenant budget: period, cap and metered spend (configured: false until metered pricing is installed) |
PUT /api/v1/usage/budget | budgets_update | admin | Set the tenant budget cap (compare-and-set on the active policy; refused until metered pricing is installed) |
GET /api/v1/usage/rate-card | usage_rate_card | viewer | Read the customer rates of the tenant's active pricing (configured: false until metered pricing is installed) |
GET /api/v1/telephony/call-limit | call_limits_get | viewer | Read the tenant's own daily outbound call limit and the outbound calls placed in the last 24 hours |
PUT /api/v1/telephony/call-limit | call_limits_update | admin | Set or clear the tenant's daily outbound call limit (null: no limit) |
Alerts and delivery
Create alert rules for supported usage or run metrics, and configure destinations separately. Destination reads return metadata rather than credentials. Rule updates use revision checks: read the current rule before changing it.
If a delivery outcome is uncertain, inspect the latest delivery before acknowledging it. Acknowledgment allows the rule to fire again; it is not proof that an earlier notification arrived.
| Operation | MCP tool | Key role | Purpose |
|---|---|---|---|
GET /api/v1/alerts | alerts_list | viewer | List alert rules with their latest delivery |
POST /api/v1/alerts | alerts_create | admin | Create an alert rule on a metered usage or run metric |
PATCH /api/v1/alerts/{alert_id} | alerts_update | admin | Change an alert rule (revision compare-and-set) |
DELETE /api/v1/alerts/{alert_id} | alerts_delete | admin | Delete an alert rule (revision compare-and-set) |
POST /api/v1/alerts/{alert_id}/acknowledge | alerts_acknowledge | admin | Acknowledge an uncertain alert delivery so the rule can fire again |
GET /api/v1/alert-destinations | alert_destinations_get | viewer | Read which alert destinations are configured (metadata only, never the secret) |
PATCH /api/v1/alert-destinations | alert_destinations_update | admin | Set or clear the Slack webhook or PagerDuty routing key (revision compare-and-set) |
Retention and audit history
Read workspace settings to see the current retention policy before changing it. Retention updates require the expected version so concurrent administrators do not overwrite each other. Outputs removed by retention cannot be treated as pending; check their state when reviewing older runs.
Use the audit log to review workspace activity. Agent run transcripts, tool receipts and event timelines remain in the run API; the audit log does not replace those records.
| Operation | MCP tool | Key role | Purpose |
|---|---|---|---|
GET /api/v1/tenant/settings | tenant_settings_get | viewer | Read the organization's display name and retention settings |
PUT /api/v1/tenant/settings | tenant_settings_update | admin | Rename the organization and/or change retention (retention is a version compare-and-set) |
GET /api/v1/audit | audit_list | admin | List the tenant audit log |