How to Add Domains

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 also 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.

Add a Domain Using Automation

How to add a domain using the DigitalOcean CLI

To add a domain via the command-line, follow these steps:

  1. Install doctl, the DigitalOcean command-line tool.

  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, add a domain with doctl compute domain create. The basic usage looks like this, but you'll want to read the usage docs for more details:

                  doctl compute domain create <domain> [flags]
                
How to add a domain using the DigitalOcean API

To add a domain using the DigitalOcean API, follow these steps:

  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

    To add a domain with cURL, call:

    
                    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

    Go developers can use Godo, the official DigitalOcean V2 API client for Go. To add a domain with Godo, use the following code:

    
                    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

    Ruby developers can use DropletKit, the official DigitalOcean V2 API client for Ruby. To add a domain with DropletKit, use the following code:

    
                    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

    
                    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’ll 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 will be added.

Domains you’ve added are listed on the Domains page.

A single domain listed

Once you’ve added a domain, click its name to view and modify its DNS records.

DNS records with NS records only

You can add records in the Create a new record section. The DNS records section lists any existing records for the domain, and you can modify or delete records from the record’s More menu.