Public address API

Public address API

Reserve regional addresses, assign one active target, and release retained allocations.

Public addresses are project resources with a lifecycle independent of their current target. An unattached reservation can still consume quota and incur usage.

POST/organizations/{organization_id}/projects/{project_id}/public-addresses
Scope
networks:write
Auth
Bearer API key
Repeat calls
Use a stable key for one intended reservation.

Reserves a regional public address.

Reservation
region_idstringrequired
Permitted region with public address capacity.
address_familystringoptional
Family supported by the selected region.
one ofipv4, ipv6defaultipv4
namestringrequired
Project display name.

Returns 202 with allocation ID and operation. The final address is available from the resource after allocation. A capacity error does not fall back from IPv4 to IPv6 or allocate in a different region.

Assign

POST/organizations/{organization_id}/projects/{project_id}/public-addresses/{address_id}/assignments
Scope
networks:write
Auth
Bearer API key

Assigns an address to one eligible target.

Requires networks:write, If-Match, and a target object containing type and id. Supported types are droplet, load_balancer, and gateway when offered by the region.

The target must be in the same project and region and support the address family. A current active assignment returns 409 address_assigned unless the request uses the explicit reassignment action.

Reassign

POST/organizations/{organization_id}/projects/{project_id}/public-addresses/{address_id}/actions
Scope
networks:write
Auth
Bearer API key

Requests reassignment to another target.

Send type=reassign and a new target to preview and apply the handover. It returns 202 with an operation. The operation identifies previous and requested targets and their routing state.

Existing connections are not transferred to the replacement. DNS records and external allowlists are unchanged because the address remains the same.

Read

GET/organizations/{organization_id}/projects/{project_id}/public-addresses/{address_id}
Scope
networks:read
Auth
Bearer API key

Returns address, address_family, region_id, state, assignment, and its ETag. Requires networks:read. States include allocating, reserved, assigned, reassigning, releasing, and error.

A stopped target can retain an assignment. A pending routing operation can show both the desired target and previous observed target. Use the operation result before concluding which endpoint receives new traffic.

Detach or release

DELETE/organizations/{organization_id}/projects/{project_id}/public-addresses/{address_id}/assignments/{assignment_id}
Scope
networks:write
Auth
Bearer API key

Removes the assignment while retaining the address reservation.

Deleting the assignment retains the reservation.

DELETE/organizations/{organization_id}/projects/{project_id}/public-addresses/{address_id}
Scope
networks:write
Auth
Bearer API key

Releases an unassigned public address.

Deleting the address resource requires no active assignment and its current ETag; accepted release returns 202. A released address is not guaranteed to be reservable again.

Removing the address does not delete external DNS records. Remove those references before release. See public addressing and DNS API for separate record updates.