IPs
A floating IP is a public address that can be moved between instances without changing the address itself. Each IP belongs to a workspace and can be attached to at most one instance at a time. DHCP settings control how the platform delivers the address to the guest. Reverse DNS (rDNS) maps the IP back to a hostname.
Reverse DNS and DHCP changes are asynchronous and return workflows. Attach and detach are command endpoints covered in Network commands.
All path parameters are required. PUT requests require a JSON body.
See Workspaces and scope and Pagination for shared conventions.
Search IPs
/v1/workspaces/{wid}/ipsSearch IPs in a workspaceLists the floating IPs in a workspace, with pagination.
Path parameters
| Name | Type | Description |
|---|---|---|
wid | string | Workspace ID |
Query parameters
| Name | Type | Description |
|---|---|---|
q | string | Quick search by address or ID |
address | string | Filter by exact or partial IP address |
instance | string[] | Filter to IPs attached to specific instance IDs |
available | boolean | When true, return only unattached IPs |
dns | string | Filter by reverse DNS value |
region | string | Filter by region: NA_01 |
owner | string[] | Filter by workspace IDs |
type | string | Filter by IP family: IPv4 or IPv6 |
All query parameters are optional, including the shared pagination parameters. Returns 200 OK with a KeysetResultFloatingIpListView containing items and pagination fields.
Fetch an IP
/v1/networking/ips/{fid}Fetch an IP addressPath parameters
| Name | Type | Description |
|---|---|---|
fid | string | IP address ID |
Returns 200 OK with a FloatingIpListView: id, address, locked, range, and nullable dns, instance, owner, and subject fields.
Set reverse DNS
/v1/networking/ips/{fid}/dnsSet reverse DNS for an IPSets or replaces the rDNS PTR record for an IP address.
Path parameters
| Name | Type | Description |
|---|---|---|
fid | string | IP address ID |
Request body
| Field | Type | Required | Description |
|---|---|---|---|
dns | string or null | no | Hostname to point to, for example mail.example.com. Omit, send null, or send a blank string to clear the entry. |
{
"dns": "mail.example.com"
}Returns 200 OK with a WorkflowData object.
Remove reverse DNS
/v1/networking/ips/{fid}/dnsRemove reverse DNS for an IPClears the reverse DNS entry for the address.
Path parameters
| Name | Type | Description |
|---|---|---|
fid | string | IP address ID |
Returns 200 OK with a WorkflowData object.
Fetch DHCP settings
/v1/instances/{iid}/dhcpFetch DHCP settings for an instanceReturns the DHCP configuration for an instance. When no custom settings exist, enabled, v4, and v6 are all null, indicating automatic mode.
Path parameters
| Name | Type | Description |
|---|---|---|
iid | string | Instance ID |
Returns 200 OK with a DHCP object. enabled is a nullable boolean. v4 and v6 are nullable FloatingIpListView objects.
Update DHCP settings
/v1/instances/{iid}/dhcpUpdate DHCP settings for an instanceReplaces the DHCP configuration for an instance. enabled is required. Omitted or null address fields clear the corresponding assignment. Addresses must be attached to this instance and match the requested family. Disabling DHCP clears both assignments.
Path parameters
| Name | Type | Description |
|---|---|---|
iid | string | Instance ID |
Request body
| Field | Type | Required | Description |
|---|---|---|---|
enabled | boolean | yes | Whether DHCP is enabled for this instance |
v4 | string or null | no | Attached IPv4 address ID to serve, or null to serve none |
v6 | string or null | no | Attached IPv6 address ID to serve, or null to serve none |
{
"enabled": true,
"v4": "1464201868476432440",
"v6": null
}Returns 200 OK with a WorkflowData object. Network changes take effect once the workflow completes.
Delete DHCP settings
/v1/instances/{iid}/dhcpDelete DHCP settings for an instanceRemoves any custom DHCP settings and restores automatic mode.
Path parameters
| Name | Type | Description |
|---|---|---|
iid | string | Instance ID |
Returns 200 OK with a WorkflowData object.
Address ranges
We expose allocation range operations in the public specification. These manage address pools rather than individual floating IP attachments. Range details contain id, range, region, split, type, and flags. Staff detail responses additionally include disabled, comment, and metrics.
Search address ranges
/v1/networking/rangesSearch address rangesQuery parameters
| Name | Type | Required | Description |
|---|---|---|---|
q | string | no | Quick search by range or ID |
id | string[] | no | List of range IDs to filter |
range | string | no | IP address range to filter |
type | string | no | IP address type Values: IPv4, IPv6. |
region | string | no | Region to filter Values: NA_01. |
flags | string[] | no | IP address flags (all must match) Values: PROTECTED. |
disabled | boolean | no | Filter by disabled status |
Supports pagination. Returns 200 OK with KeysetResultIpRangeSummary. Each item contains id, range, region, type, flags, disabled, comment, and metrics.
Create an address range
/v1/networking/rangesCreate an address rangeThe JSON body is required. Create and update use CreateRangeRequest:
| Field | Type | Required | Description |
|---|---|---|---|
comment | string or null | no | Free-form comment on the range. defaults to empty |
disabled | boolean or null | no | Whether the range is excluded from allocation. defaults to false |
flags | string[] or null | no | Flags carried by every address in the range. defaults to none |
range | string | yes | The range in CIDR notation, matching the given IP family |
region | string | yes | Region the range serves Values: NA_01. |
split | integer | yes | Prefix length the range is handed out at: 0 to 32 for IPv4, 1 to 128 for IPv6 Range: 0 to 128. |
type | string | yes | IP family of the range Values: IPv4, IPv6. |
For IPv4, split must be 0 to 32. For IPv6, it must be 1 to 128. The range must match the selected family.
{
"range": "203.0.113.0/24",
"region": "NA_01",
"split": 32,
"type": "IPv4"
}Returns 200 OK with IpRangeDetailView.
Fetch an address range
/v1/networking/ranges/{rgid}Fetch an address rangePath parameters
| Name | Type | Required | Description |
|---|---|---|---|
rgid | string | yes | Address range ID |
Returns 200 OK with IpRangeDetailView.
Update an address range
/v1/networking/ranges/{rgid}Update an address rangePath parameters
| Name | Type | Required | Description |
|---|---|---|---|
rgid | string | yes | Address range ID |
The JSON body is required. Send the create range fields, including every required field. Omitted nullable fields reset to their documented defaults.
Returns 200 OK with IpRangeDetailView.
Delete an address range
/v1/networking/ranges/{rgid}Delete an address rangeWe reject deletion while IPs remain attached to the range.
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
rgid | string | yes | Address range ID |
Returns 200 OK with an empty body.