API Reference
Create SIP trunk
Create a new SIP trunk with credentials, address, and proxy settings
On this page
This endpoint creates a new SIP trunk. The platform automatically provisions inbound and outbound trunks on the voice infrastructure using the provided credentials.
Body Parameters
sip_trunk_typestringrequired
The type of SIP trunk: extension for a SIP extension, or number for a phone number (DID). This determines the expected format of the phone_number field.
phone_numberstringrequired
The SIP extension (1-15 characters, e.g. 1000) when sip_trunk_type is extension, or a phone number in E.164 format (e.g. +14155551234) when sip_trunk_type is number.
nicknamestring
A short, human-friendly label for the trunk (e.g. "Provider X — Main"). Maximum 50 characters.
sip_usernamestringrequired
Username for SIP authentication (3-128 characters)
sip_passwordstringrequired
Password for SIP authentication (minimum 3 characters)
sip_addressstringrequired
The SIP server address without port (e.g. sip.provider.com)
sip_calling_formatstringrequired
The outbound calling number format:
+e164— International with+prefix (e.g.+12025550123)e164— International without+prefix (e.g.12025550123)national— National format without country code (e.g.0741926265)
inbound_authorization_typestringrequired
How inbound calls are authenticated:
auth— Uses the same SIP username and password configured for outboundip— Whitelists specific IP addresses (requiresallowed_inbound_ips)
allowed_inbound_ipsarray
Array of IP addresses allowed to send inbound calls. Required when inbound_authorization_type is ip. Must contain at least one valid IP address.
country_codestringrequired
ISO 3166-2 country code where the SIP trunk is located (e.g. US, GB, DE). When sip_trunk_type is number, the country is auto-detected from the phone number if possible.
outbound_proxyboolean
Route outbound calls through a fixed IP address. Default: false. Only enable this if your SIP provider requires IP-based authentication for outbound traffic.
Response
messagestring
Success message
dataobject
The created SIP trunk object (same fields as Get SIP trunk)
{
"message": "SIP trunk created successfully.",
"data": {
"id": 42,
"phone_number": "1000",
"nickname": "Provider X — Main",
"sip_username": "myuser",
"sip_address": "sip.provider.com",
"sip_calling_format": "+e164",
"inbound_authorization_type": "auth",
"allowed_inbound_ips": null,
"outbound_proxy": false,
"country_code": "US",
"inbound_trunk_id": "ST_xxxxxxxxxxxx",
"outbound_trunk_id": "ST_yyyyyyyyyyyy",
"created_at": "2026-03-31T10:00:00.000000Z",
"updated_at": "2026-03-31T10:00:00.000000Z"
}
}
{
"message": "SIP trunk created successfully.",
"data": {
"id": 43,
"phone_number": "+14155551234",
"nickname": null,
"sip_username": "trunk_user",
"sip_address": "sip.provider.com",
"sip_calling_format": "e164",
"inbound_authorization_type": "ip",
"allowed_inbound_ips": ["203.0.113.10", "198.51.100.20"],
"outbound_proxy": true,
"country_code": "US",
"inbound_trunk_id": "ST_xxxxxxxxxxxx",
"outbound_trunk_id": "ST_yyyyyyyyyyyy",
"created_at": "2026-03-31T10:00:00.000000Z",
"updated_at": "2026-03-31T10:00:00.000000Z"
}
}
{
"error": "A SIP trunk with the same phone number, username, and address already exists."
}
{
"message": "The given data was invalid.",
"errors": {
"sip_address": ["SIP server address is required."],
"sip_calling_format": ["SIP calling format must be one of: +e164, e164, national."]
}
}
{
"error": "Failed to create SIP trunk. Please try again or contact support."
}
What happens after creation
When you create a SIP trunk, the platform automatically:
- Provisions an inbound trunk on the voice infrastructure — using either username/password or IP-based authentication depending on your
inbound_authorization_typesetting - Provisions an outbound trunk — using the SIP address and credentials you provided, optionally through the outbound proxy
If provisioning fails, the SIP trunk is not saved and a 500 error is returned.
Next steps
After creating a SIP trunk, assign it to an AI assistant:
- Create Assistant — Use the
phone_number_idparameter - Update Assistant — Change the phone number on an existing assistant
Related guides
API Reference
Introduction
Welcome to the VoxLink API
Read guide →API Reference
Authentication
Learn how to authenticate your API requests
Read guide →API Reference
Get current user
Get the authenticated user's profile information
Read guide →API Reference
List assistants
List all assistants for the authenticated user with pagination
Read guide →