How to Create Reserved IPs

Validated on 27 Feb 2025 • Last edited on 17 Apr 2025

DigitalOcean Reserved IPs are publicly-accessible static IPv4 addresses. Assign and reassign reserved IP addresses to Droplets as needed, or implement an automated failover mechanism with reserved IPs to build a high availability infrastructure. IPv6 support is now available in public preview. Enroll in the feature preview to create reserved IPv6 addresses.

Create a Reserved IP Using the CLI

The Reserved IP creation command requires you to assign the IP address to a Droplet upon creation using the Droplet’s ID. You can retrieve a list of Droplets and their IDs using the doctl compute droplet list command.

How to Create a Reserved IP Using the DigitalOcean CLI
  1. Install doctl, the official DigitalOcean CLI.
  2. Create a personal access token and save it for use with doctl.
  3. Use the token to grant doctl access to your DigitalOcean account.
    doctl auth init
  4. Finally, run doctl compute reserved-ip create. Basic usage looks like this, but you can read the usage docs for more details:
    doctl compute reserved-ip create [flags]
    The following example creates a reserved IP address in the nyc1 region and assigns it to a Droplet with the ID 386734086:
    doctl compute reserved-ip create --region nyc1 --droplet-id 386734086

To create a reserved IPv6 address (currently available in public preview) instead of IPv4, replace reserved-ip with reserved-ipv6 in the previous examples.

Create a Reserved IP Using the API

The Reserved IP creation call requires you to assign the IP address to a Droplet upon creation using the Droplet’s ID. You can retrieve a list of Droplets and their IDs using the /v2/droplets endpoint.

How to Create a Reserved IPv4 Using the DigitalOcean API
  1. Create a personal access token and save it for use with the API.
  2. Send a POST request to https://api.digitalocean.com/v2/reserved_ips.

cURL

Using cURL:

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $DIGITALOCEAN_TOKEN" \
  -d '{"droplet_id": 123456}' \
  "https://api.digitalocean.com/v2/reserved_ips" 

Go

Using Godo, the official DigitalOcean API client for Go:

import (
    "context"
    "os"

    "github.com/digitalocean/godo"
)

func main() {
  token := os.Getenv("DIGITALOCEAN_TOKEN")

  client := godo.NewFromToken(token)
  ctx := context.TODO()

  createRequest := &godo.ReservedIPCreateRequest{
      DropletID: 123456,
      Region:    "nyc3",
      ProjectID: "1234a77a-12cd-11ed-909f-43c99lbf6030",
  }

  reservedIP, _, err := client.ReservedIPs.Create(ctx, createRequest)
}

Ruby

Using DropletKit, the official DigitalOcean API client for Ruby:

require 'droplet_kit'
token = ENV['DIGITALOCEAN_TOKEN']
client = DropletKit::Client.new(access_token: token)

reserved_ip = DropletKit::ReservedIp.new(droplet_id: 123456)
client.reserved_ips.create(reserved_ip) 

Python

Using PyDo, the official DigitalOcean API client for Python:

import os
from pydo import Client

client = Client(token=os.environ.get("DIGITALOCEAN_TOKEN"))

req = {
  "droplet_id": 2457247
}

resp = client.reserved_ips.create(body=req)
How to Create a Reserved IPv6 Using the DigitalOcean API
  1. Create a personal access token and save it for use with the API.
  2. Send a POST request to https://api.digitalocean.com/v2/reserved_ipv6.

cURL

Using cURL:

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $DIGITALOCEAN_TOKEN" \
  -d '{"region_slug": "nyc3"}' \
  "https://api.digitalocean.com/v2/reserved_ipv6" 

Go

Using Godo, the official DigitalOcean API client for Go:

import (
    "context"
    "os"

    "github.com/digitalocean/godo"
)

func main() {
    token := os.Getenv("DIGITALOCEAN_TOKEN")

    client := godo.NewFromToken(token)
    ctx := context.TODO()

    createRequest := &godo.ReservedIPV6CreateRequest{
        RegionSlug: "nyc3",
    }

    reservedIPV6, _, err := client.ReservedIPV6s.Create(ctx, createRequest)
}

Python

Using PyDo, the official DigitalOcean API client for Python:

import os
from pydo import Client

client = Client(token=os.environ.get("DIGITALOCEAN_TOKEN"))

req = {
  "region_slug": nyc3
}

resp = client.reserved_ipv6s.create(body=req)

Create a Reserved IP Using the Control Panel

To create a reserved IP from the control panel, click Create in the top right, then click Reserved IPs.

Create menu

This takes you to the Reserved IPs page. Click Add a Reserved IP to create one.

A screenshot of the 'Add a Reserved IP' control panel interface showing radio options for 'Assign to Droplet' and 'Reserve in Datacenter Region'. Underneath those is a 'Select a Droplet' search box.
Note
If you are enrolled in the public preview for reserved IPv6 addresses, there is an additional choice of IPv4 or IPv6.

Select where you would like to add the reserved IP address. You may either assign it to an existing Droplet, or reserve it for later use within a single datacenter region.

To assign a reserved IP to one of your Droplets, choose Assign to Droplet, then select the Droplet using the Search for a Droplet search box. Click Add a Reserved IP to this Droplet to finish.

To reserve an IP in a datacenter region, choose Reserve in Datacenter Region. Select the datacenter and project name, then click Add an Unassigned Reserved IP.

We can't find any results for your search.

Try using different keywords or simplifying your search terms.