Origination URI
Create Origination URI
Add a SIP destination URI to your Vobiz trunk for outbound routing - set priority and weight for load balancing and carrier failover across 130+ countries.
POST
/
api
/
v1
/
Account
/
{auth_id}
/
origination-uris
Create an origination URI
curl --request POST \
--url https://api.vobiz.ai/api/v1/Account/{auth_id}/origination-uris \
--header 'Content-Type: application/json' \
--header 'X-Auth-ID: <api-key>' \
--header 'X-Auth-Token: <api-key>' \
--data '
{
"name": "Primary SBC",
"sip_uri": "sip:sbc.example.com",
"priority": 1
}
'import requests
url = "https://api.vobiz.ai/api/v1/Account/{auth_id}/origination-uris"
payload = {
"name": "Primary SBC",
"sip_uri": "sip:sbc.example.com",
"priority": 1
}
headers = {
"X-Auth-ID": "<api-key>",
"X-Auth-Token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-Auth-ID': '<api-key>',
'X-Auth-Token': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({name: 'Primary SBC', sip_uri: 'sip:sbc.example.com', priority: 1})
};
fetch('https://api.vobiz.ai/api/v1/Account/{auth_id}/origination-uris', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"id": "aabbccdd-1234-5678-90ab-cdef12345678",
"account_id": "MA_XXXXXXXX",
"uri": "sip:sbc1.example.com",
"priority": 1,
"weight": 10,
"enabled": true,
"transport": "TCP",
"description": "Primary SBC",
"created_at": "2026-03-25T10:00:00Z",
"updated_at": "2026-03-25T10:00:00Z"
}POST https://api.vobiz.ai/api/v1/Account/{auth_id}/origination-uris
sip:user@host:port or sip:host:port.
Authentication required:
X-Auth-ID- Your account Auth IDX-Auth-Token- Your account Auth TokenContent-Type: application/json
Valid SIP URI Formats: The URI must start with the
sip: scheme. A port is optional - the default SIP port (5060) is assumed when omitted.sip:sbc.example.com- Host only (default port)sip:provider@sip.example.com:5060- Host with user and explicit portsip:192.168.1.100:5060- IP address with portsip:trunk@sip.carrier.net:5061- Custom port
http://sip.example.com- Wrong schemeprovider@sip.example.com:5060- Missingsip:prefix
Request Parameters
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Label for the destination, such as “Primary SBC” or “US East carrier”. Surfaces as description on the returned object. |
sip_uri | string | Yes | SIP URI destination, e.g. sip:provider@sip.example.com:5060 or sip:sbc.example.com. Returned on the object as uri. |
priority | integer | Yes | Routing priority (lower = higher priority). Use priority 1 for primary routes and 2+ for backup/failover routes. |
weight and transport are set after creation. New URIs default to weight: 10 and an inferred transport. To split traffic across same-priority URIs (load balancing) or change priority later, use Update Origination URI or the Console. The create endpoint accepts only name, sip_uri, and priority.Response
Returns the complete origination URI object, including the auto-generatedid UUID and timestamps.
Response - 201 Created
{
"id": "aabbccdd-1234-5678-90ab-cdef12345678",
"account_id": "MA_XXXXXXXX",
"uri": "sip:provider@sip.example.com:5060",
"priority": 1,
"weight": 10,
"enabled": true,
"transport": "udp",
"description": "Primary SBC",
"created_at": "2026-05-12T05:11:51.914685Z",
"updated_at": "2026-05-12T05:11:51.914685Z"
}
Field name change between request and response. You send
sip_uri and name; the response returns them as uri and description. The weight and transport fields appear on the response with their defaults even though you cannot set them at creation.Examples
cURL - Primary Origination URI
cURL Request
curl -X POST https://api.vobiz.ai/api/v1/Account/{auth_id}/origination-uris \
-H "X-Auth-ID: YOUR_AUTH_ID" \
-H "X-Auth-Token: YOUR_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Primary SBC",
"sip_uri": "sip:provider@sip.example.com:5060",
"priority": 1
}'
cURL - Failover URI with Lower Priority
cURL Request
curl -X POST https://api.vobiz.ai/api/v1/Account/{auth_id}/origination-uris \
-H "X-Auth-ID: YOUR_AUTH_ID" \
-H "X-Auth-Token: YOUR_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Backup SBC",
"sip_uri": "sip:backup@sip-backup.example.com:5060",
"priority": 2
}'
cURL - Load Balancing Configuration
Create two URIs at the same priority, then set theirweight with Update Origination URI to split traffic (e.g. 70/30). Both come back with the default weight: 10 (an even split) until you adjust them.
curl -X POST https://api.vobiz.ai/api/v1/Account/{auth_id}/origination-uris \
-H "X-Auth-ID: YOUR_AUTH_ID" \
-H "X-Auth-Token: YOUR_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Server 1",
"sip_uri": "sip:server1@sip.example.com:5060",
"priority": 1
}'
curl -X POST https://api.vobiz.ai/api/v1/Account/{auth_id}/origination-uris \
-H "X-Auth-ID: YOUR_AUTH_ID" \
-H "X-Auth-Token: YOUR_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Server 2",
"sip_uri": "sip:server2@sip.example.com:5060",
"priority": 1
}'
Error Response (400 Bad Request): If SIP URI format is invalid:
Error Response - 400 Bad Request
{
"error": "Invalid SIP URI format. Expected: sip:user@host:port",
"code": 400
}
Best Practices:
- Configure at least 2 origination URIs for redundancy (one primary, one failover)
- Use priority 1 for primary destinations, priority 2 for backup/failover
- Adjust weights to distribute load across multiple carriers or servers
- Test connectivity to each URI before enabling in production
Authorizations
Your Vobiz account Auth ID
Your Vobiz account Auth Token
Path Parameters
Your account Auth ID
Example:
"MA_XXXXXX"
Was this page helpful?
⌘I
Create an origination URI
curl --request POST \
--url https://api.vobiz.ai/api/v1/Account/{auth_id}/origination-uris \
--header 'Content-Type: application/json' \
--header 'X-Auth-ID: <api-key>' \
--header 'X-Auth-Token: <api-key>' \
--data '
{
"name": "Primary SBC",
"sip_uri": "sip:sbc.example.com",
"priority": 1
}
'import requests
url = "https://api.vobiz.ai/api/v1/Account/{auth_id}/origination-uris"
payload = {
"name": "Primary SBC",
"sip_uri": "sip:sbc.example.com",
"priority": 1
}
headers = {
"X-Auth-ID": "<api-key>",
"X-Auth-Token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-Auth-ID': '<api-key>',
'X-Auth-Token': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({name: 'Primary SBC', sip_uri: 'sip:sbc.example.com', priority: 1})
};
fetch('https://api.vobiz.ai/api/v1/Account/{auth_id}/origination-uris', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"id": "aabbccdd-1234-5678-90ab-cdef12345678",
"account_id": "MA_XXXXXXXX",
"uri": "sip:sbc1.example.com",
"priority": 1,
"weight": 10,
"enabled": true,
"transport": "TCP",
"description": "Primary SBC",
"created_at": "2026-03-25T10:00:00Z",
"updated_at": "2026-03-25T10:00:00Z"
}