List Dedicated IPs

GET /v1/dedicated-ips

List the dedicated IPs allocated to your active account. A dedicated IP is an unshared IPv4 address you can attach to one endpoint at a time, useful for customer firewall allow-lists, dedicated reputation, or compliance requirements that demand "non-shared infrastructure".

Account scope: these IPs are allocated to your active account and shared with its members per your role's permissions. Use switch account to view a different account's IPs.

Provisioning is async — request via POST /v1/dedicated-ips/requests, wait for fulfilment, then attach via POST /v1/endpoints/{uuid}/dedicated-ip. To release one back to the pool, use POST /v1/dedicated-ips/{uuid}/release.

An account can hold up to its dedicated-IP limit (the plan or an account override sets it; GET /v1/account/plan returns it as plan_limits.max_dedicated_ips). Cross-reference this list with /dedicated-ips/attachments to see which endpoints currently use which IPs.

This endpoint lists individual single-mode assignments. An assignment may also be a member of a geo-routed per-region group — see GET /v1/dedicated-ips/groups. An IP parked in standby (reserved after a plan downgrade) may also appear here until it is reattached or freed.

Response (200 OK)

JSON object with an items array of allocated IPs:

uuid string (uuid)
The assignment's public id. Send it as assignment_uuid to attach and use it in /dedicated-ips/{uuid}/release.
ip_address string
The actual IPv4 address (203.0.113.5).
region_slug string
Region this IP lives in. Endpoints can only attach IPs in the same region.
status string
Assignment status. This list only returns active assignments.
stripe_subscription_item_id string
Id of the subscription item that bills the IP's recurring charge. Omitted when the IP isn't billed separately.
endpoint_count int
Number of endpoints currently attached to this IP.
assigned_at datetime
When the IP was assigned to the account. RFC 3339 UTC.

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

401 Unauthorized
Missing auth.
Request
curl "https://api.ngris.com/v1/dedicated-ips" \ -H "X-API-KEY: <your_api_key>"
Python
from ngris import Ngris client = Ngris(api_key="<your_api_key>") for ip in client.dedicated_ips.list()["items"]: print(f"{ip['ip_address']:<16} {ip['region_slug']:<12} {ip['endpoint_count']} endpoint(s)")
Response — 200 OK
{ "items": [ { "uuid": "019b230b-86f2-701a-8001-a15a433823c1", "ip_address": "203.0.113.5", "region_slug": "eu-fi", "status": "active", "stripe_subscription_item_id": "si_abc123", "endpoint_count": 1, "assigned_at": "2026-04-15T00:00:00Z" } ] }
Was this helpful?
On this page
List Dedicated IPs
Was this helpful?