Appearance
Settings
Two things live under settings: the telephony provider (credentials and global config) and telephony endpoints (phone number → agent mappings).
Contents
Telephony Provider
GET /api/settings/telephony
Read current telephony provider configuration.
Response:
json
{
"provider": "twilio",
"public_base_url": "https://your-domain.com",
"twilio_account_sid": "AC...",
"twilio_auth_token": "...",
"twilio_phone_number": "+15551234567",
"twilio_max_concurrent": 10,
"exotel_account_sid": null,
"exotel_api_key": null,
"exotel_api_token": null,
"exotel_phone_number": null,
"exotel_api_base": null,
"exotel_max_concurrent": 5,
"vobiz_auth_id": null,
"vobiz_auth_token": null,
"vobiz_phone_number": null,
"vobiz_max_concurrent": 5
}PUT /api/settings/telephony
Update telephony settings. Partial updates accepted — only send fields for your active provider.
public_base_urlis required for all providers. It must be a publicly accessible HTTPS URL — telephony providers call back to it for webhooks and media streams.
Twilio:
json
{
"provider": "twilio",
"public_base_url": "https://your-domain.com",
"twilio_account_sid": "ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"twilio_auth_token": "your_auth_token",
"twilio_phone_number": "+15551234567",
"twilio_max_concurrent": 10
}Exotel:
json
{
"provider": "exotel",
"public_base_url": "https://your-domain.com",
"exotel_account_sid": "your_sid",
"exotel_api_key": "your_api_key",
"exotel_api_token": "your_api_token",
"exotel_phone_number": "+919876543210",
"exotel_api_base": "https://api.exotel.com",
"exotel_max_concurrent": 5
}Vobiz:
json
{
"provider": "vobiz",
"public_base_url": "https://your-domain.com",
"vobiz_auth_id": "your_auth_id",
"vobiz_auth_token": "your_auth_token",
"vobiz_phone_number": "+919876543210",
"vobiz_max_concurrent": 5
}Telephony Endpoints
Endpoints map phone numbers to agents. Each number can have a separate agent for inbound vs outbound calls.
GET /api/settings/endpoints
List all telephony endpoints.
POST /api/settings/endpoints
Create a new endpoint. Returns the computed inbound_webhook_url — configure this in your telephony provider's dashboard.
json
{
"phone_number": "+919876543210",
"provider": "exotel",
"inbound_agent_name": "support-agent",
"outbound_agent_name": "sales-agent",
"label": "Main support line"
}| Field | Required | Description |
|---|---|---|
phone_number | Yes | E.164 format |
provider | Yes | twilio · exotel · vobiz |
inbound_agent_name | No | Agent for incoming calls on this number |
outbound_agent_name | No | Agent for outgoing calls from this number |
label | No | Human-readable label |
Response includes:
json
{
"id": "uuid",
"phone_number": "+919876543210",
"provider": "exotel",
"inbound_agent_name": "support-agent",
"outbound_agent_name": "sales-agent",
"label": "Main support line",
"is_active": true,
"created_at": "2026-03-18T10:00:00",
"inbound_webhook_url": "https://your-domain.com/telephony/exotel/inbound/support-agent"
}PUT /api/settings/endpoints/{endpoint_id}
Update an endpoint. Fields: inbound_agent_name, outbound_agent_name, label, is_active.
DELETE /api/settings/endpoints/{endpoint_id}
Delete an endpoint.