Attach Dedicated IP Group to Endpoint

POST /v1/endpoints/{uuid}/dedicated-ip-group

Attach a per-region dedicated-IP group (provisioned via POST /v1/dedicated-ips/requests with selection_mode: "per_region") to an endpoint. The platform publishes the endpoint as a CNAME to the group's geolocation FQDN (grp-<group uuid> under the platform's geo zone), so visitors resolve to the nearest regional IP in the group.

A group binding is mutually exclusive with a single dedicated IP: attaching a group clears any single-IP binding (and attaching a single IP clears the group binding). DNS propagation typically takes 1-2 minutes after attach.

List your groups with GET /v1/dedicated-ips/groups and detach with DELETE /v1/endpoints/{uuid}/dedicated-ip-group.

Path parameters

uuid string (uuid) Req
Endpoint UUID. The endpoint must be eligible for dedicated IPs (use /dedicated-ips/attachable-endpoints to filter).

Request body

group_uuid string (uuid) Req
The uuid of an active per-region group allocated to your account. Get it from /dedicated-ips/groups. The group must be in active status and belong to your account.

Deprecated: group_id (integer) is still accepted until the sunset. Send group_uuid; sending both for different objects is a 400 id_uuid_mismatch.

Response (200 OK)

endpoint_uuid string (uuid)
The endpoint's uuid (echo).
group_uuid string (uuid)
The uuid of the group now bound to this endpoint (echo).
geo_fqdn string
The GeoDNS hostname the endpoint now CNAMEs at: grp-<group uuid>.<geo-zone>.

Deprecated: until the sunset this response also carries the legacy integer id and *_id fields. Don't use them; read uuid and the *_uuid fields.

Errors

400 Bad Request
Missing group_uuid, a malformed group_uuid, group_id and group_uuid naming different groups (id_uuid_mismatch), invalid JSON, or an agentless (static hosting) endpoint.
401 Unauthorized
Missing auth.
403 Forbidden
Plan doesn't include the dedicated_ips entitlement, or your role can't update dedicated IPs.
404 Not Found
Endpoint or group not found in your active account — an unknown uuid and another account's read the same.
409 Conflict
Group is not active.
502 Bad Gateway
DNS repoint failed after the binding was written — the change is automatically reverted; safe to retry.
503 Service Unavailable
Per-region (GeoDNS) routing is not configured on this server, so group attachment is unavailable.
Request
curl -X POST "https://api.ngris.com/v1/endpoints/<uuid>/dedicated-ip-group" \ -H "X-API-KEY: <your_api_key>" \ -H "Content-Type: application/json" \ -d '{"group_uuid": "019b153d-c31b-7b7a-afe6-b67cc62bf94c"}'
Python
from ngris import Ngris client = Ngris(api_key="<your_api_key>") result = client._post_raw("/endpoints/<endpoint_uuid>/dedicated-ip-group", {"group_uuid": "019b153d-c31b-7b7a-afe6-b67cc62bf94c"}) print(f"Now geo-routed via {result['geo_fqdn']}")
Response — 200 OK
{ "endpoint_uuid": "019bb1e4-e785-77d2-9966-c3cff31d0a0e", "group_uuid": "019b153d-c31b-7b7a-afe6-b67cc62bf94c", "geo_fqdn": "grp-019b153d-c31b-7b7a-afe6-b67cc62bf94c.geo.ngris.io" }
Was this helpful?
Was this helpful?