Skip to main content
The IP Access Control Lists API lets you create and manage IP address whitelists for authenticating outbound SIP trunks.

API Endpoint

https://api.plivo.com/v1/Account/{auth_id}/Zentrunk/IPAccessControlList/

The IP Access Control List Object

An IP Access Control List (IP ACL) contains a set of whitelisted IP addresses that can send SIP traffic to your outbound trunk.

Attributes

ipacl_uuid
string
Unique identifier for the IP ACL.
name
string
Friendly name for the IP ACL.
ip_addresses
array
List of whitelisted IP addresses.

Example Object

{
  "ipacl_uuid": "f19c4773-4ae6-4b75-92ea-9cf3ea4227d6",
  "name": "production-servers",
  "ip_addresses": [
    "192.168.1.1",
    "192.168.1.2"
  ]
}

List All IP Access Control Lists

Get all IP ACLs for your account.

HTTP Request

GET https://api.plivo.com/v1/Account/{auth_id}/Zentrunk/IPAccessControlList/

Query Parameters

ParameterTypeRequiredDefaultDescription
limitintegerNo20Results per page (1-20)
offsetintegerNo0Pagination offset

Response

{
  "api_id": "a04ad809-3b78-4bbe-9baf-acfc7800b10f",
  "meta": {
    "limit": 20,
    "offset": 0,
    "total_count": 109,
    "previous": null,
    "next": "v1/Account/{auth_id}/Zentrunk/IPAccessControlList/?limit=20&offset=20"
  },
  "objects": [
    {
      "ipacl_uuid": "f19c4773-4ae6-4b75-92ea-9cf3ea4227d6",
      "name": "production-servers",
      "ip_addresses": ["192.168.1.1", "192.168.1.2"]
    },
    {
      "ipacl_uuid": "a19c4773-4ae6-4b75-92ea-9cf3ea4227d7",
      "name": "staging-servers",
      "ip_addresses": ["10.0.0.1", "10.0.0.2"]
    }
  ]
}

Example

curl -i --user AUTH_ID:AUTH_TOKEN \
    https://api.plivo.com/v1/Account/{auth_id}/Zentrunk/IPAccessControlList/

Retrieve an IP Access Control List

Get details of a specific IP ACL.

HTTP Request

GET https://api.plivo.com/v1/Account/{auth_id}/Zentrunk/IPAccessControlList/{ipacl_uuid}/

Response

{
  "ipacl_uuid": "f19c4773-4ae6-4b75-92ea-9cf3ea4227d6",
  "name": "production-servers",
  "ip_addresses": [
    "192.168.1.1",
    "192.168.1.2"
  ]
}

Example

curl -i --user AUTH_ID:AUTH_TOKEN \
    https://api.plivo.com/v1/Account/{auth_id}/Zentrunk/IPAccessControlList/f19c4773-4ae6-4b75-92ea-9cf3ea4227d6/

Create an IP Access Control List

Create a new IP whitelist for SIP trunk authentication.

HTTP Request

POST https://api.plivo.com/v1/Account/{auth_id}/Zentrunk/IPAccessControlList/

Request Parameters

ParameterTypeRequiredDefaultDescription
namestringNo-Friendly name for the IP ACL
ip_addressesarrayYes-Array of IP addresses to whitelist

Response

{
  "api_id": "4e1f954c-baf3-11ec-bafe-0242ac110003",
  "message": "IP access control list created successfully.",
  "ipacl_uuid": "f19c4773-4ae6-4b75-92ea-9cf3ea4227d6"
}

Error Codes

CodeDescription
400Invalid request parameters
401Authentication failed
422Missing required parameters (ip_addresses)

Example

curl -i --user AUTH_ID:AUTH_TOKEN \
    -H "Content-Type: application/json" \
    -d '{
      "name": "production-servers",
      "ip_addresses": ["192.168.0.1", "192.168.0.2", "10.0.0.1"]
    }' \
    https://api.plivo.com/v1/Account/{auth_id}/Zentrunk/IPAccessControlList/

Update an IP Access Control List

Modify an existing IP ACL’s name or IP addresses.

HTTP Request

POST https://api.plivo.com/v1/Account/{auth_id}/Zentrunk/IPAccessControlList/{ipacl_uuid}/

Request Parameters

ParameterTypeRequiredDefaultDescription
namestringNo-New friendly name
ip_addressesarrayNo-New list of IP addresses (replaces existing)

Response

{
  "api_id": "4e1f954c-baf3-11ec-bafe-0242ac110003",
  "message": "IP access control list updated successfully.",
  "ipacl_uuid": "f19c4773-4ae6-4b75-92ea-9cf3ea4227d6"
}
Updating ip_addresses replaces the entire list. Include all IP addresses you want whitelisted.

Example

curl -i --user AUTH_ID:AUTH_TOKEN \
    -H "Content-Type: application/json" \
    -d '{
      "name": "updated-servers",
      "ip_addresses": ["192.168.0.1", "192.168.0.2", "192.168.0.3"]
    }' \
    https://api.plivo.com/v1/Account/{auth_id}/Zentrunk/IPAccessControlList/f19c4773-4ae6-4b75-92ea-9cf3ea4227d6/

Delete an IP Access Control List

Permanently delete an IP ACL.

HTTP Request

DELETE https://api.plivo.com/v1/Account/{auth_id}/Zentrunk/IPAccessControlList/{ipacl_uuid}/

Response

HTTP 204 No Content
Deleting an IP ACL that is attached to an active trunk will break authentication for that trunk.

Example

curl -X DELETE -i --user AUTH_ID:AUTH_TOKEN \
    https://api.plivo.com/v1/Account/{auth_id}/Zentrunk/IPAccessControlList/f19c4773-4ae6-4b75-92ea-9cf3ea4227d6/

Usage with Trunks

After creating an IP ACL, attach it to an outbound trunk.

Example

curl -i --user AUTH_ID:AUTH_TOKEN \
    -H "Content-Type: application/json" \
    -d '{
      "name": "outbound-trunk",
      "trunk_direction": "outbound",
      "ipacl_uuid": "f19c4773-4ae6-4b75-92ea-9cf3ea4227d6"
    }' \
    https://api.plivo.com/v1/Account/{auth_id}/Zentrunk/Trunk/

IP ACL vs Credentials

MethodUse Case
IP ACLWhen your PBX has static IP addresses. Simpler setup, no password management.
CredentialsWhen your PBX has dynamic IPs or you need additional security. Uses SIP digest authentication.
You can use either method (or both) for outbound trunk authentication.
  • Trunks - Create and manage SIP trunks
  • Credentials - Alternative authentication via username/password