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
- Install
doctl
, the official DigitalOcean CLI.
- Create a personal access token and save it for use with
doctl
.
- Use the token to grant
doctl
access to your DigitalOcean account.
- 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.
- 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.
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.
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.
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.