curl --request GET \
--url https://api.sendpost.io/api/v1/account/ippool \
--header 'X-Account-ApiKey: <api-key>'import requests
url = "https://api.sendpost.io/api/v1/account/ippool"
headers = {"X-Account-ApiKey": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-Account-ApiKey': '<api-key>'}};
fetch('https://api.sendpost.io/api/v1/account/ippool', 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.sendpost.io/api/v1/account/ippool",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-Account-ApiKey: <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"
"net/http"
"io"
)
func main() {
url := "https://api.sendpost.io/api/v1/account/ippool"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Account-ApiKey", "<api-key>")
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.sendpost.io/api/v1/account/ippool")
.header("X-Account-ApiKey", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sendpost.io/api/v1/account/ippool")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Account-ApiKey"] = '<api-key>'
response = http.request(request)
puts response.read_body[
{
"id": 746,
"name": "Transactional",
"type": 1,
"routingStrategy": 0,
"routingMetaData": "{}",
"shouldOverflow": false,
"overflowPoolName": "",
"ips": [
{
"id": 6,
"publicIp": "3.238.19.86",
"reverseDnsHostname": "sp0006.mtaspb.email",
"type": 1,
"autoWarmupEnabled": false,
"state": 1,
"created": 1597511124804000
}
],
"created": 1597511124804000
}
]List IPPools
Retrieve all IP pools configured for your account. IP pools group IPs and third-party sending providers (TPSPs) for intelligent traffic routing.
Pool Types:
| Type | Value | Description |
|---|---|---|
| Shared | 0 | Pool uses shared IPs (shared with other SendPost customers) |
| Dedicated | 1 | Pool uses dedicated IPs (exclusive to your account) |
Routing Strategies:
| Strategy | Value | Description |
|---|---|---|
| Round Robin | 0 | Distribute traffic evenly across pool members |
| Email Provider | 1 | Route based on recipient’s mailbox provider (Gmail, Yahoo, etc.) |
| Volume Percentage | 2 | Split traffic by defined percentages |
| Sending Domain | 3 | Route based on your sending domain |
Use Cases:
- Audit your sending infrastructure configuration
- View IPs and TPSPs in each pool
- Plan routing strategy changes
- Verify pool setup before sending campaigns
curl --request GET \
--url https://api.sendpost.io/api/v1/account/ippool \
--header 'X-Account-ApiKey: <api-key>'import requests
url = "https://api.sendpost.io/api/v1/account/ippool"
headers = {"X-Account-ApiKey": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-Account-ApiKey': '<api-key>'}};
fetch('https://api.sendpost.io/api/v1/account/ippool', 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.sendpost.io/api/v1/account/ippool",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-Account-ApiKey: <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"
"net/http"
"io"
)
func main() {
url := "https://api.sendpost.io/api/v1/account/ippool"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Account-ApiKey", "<api-key>")
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.sendpost.io/api/v1/account/ippool")
.header("X-Account-ApiKey", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sendpost.io/api/v1/account/ippool")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Account-ApiKey"] = '<api-key>'
response = http.request(request)
puts response.read_body[
{
"id": 746,
"name": "Transactional",
"type": 1,
"routingStrategy": 0,
"routingMetaData": "{}",
"shouldOverflow": false,
"overflowPoolName": "",
"ips": [
{
"id": 6,
"publicIp": "3.238.19.86",
"reverseDnsHostname": "sp0006.mtaspb.email",
"type": 1,
"autoWarmupEnabled": false,
"state": 1,
"created": 1597511124804000
}
],
"created": 1597511124804000
}
]Authorizations
This api key can be used for all account level operations
Query Parameters
Number of records to return per request. Default 20.
10
Number of initial records to skip for pagination.
0
Case insensitive search against IP pool names.
"Transactional"
Response
A list of IPPools
Unique identifier for the IP pool
746
Display name for the IP pool. Must be unique within your account. Use descriptive names like "transactional", "marketing", "high-priority".
100"Transactional"
Type of IP pool:
0= Shared (uses shared IPs with pooled reputation)1= Dedicated (uses dedicated IPs exclusive to your account)
0, 1 1
How emails are distributed across IPs/providers in this pool:
0= Round Robin (equal distribution)1= Email Provider Strategy (route by recipient domain like Gmail, Yahoo)2= Volume Percentage Strategy (weighted distribution)3= Sending Domain Strategy (route by sender domain)
See the IPPools tag description for detailed routing configuration examples.
0, 1, 2, 3 0
JSON-encoded configuration for the selected routing strategy. Format depends on routingStrategy value. See IPPools documentation for examples.
For Round Robin (strategy 0): Use empty object {}
"{}"
Whether to automatically overflow to a backup pool when this pool is unavailable (all IPs down) or at capacity (warmup limits reached).
true
Name of the IP pool to overflow to when shouldOverflow is enabled. The overflow pool must exist. Common pattern: overflow to shared IP pool.
"shared-backup"
List of dedicated IPs assigned to this pool
Show child attributes
Show child attributes
UNIX epoch timestamp in nanoseconds when the IP pool was created
1704067200000000000
Was this page helpful?