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

ParameterTypeRequiredDescription
iduuidRequiredThe pool id from GET /v3/pools or the create response.

Body parameters

ParameterTypeRequiredDescription
namestringOptionalNew display name (max 255 chars).
regionstringOptionalNew provider region (max 50 chars).
typestringOptionaldedicated, shared or warming.
ipsarray of stringsOptionalReplaces the pool's entire IP set — each must be a valid IPv4 or IPv6 literal, up to 256 per pool.

Responses

StatusDescription
200OK. The updated pool object.
400Validation error — e.g. ips contains a value that isn't a valid IP literal or exceeds 256 entries.
401Missing or invalid API key.
403Plan limit. Dedicated IP pools aren't available on your plan — upgrade to a plan that includes dedicated IPs to manage pools.
404The 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()