List Dedicated IP Requests

GET /v1/dedicated-ips/requests

List the IP allocation requests the user has submitted, with their current state. Use to poll for fulfilment after calling POST /v1/dedicated-ips/requests — the request enters pending, gets reviewed/auto-approved, then fulfilled when an IP is allocated. Cancelled or denied requests stay in the list for audit purposes.

Response (200 OK)

JSON array of requests, ordered by created_at DESC:

uuid string (uuid)
The request's public id. Use it in /dedicated-ips/requests/{request_uuid}/cancel.
region_slug string
Region the IP was requested in (single mode). Empty for per_region requests — see regions_csv.
selection_mode string
single (one IP, one region) or per_region (a GeoDNS group of one IP per region).
regions_csv string
Comma-separated region slugs for a per_region request (e.g. eu-fi,us-va). Empty for single requests.
reason string
Free-form business justification supplied at request time.
status string
pending (awaiting review/auto-fulfilment), fulfilled (IP allocated; check assignment_uuid), cancelled (user cancelled), denied (admin rejected; review_reason set).
review_reason string
Human-readable note recorded when the request was reviewed (e.g. denial reason). Empty until reviewed.
assignment_uuid string (uuid)?
When status: "fulfilled": the allocated assignment's uuid. Cross-reference with /dedicated-ips. Omitted while not yet fulfilled.
created_at datetime
When the request was submitted.
reviewed_at datetime
When the request was reviewed (fulfilled, cancelled, or denied). Omitted while still pending.

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/requests" \ -H "X-API-KEY: <your_api_key>"
Python — poll until fulfilled
import time from ngris import Ngris client = Ngris(api_key="<your_api_key>") req_uuid = "019b1d33-2ca9-7bd2-b322-1330190fd290" while True: requests = client.dedicated_ips.list_requests() req = next(r for r in requests["items"] if r["uuid"] == req_uuid) if req["status"] == "fulfilled": print(f"IP allocated: assignment {req['assignment_uuid']}") break if req["status"] in ("cancelled", "denied"): print(f"Failed: {req['status']}") break time.sleep(60)
Response — 200 OK
{ "items": [ { "uuid": "019b1d33-2ca9-7bd2-b322-1330190fd290", "region_slug": "eu-fi", "reason": "Customer firewall requires fixed source IP", "status": "pending", "review_reason": "", "created_at": "2026-04-29T13:00:00Z" } ] }
Was this helpful?
Was this helpful?