Update an IP pool
Rename a pool, change its type or region, or replace its IP set.
Update name, region, type or replace the ips set — on your own pools only. Send just the fields you want to change; omitted fields keep their value.
PUT /v3/pools/{id}
Path parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | uuid | Required | The pool id from GET /v3/pools or the create response. |
Body parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Optional | New display name (max 255 chars). |
region | string | Optional | New provider region (max 50 chars). |
type | string | Optional | dedicated, shared or warming. |
ips | array of strings | Optional | Replaces the pool's entire IP set — each must be a valid IPv4 or IPv6 literal, up to 256 per pool. |
Responses
| Status | Description |
|---|---|
200 | OK. The updated pool object. |
400 | Validation error — e.g. ips contains a value that isn't a valid IP literal or exceeds 256 entries. |
401 | Missing or invalid API key. |
403 | Plan limit. Dedicated IP pools aren't available on your plan — upgrade to a plan that includes dedicated IPs to manage pools. |
404 | The pool doesn't exist, is platform-shared, or belongs to another tenant — only your own pools are editable. |
Code examples
cURL
curl -X PUT https://api.wemail.io/v3/pools/{id} \
-H "Authorization: Bearer afn_live_…" \
-H "Content-Type: application/json" \
-d '{ "name": "transactional-eu", "type": "dedicated", "ips": [ "203.0.113.10", "203.0.113.11" ] }'Node.js
const res = await fetch("https://api.wemail.io/v3/pools/{id}", {
method: "PUT",
headers: {
Authorization: `Bearer ${process.env.WEMAIL_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ "name": "transactional-eu", "type": "dedicated", "ips": [ "203.0.113.10", "203.0.113.11" ] }),
});
const data = await res.json();Python
import os, requests
r = requests.put(
"https://api.wemail.io/v3/pools/{id}",
headers={"Authorization": f"Bearer {os.environ['WEMAIL_API_KEY']}"},
json={ "name": "transactional-eu", "type": "dedicated", "ips": [ "203.0.113.10", "203.0.113.11" ] },
)
data = r.json()