Attach Dedicated IP Group to Endpoint
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"
}