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-<id>.<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_id int64 Req
Numeric ID of an active per-region group allocated to your account. Get from /dedicated-ips/groups. The group must be in active status and belong to your account.

Response (200 OK)

endpoint_id int64
Numeric endpoint ID (echo).
group_id int64
The group ID now bound to this endpoint (echo).
geo_fqdn string
The GeoDNS hostname the endpoint now CNAMEs at (grp-<id>.<geo-zone>).

Errors

400 Bad Request
Missing group_id (must be > 0) or invalid JSON.
401 Unauthorized
Missing auth.
403 Forbidden
Plan doesn't include the dedicated_ips entitlement, or the endpoint/group belongs to another tenant.
404 Not Found
Endpoint or group doesn't exist.
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_id": 4}'
Python
from ngris import Ngris client = Ngris(api_key="<your_api_key>") result = client._post_raw("/endpoints/<endpoint_uuid>/dedicated-ip-group", {"group_id": 4}) print(f"Now geo-routed via {result['geo_fqdn']}")
Response — 200 OK
{ "endpoint_id": 184, "group_id": 4, "geo_fqdn": "grp-4.geo.ngris.io" }
Iris