Description:
DigitalOcean Reserved IPs are publicly accessible static IP addresses that can be assigned to Droplets. Reserved IPv4 addresses that are not assigned to a resource incur charges and should be released when they are no longer required.
Rationale:
Unused Reserved IPs unnecessarily consume public IPv4 address space and may result in avoidable costs. Removing unused addresses also reduces the number of publicly allocated resources in the account.
Impact:
Deleting an unused Reserved IP is permanent. Any service, DNS record, or failover configuration that depends on the address will stop working if the IP is deleted.
Default Value:
A Reserved IP can remain unassigned in the account. Unassigned Reserved IPv4 addresses incur charges.
Pre-Requisite:
Log in to DigitalOcean with permission to manage Reserved IPs.
Identify all unassigned Reserved IPs.
Confirm that each unassigned IP is not required for failover, migration, or another planned workload.
Record the IP addresses for backout purposes.
Remediation:
Delete Reserved IPs that are no longer required. Reserved IPs that are actively used for failover or other planned purposes should be retained.
Test Plan:
Via DigitalOcean Control Panel
Go to Networking → Reserved IPs.
Review the list of Reserved IPs.
Check the Droplet assignment for each IP.
Identify Reserved IPs with no assigned Droplet.
Verify that the unassigned IP is not required for a planned failover or migration.
DigitalOcean's Reserved IP page displays the IP addresses and their assigned Droplets.
CLI
List Reserved IPs:
doctl compute reserved-ip listTo display only useful fields:
doctl compute reserved-ip list \
--format IP,Region,DropletID,DropletName
A Reserved IP with an empty DropletID or DropletName is unassigned. DigitalOcean documents doctl compute reserved-ip list for listing all Reserved IPs in an account.
API
curl -s \
-H "Authorization: Bearer $DIGITALOCEAN_TOKEN" \
-H "Content-Type: application/json" \
"https://api.digitalocean.com/v2/reserved_ips" |
jq '.reserved_ips[] | {
ip: .ip,
region: .region.slug,
droplet_id: .droplet.id
}'
Implementation:
Via DigitalOcean Control Panel
Go to Networking → Reserved IPs.
Locate the unused Reserved IP.
Open the … (More) menu.
Select Delete.
Confirm Delete Reserved IP.
Deleting a Reserved IP permanently removes it from the account.
CLI
doctl compute reserved-ip delete <reserved_ip>Example:
doctl compute reserved-ip delete 203.0.113.25DigitalOcean documents doctl compute reserved-ip delete for permanently deleting Reserved IPs.
API
curl -X DELETE \
-H "Authorization: Bearer $DIGITALOCEAN_TOKEN" \
-H "Content-Type: application/json" \
"https://api.digitalocean.com/v2/reserved_ips/<reserved_ip>"
Backout Plan:
A deleted Reserved IP cannot be restored. If the address is still required:
Create a new Reserved IP.
Assign it to the required Droplet.
Update DNS records or application configuration with the new IP.
Validate connectivity.
Example:
doctl compute reserved-ip create \
--region <region> \
--droplet-id <droplet_id>
DigitalOcean assigns a new Reserved IP rather than restoring the previously deleted address.
References: