Act on a subaccount
Send the subaccount’s ID in thex-sub-organization-id header with your main account’s key. Every endpoint then behaves as if the subaccount made the request.
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
-
Voices. Create voices with
"subAccounts": true(POST /voicesorPOST /voices/voice-clone) to add them to every subaccount at once. See Voices and cloning. -
Agents. Duplicate a template agent into the subaccount:
-
Per-client settings. Update the copy’s phone numbers and webhooks as the subaccount:
-
Contacts and calls. Use the normal contact and call endpoints with the
x-sub-organization-idheader.
Delete a subaccount
DELETE /organization/{id} deletes one of your subaccounts.
Connect a SIP carrier
Bring your own carrier by creating a SIP connection in the account (sendx-sub-organization-id to create it in a subaccount). POST /organization/sip returns { "id": "…" }.
Add numbers to a SIP connection
GET /organization/sip-listlists SIP connections (id,name,createdAt).POST /organization/{sipId}/phone-numberwith{ "phoneNumbers": ["14155552672", "+442071234567"] }adds numbers and returns{ requested, added }.
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
403 Forbidden resource with x-sub-organization-id
403 Forbidden resource with x-sub-organization-id
The ID isn’t a subaccount of the key’s account, or it’s mistyped. List your subaccounts with
GET /organization.404 Campaign not found on a subaccount agent
404 Campaign not found on a subaccount agent
You’re acting on the wrong account. Add
x-sub-organization-id for agents that live in a subaccount.Duplicating an agent into a subaccount fails
Duplicating an agent into a subaccount fails
The subaccount may have reached its agent limit, or
toOrganizationId isn’t one of your subaccounts.Related
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.