Delete Phone Number
curl --request DELETE \
--url https://api.cartesia.ai/agents/phone-numbers/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Cartesia-Version: <cartesia-version>'import requests
url = "https://api.cartesia.ai/agents/phone-numbers/{id}"
headers = {
"Cartesia-Version": "<cartesia-version>",
"Authorization": "Bearer <token>"
}
response = requests.delete(url, headers=headers)
print(response.text)const options = {
method: 'DELETE',
headers: {'Cartesia-Version': '<cartesia-version>', Authorization: 'Bearer <token>'}
};
fetch('https://api.cartesia.ai/agents/phone-numbers/{id}', 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.cartesia.ai/agents/phone-numbers/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Cartesia-Version: <cartesia-version>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.cartesia.ai/agents/phone-numbers/{id}"
req, _ := http.NewRequest("DELETE", url, nil)
req.Header.Add("Cartesia-Version", "<cartesia-version>")
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.delete("https://api.cartesia.ai/agents/phone-numbers/{id}")
.header("Cartesia-Version", "<cartesia-version>")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cartesia.ai/agents/phone-numbers/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["Cartesia-Version"] = '<cartesia-version>'
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_bodyPhone Numbers
Delete Phone Number
DELETE
/
agents
/
phone-numbers
/
{id}
Delete Phone Number
curl --request DELETE \
--url https://api.cartesia.ai/agents/phone-numbers/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Cartesia-Version: <cartesia-version>'import requests
url = "https://api.cartesia.ai/agents/phone-numbers/{id}"
headers = {
"Cartesia-Version": "<cartesia-version>",
"Authorization": "Bearer <token>"
}
response = requests.delete(url, headers=headers)
print(response.text)const options = {
method: 'DELETE',
headers: {'Cartesia-Version': '<cartesia-version>', Authorization: 'Bearer <token>'}
};
fetch('https://api.cartesia.ai/agents/phone-numbers/{id}', 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.cartesia.ai/agents/phone-numbers/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Cartesia-Version: <cartesia-version>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.cartesia.ai/agents/phone-numbers/{id}"
req, _ := http.NewRequest("DELETE", url, nil)
req.Header.Add("Cartesia-Version", "<cartesia-version>")
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.delete("https://api.cartesia.ai/agents/phone-numbers/{id}")
.header("Cartesia-Version", "<cartesia-version>")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cartesia.ai/agents/phone-numbers/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["Cartesia-Version"] = '<cartesia-version>'
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_bodyAuthorizations
Cartesia API key (sk_car_...). Get one at play.cartesia.ai/keys.
Headers
API version header.
Available options:
2026-08-14 Example:
"2026-08-14"
Path Parameters
The phone number ID. Twilio numbers can be deleted while assigned. Cartesia disconnects the agent and attempts to clear the Twilio webhook, but cleanup failures do not block deletion. Unassign Cartesia-managed and SIP trunk numbers first. Deleting a Cartesia-managed number releases it permanently.
Response
Phone number deleted.
Was this page helpful?