How to Add Domains

Validated on 12 Aug 2024 • Last edited on 9 Jun 2026

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

Create a personal access token and save it for use with the API.

cURL

Send a POST request to https://api.digitalocean.com/v2/domains.

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, click Networking in the main menu, then click Domains.

On the Domains page, click Add a domain. In the Add a domain window, enter your domain in the Domain field, choose a project from the Project drop-down, 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.

Domains page under Networking listing an example domain with its NS and SOA record counts.

Once you’ve added the domain, click its name to open the Domain records page, where you can create records for the domain, including A, AAAA, CNAME, MX, NS, SRV, and TXT records. For a complete list, see Supported Record Types.

Domain records page showing the default NS and SOA records for the newly added domain.

We can't find any results for your search.

Try using different keywords or simplifying your search terms.