Update an extension
PATCH
/
v1
/
accounts
/
{account_id}
/
telephony
/
sip-trunks
/
{trunk_id}
/
extensions
/
{extension}
Update an extension
curl --request PATCH \
--url https://api.us.poly.ai/v1/accounts/{account_id}/telephony/sip-trunks/{trunk_id}/extensions/{extension} \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"agent": {
"agent_id": "<string>",
"variant_id": "<string>"
}
}
'import requests
url = "https://api.us.poly.ai/v1/accounts/{account_id}/telephony/sip-trunks/{trunk_id}/extensions/{extension}"
payload = { "agent": {
"agent_id": "<string>",
"variant_id": "<string>"
} }
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({agent: {agent_id: '<string>', variant_id: '<string>'}})
};
fetch('https://api.us.poly.ai/v1/accounts/{account_id}/telephony/sip-trunks/{trunk_id}/extensions/{extension}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.us.poly.ai/v1/accounts/{account_id}/telephony/sip-trunks/{trunk_id}/extensions/{extension}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'agent' => [
'agent_id' => '<string>',
'variant_id' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.us.poly.ai/v1/accounts/{account_id}/telephony/sip-trunks/{trunk_id}/extensions/{extension}"
payload := strings.NewReader("{\n \"agent\": {\n \"agent_id\": \"<string>\",\n \"variant_id\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.us.poly.ai/v1/accounts/{account_id}/telephony/sip-trunks/{trunk_id}/extensions/{extension}")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"agent\": {\n \"agent_id\": \"<string>\",\n \"variant_id\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.us.poly.ai/v1/accounts/{account_id}/telephony/sip-trunks/{trunk_id}/extensions/{extension}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"agent\": {\n \"agent_id\": \"<string>\",\n \"variant_id\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"extension": "<string>",
"agent": {
"agent_id": "<string>",
"client_env": "sandbox",
"variant_id": "<string>"
},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}{
"success": true,
"error": "<string>",
"message": "<string>"
}{
"success": true,
"error": "<string>",
"message": "<string>"
}{
"success": true,
"error": "<string>",
"message": "<string>"
}{
"success": true,
"error": "<string>",
"message": "<string>"
}Authorizations
Path Parameters
ID of the account that owns the SIP Trunk.
The SIP Trunk ID.
The dialed number or extension (URL-encoded).
Body
application/json
The PolyAI agent to bind an extension to.
Show child attributes
Show child attributes
Response
The updated extension.
An Extension binds a dialed number on a trunk to a PolyAI agent.
The dialed number or extension.
The PolyAI agent an extension routes calls to.
Show child attributes
Show child attributes
RFC 3339 timestamp of when the extension was created.
RFC 3339 timestamp of when the extension was last updated.
Last modified on July 30, 2026
Was this page helpful?
⌘I
Update an extension
curl --request PATCH \
--url https://api.us.poly.ai/v1/accounts/{account_id}/telephony/sip-trunks/{trunk_id}/extensions/{extension} \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"agent": {
"agent_id": "<string>",
"variant_id": "<string>"
}
}
'import requests
url = "https://api.us.poly.ai/v1/accounts/{account_id}/telephony/sip-trunks/{trunk_id}/extensions/{extension}"
payload = { "agent": {
"agent_id": "<string>",
"variant_id": "<string>"
} }
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({agent: {agent_id: '<string>', variant_id: '<string>'}})
};
fetch('https://api.us.poly.ai/v1/accounts/{account_id}/telephony/sip-trunks/{trunk_id}/extensions/{extension}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.us.poly.ai/v1/accounts/{account_id}/telephony/sip-trunks/{trunk_id}/extensions/{extension}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'agent' => [
'agent_id' => '<string>',
'variant_id' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.us.poly.ai/v1/accounts/{account_id}/telephony/sip-trunks/{trunk_id}/extensions/{extension}"
payload := strings.NewReader("{\n \"agent\": {\n \"agent_id\": \"<string>\",\n \"variant_id\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.us.poly.ai/v1/accounts/{account_id}/telephony/sip-trunks/{trunk_id}/extensions/{extension}")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"agent\": {\n \"agent_id\": \"<string>\",\n \"variant_id\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.us.poly.ai/v1/accounts/{account_id}/telephony/sip-trunks/{trunk_id}/extensions/{extension}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"agent\": {\n \"agent_id\": \"<string>\",\n \"variant_id\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"extension": "<string>",
"agent": {
"agent_id": "<string>",
"client_env": "sandbox",
"variant_id": "<string>"
},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}{
"success": true,
"error": "<string>",
"message": "<string>"
}{
"success": true,
"error": "<string>",
"message": "<string>"
}{
"success": true,
"error": "<string>",
"message": "<string>"
}{
"success": true,
"error": "<string>",
"message": "<string>"
}
