Activate an inbound SIP trunk
curl --request POST \
--url https://voice-api.onclarity.com/v1/projects/{projectId}/telephony/sip-trunks/{id}/activate \
--header 'Authorization: Bearer <token>'import requests
url = "https://voice-api.onclarity.com/v1/projects/{projectId}/telephony/sip-trunks/{id}/activate"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://voice-api.onclarity.com/v1/projects/{projectId}/telephony/sip-trunks/{id}/activate', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"sip_trunk": {
"id": "2d4f6a8c-0e1b-4c3d-8e5f-7a9b1c2d3e4f",
"project_id": "3f6c1a52-8d0e-4b8f-9a51-2c7d4e0b9f13",
"name": "Head office PBX",
"whitelist_cidrs": [
"203.0.113.10/32"
],
"allowed_e164s": [
"14155550123"
],
"status": "active",
"secure_media": "disabled",
"livekit_trunk_id": "ST_a1b2c3d4e5f6",
"livekit_dispatch_rule_id": "SDR_f6e5d4c3b2a1",
"sip_headers": [],
"created_at": "Mon Nov 09 2026 14:00:02 GMT+0000 (Coordinated Universal Time)",
"updated_at": "Mon Nov 09 2026 14:05:40 GMT+0000 (Coordinated Universal Time)"
}
}{
"error": "Invalid or revoked token"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "Attach at least one phone number before activating this SIP trunk"
}{
"error": "<string>",
"code": "<string>"
}Inbound SIP trunks
Activate an inbound SIP trunk
Registers the trunk so it can take calls, and sets status to active. The trunk needs at least one phone number bound to it (409 otherwise). Activating a trunk that is already active repairs its call routing and changes nothing else, so it is safe to repeat. Needs the publish permission, which organization API keys carry.
POST
/
v1
/
projects
/
{projectId}
/
telephony
/
sip-trunks
/
{id}
/
activate
Activate an inbound SIP trunk
curl --request POST \
--url https://voice-api.onclarity.com/v1/projects/{projectId}/telephony/sip-trunks/{id}/activate \
--header 'Authorization: Bearer <token>'import requests
url = "https://voice-api.onclarity.com/v1/projects/{projectId}/telephony/sip-trunks/{id}/activate"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://voice-api.onclarity.com/v1/projects/{projectId}/telephony/sip-trunks/{id}/activate', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"sip_trunk": {
"id": "2d4f6a8c-0e1b-4c3d-8e5f-7a9b1c2d3e4f",
"project_id": "3f6c1a52-8d0e-4b8f-9a51-2c7d4e0b9f13",
"name": "Head office PBX",
"whitelist_cidrs": [
"203.0.113.10/32"
],
"allowed_e164s": [
"14155550123"
],
"status": "active",
"secure_media": "disabled",
"livekit_trunk_id": "ST_a1b2c3d4e5f6",
"livekit_dispatch_rule_id": "SDR_f6e5d4c3b2a1",
"sip_headers": [],
"created_at": "Mon Nov 09 2026 14:00:02 GMT+0000 (Coordinated Universal Time)",
"updated_at": "Mon Nov 09 2026 14:05:40 GMT+0000 (Coordinated Universal Time)"
}
}{
"error": "Invalid or revoked token"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "Attach at least one phone number before activating this SIP trunk"
}{
"error": "<string>",
"code": "<string>"
}Authorizations
Your organization API key (it starts with anek_org_). The same key works on the Voice API and the Support API. See Authentication.