Skip to main content
Agencies and platforms use subaccounts to give each client an isolated workspace: separate agents, contacts, phone numbers, and results. With the API you can create a subaccount for each new client, copy your template agents into it, connect the client’s SIP trunk, and operate everything with your main account’s API key. See Managing subaccounts for the dashboard side and SIP for SIP concepts.

Act on a subaccount

Send the subaccount’s ID in the x-sub-organization-id header with your main account’s key. Every endpoint then behaves as if the subaccount made the request.
If the ID isn’t one of your subaccounts, the request fails with 403 Forbidden resource; it never falls back to your main account. Subaccounts can also have their own API keys if you enable API key management for them.

List your account and subaccounts

GET /organization returns an array: the key’s own account first, followed by its subaccounts.
Response

Create a subaccount

POST /organization/sub-organization returns { "id": "…" } with status 201.
string
required
Subaccount name.
number
required
The highest Total Dial Attempts value agents in this subaccount can use (1–10).
string[]
Features to turn on for the subaccount. Values: permission_enable_voip_and_phones, permission_enable_view_and_select_phone_numbers, permission_enable_manage_members, permission_enable_analytics, permission_enable_api_keys, permission_enable_twilio_integration, permission_enable_telnyx_integration, permission_enable_sip_integration, permission_enable_whatsapp_integration, permission_enable_cal_com_integration, permission_enable_slack_integration, permission_enable_limit_concurrent_calls, permission_enable_scan_spam_phone_numbers, permission_enable_sensitive_content_restriction, permission_enable_studio_chat, permission_enable_mfa.
object[]
Account-level webhooks that fire for every agent in the subaccount. Each item has a url (HTTPS) and events (defaults to the five main outcome events). See Webhooks overview.

Roll out agents and voices

  1. Voices. Create voices with "subAccounts": true (POST /voices or POST /voices/voice-clone) to add them to every subaccount at once. See Voices and cloning.
  2. Agents. Duplicate a template agent into the subaccount:
  3. Per-client settings. Update the copy’s phone numbers and webhooks as the subaccount:
  4. Contacts and calls. Use the normal contact and call endpoints with the x-sub-organization-id header.

Delete a subaccount

DELETE /organization/{id} deletes one of your subaccounts.
Deleting a subaccount stops and archives all of its agents and contacts, disconnects its telephony provider accounts, and deletes its voices and API keys. This can’t be undone from the API. Export anything you need first.

Connect a SIP carrier

Bring your own carrier by creating a SIP connection in the account (send x-sub-organization-id to create it in a subaccount). POST /organization/sip returns { "id": "…" }.

Add numbers to a SIP connection

  • GET /organization/sip-list lists SIP connections (id, name, createdAt).
  • POST /organization/{sipId}/phone-number with { "phoneNumbers": ["14155552672", "+442071234567"] } adds numbers and returns { requested, added }.
Once added, assign the numbers to agents with PATCH /agents/{agentId} (phoneNumbers).
If SIP telephony isn’t available on your account, these requests are rejected. Contact support@callers.ai.

Play a warm-transfer summary

For calls that run over SIP, POST /call/{sessionId}/warm-transfer-summary plays the AI-generated handoff summary on a transferred call. Use the call’s sessionId (included in webhook payloads). Send { "agentOnly": true } to play it only to the person receiving the transfer. See Call transfers.

Set recording retention

POST /organization/set-recording-retention sets how many days call recordings are kept. Set subAccounts: true to apply the same period to all your subaccounts.
retentionDays must be at least 1. With subAccounts: true and no subaccounts, the request returns 400. See Security and privacy.

Troubleshooting

The ID isn’t a subaccount of the key’s account, or it’s mistyped. List your subaccounts with GET /organization.
You’re acting on the wrong account. Add x-sub-organization-id for agents that live in a subaccount.
The subaccount may have reached its agent limit, or toOrganizationId isn’t one of your subaccounts.

Managing subaccounts

Subaccounts in the dashboard.

White label

Your brand and domain for clients.

SIP

SIP trunk concepts and carrier setup.

Manage agents

Duplicate and update agents.