List dedicated IPs
List the dedicated sending IPs owned by the account, newest first. Narrow the list with filter[status], filter[pool_id], and filter[region]; supplied filters combine, so an IP must match every one. An empty value, or a nested or array value such as filter[status][]=active, applies no filter, and other filter[...] keys are ignored. A value that no IP can match (an unknown status, a pool_id that is not a UUID, or a value containing a NUL byte) returns an empty list, not an error.
curl --request GET \
--url https://api.telnyx.com/v2/email/dedicated_ips \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.telnyx.com/v2/email/dedicated_ips"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.telnyx.com/v2/email/dedicated_ips', 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.telnyx.com/v2/email/dedicated_ips",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.telnyx.com/v2/email/dedicated_ips"
req, _ := http.NewRequest("GET", url, nil)
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.get("https://api.telnyx.com/v2/email/dedicated_ips")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.telnyx.com/v2/email/dedicated_ips")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "6a7f9a30-1234-4b5c-8d9e-0f1a2b3c4d5e",
"record_type": "dedicated_ip",
"ip_address": "64.16.239.170",
"ip_version": "ipv4",
"pool_id": null,
"region": "ewr-nj1",
"status": "provisioning",
"warmup": {
"started_at": null,
"progress": 0,
"daily_cap": null,
"paused": false,
"paused_at": null,
"today": null
},
"billing": {
"status": "active",
"charged": true
},
"provisioning_status": "dns_confirmed",
"provisioning": {
"dns_status": "dns_confirmed",
"ptr_request_state": "confirmed",
"ptr_request_pr_url": null,
"checklist": {
"ptr_requested": true,
"ptr_authored": false,
"ptr_merged": true,
"forward_confirmed": true
}
},
"ptr_hostname": "mta-64-16-239-170.msgtelnyx.com",
"dns_confirmed_at": "2026-10-14T20:12:41.552310Z",
"quarantine_until": null,
"released_at": null,
"suspension_reason": null,
"created_at": "2026-09-30T02:03:09.474123Z",
"updated_at": "2026-10-14T20:30:00.000000Z"
}
]
}{
"errors": [
{
"code": "10007",
"title": "Unauthorized",
"detail": "The API key provided is invalid or unauthorized"
}
]
}Authorizations
Telnyx API key supplied as Authorization: Bearer <token>. In production, auth may be validated by the API gateway and forwarded via Telnyx auth headers.
Query Parameters
Return only IPs in this lifecycle status (exact match). Any other value returns an empty list. An empty value applies no filter.
provisioning, warming_up, active, suspended, released Return only IPs in this pool (exact match on pool_id). A value that is not a UUID returns an empty list. An empty value applies no filter.
Return only IPs in this region (exact, case-sensitive match on region). An empty value applies no filter.
Response
Dedicated IP list
Show child attributes
Show child attributes
Was this page helpful?
curl --request GET \
--url https://api.telnyx.com/v2/email/dedicated_ips \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.telnyx.com/v2/email/dedicated_ips"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.telnyx.com/v2/email/dedicated_ips', 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.telnyx.com/v2/email/dedicated_ips",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.telnyx.com/v2/email/dedicated_ips"
req, _ := http.NewRequest("GET", url, nil)
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.get("https://api.telnyx.com/v2/email/dedicated_ips")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.telnyx.com/v2/email/dedicated_ips")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "6a7f9a30-1234-4b5c-8d9e-0f1a2b3c4d5e",
"record_type": "dedicated_ip",
"ip_address": "64.16.239.170",
"ip_version": "ipv4",
"pool_id": null,
"region": "ewr-nj1",
"status": "provisioning",
"warmup": {
"started_at": null,
"progress": 0,
"daily_cap": null,
"paused": false,
"paused_at": null,
"today": null
},
"billing": {
"status": "active",
"charged": true
},
"provisioning_status": "dns_confirmed",
"provisioning": {
"dns_status": "dns_confirmed",
"ptr_request_state": "confirmed",
"ptr_request_pr_url": null,
"checklist": {
"ptr_requested": true,
"ptr_authored": false,
"ptr_merged": true,
"forward_confirmed": true
}
},
"ptr_hostname": "mta-64-16-239-170.msgtelnyx.com",
"dns_confirmed_at": "2026-10-14T20:12:41.552310Z",
"quarantine_until": null,
"released_at": null,
"suspension_reason": null,
"created_at": "2026-09-30T02:03:09.474123Z",
"updated_at": "2026-10-14T20:30:00.000000Z"
}
]
}{
"errors": [
{
"code": "10007",
"title": "Unauthorized",
"detail": "The API key provided is invalid or unauthorized"
}
]
}