How to Add Domains

Validated on 16 May 2024 • Last edited on 17 Apr 2025

Adding a domain you own to your DigitalOcean account lets you manage the domain’s DNS records with the control panel and API. Domains you manage on DigitalOcean integrate with DigitalOcean Load Balancers and Spaces to streamline automatic SSL certificate management.

Adding a domain to your project allows you to assign the domain to Droplets, load balancers, and other resources. You can only add domains with known top-level domains (TLDs) publicly recognized by ICANN.

Before adding your domain to DigitalOcean, delegate the domain to DigitalOcean’s name servers.

Add a Domain Using Automation

How to Add a Domain 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 domain create. Basic usage looks like this, but you can read the usage docs for more details:
    doctl compute domain create <domain> [flags]
    The following command creates a domain named example.com and adds an A record to the domain:
    doctl compute domain create example.com --ip-address 198.51.100.215
How to Add a Domain 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/domains.

cURL

Using cURL:

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $DIGITALOCEAN_TOKEN" \
  -d '{"name":"example.com","ip_address":"1.2.3.4"}' \
  "https://api.digitalocean.com/v2/domains"

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.DomainCreateRequest{
    Name:      "example.com",
    IPAddress: "1.2.3.4",
  }

  domain, _, err := client.Domains.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)

domain = DropletKit::Domain.new(
  name: 'example.com',
  ip_address: '1.2.3.4'
)
client.domains.create(domain)

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 = {
  "name": "example.com"
}

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

Add a Domain Using the Control Panel

To add a domain from the control panel, open the Create menu and click Domains/DNS.

Create menu

This brings you to the Networking section’s Domains tab. Enter your domain into the Enter domain field, then click Add Domain. If your domain contains non-ASCII characters (such as accents or other Unicode characters), you must convert it to Punycode before adding it.

Note
DigitalOcean’s terms of service prohibit adding country code top-level domains (ccTLDs) from OFAC-sanctioned countries. For more information, including a list of countries, see section 5.7 of our Rules of Conduct in our terms of service.

The system performs a DNS lookup to see if the domain has already been added to DigitalOcean. If it has, you receive a message that says Data domain example.com: Name already exists. If the domain has not been previously added to DigitalOcean’s DNS service, it is added to your team’s domains.

A single domain listed

Once you’ve added the domain, this opens the domain’s Create a new record interface. From here, you can add DNS records like A, AAAA, CNAME, MX, NS, SRV, and TXT records. For a complete list of supported records, see Supported Record Types.

A screenshot of the DNS Create a new record menu

We can't find any results for your search.

Try using different keywords or simplifying your search terms.