IP Access Control List
Create IP ACL
Add an IPv4 address to your Vobiz SIP trunk allowlist so PBX systems, SBCs, or carriers authenticate calls without SIP digest credentials - 130+ countries.
POST
/
api
/
v1
/
Account
/
{auth_id}
/
ip-acl
Create an IP ACL
curl --request POST \
--url https://api.vobiz.ai/api/v1/Account/{auth_id}/ip-acl \
--header 'Content-Type: application/json' \
--header 'X-Auth-ID: <api-key>' \
--header 'X-Auth-Token: <api-key>' \
--data '
{
"name": "Office IP"
}
'import requests
url = "https://api.vobiz.ai/api/v1/Account/{auth_id}/ip-acl"
payload = { "name": "Office IP" }
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: 'Office IP'})
};
fetch('https://api.vobiz.ai/api/v1/Account/{auth_id}/ip-acl', 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",
"ip_address": "10.20.30.0/24",
"description": "",
"enabled": true,
"created_at": "2026-03-25T10:00:00Z",
"updated_at": "2026-03-25T10:00:00Z"
}POST https://api.vobiz.ai/api/v1/Account/{auth_id}/ip-acl
Authentication required:
X-Auth-ID- Your account Auth IDX-Auth-Token- Your account Auth TokenContent-Type: application/json
Request Parameters
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Label for the entry, such as “Office static IP”, “PBX server”, or “Carrier connection”. Surfaces as description on the returned object. |
ip_address | string | Yes | A single IPv4 address (e.g., 198.51.100.42) or an IPv4 CIDR block (e.g., 10.20.30.0/24). |
CIDR is supported. Whitelist a whole range with CIDR notation (e.g.,
10.20.30.0/24) or a single host. The entry is created enabled: true; to disable it later or change the IP, use Update IP ACL.IPv4 only. IPv6 addresses are not supported and are rejected. Whitelist your public IP or range - if you are behind NAT, use the router’s public IP. The API also rejects RFC 5737 documentation prefixes (such as
203.0.113.0/24); use a real or RFC 1918 (10.0.0.0/24) range.Response
Returns the complete IP ACL object, including the auto-generatedid UUID and timestamps.
Response - 201 Created
{
"id": "aabbccdd-1234-5678-90ab-cdef12345678",
"account_id": "MA_XXXXXXXX",
"ip_address": "10.20.30.0/24",
"description": "FreePBX server in data center",
"enabled": true,
"created_at": "2026-05-12T05:11:51Z",
"updated_at": "2026-05-12T05:11:51Z"
}
Examples
cURL - Basic IP ACL
cURL Request
curl -X POST https://api.vobiz.ai/api/v1/Account/{auth_id}/ip-acl \
-H "X-Auth-ID: YOUR_AUTH_ID" \
-H "X-Auth-Token: YOUR_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Office static IP",
"ip_address": "198.51.100.42"
}'
cURL - PBX Server IP
cURL Request
curl -X POST https://api.vobiz.ai/api/v1/Account/{auth_id}/ip-acl \
-H "X-Auth-ID: YOUR_AUTH_ID" \
-H "X-Auth-Token: YOUR_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "FreePBX server in data center",
"ip_address": "10.20.30.0/24"
}'
Error Response (400 Bad Request): If the IP address format is invalid:
Error Response - 400 Bad Request
{
"error": "Invalid IP address format",
"code": 400
}
Next Steps:
- Save the IP ACL
idfor future operations - Verify the IP address is correct before testing
- Test connectivity by making a call from the whitelisted IP
- Monitor authentication logs to confirm IP-based auth is working
NAT Tip: If you are behind NAT or a firewall, determine your public IP with:
curl https://api.ipify.orgAuthorizations
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 IP ACL
curl --request POST \
--url https://api.vobiz.ai/api/v1/Account/{auth_id}/ip-acl \
--header 'Content-Type: application/json' \
--header 'X-Auth-ID: <api-key>' \
--header 'X-Auth-Token: <api-key>' \
--data '
{
"name": "Office IP"
}
'import requests
url = "https://api.vobiz.ai/api/v1/Account/{auth_id}/ip-acl"
payload = { "name": "Office IP" }
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: 'Office IP'})
};
fetch('https://api.vobiz.ai/api/v1/Account/{auth_id}/ip-acl', 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",
"ip_address": "10.20.30.0/24",
"description": "",
"enabled": true,
"created_at": "2026-03-25T10:00:00Z",
"updated_at": "2026-03-25T10:00:00Z"
}