dns

Quickstart

Three calls and a registrar tweak. You're answering DNS queries.

Last updated ยท 22 May 2026


You need a domain you own (e.g. example.com) and an Excloud API token. Get a token with exc apikey create or from the console.

export TOKEN=eyJhbGciOi...

1. Create the zone

curl -sS -X POST https://dns.excloud.in/dns/zone/create \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name": "example.com"}'

The response includes four nameservers (ns1.excloud.in etc.). Copy them.

2. Delegate at your registrar

In your registrarโ€™s control panel, set the nameservers for the domain to the four values from step 1. Propagation typically completes within an hour but can take up to 48.

Sanity check:

dig +short NS example.com

When that returns the Excloud nameservers, youโ€™re delegated.

3. Add an A record

curl -sS -X POST https://dns.excloud.in/dns/record/create \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "zone_name": "example.com",
    "type": "A",
    "name": "api",
    "ttl": 300,
    "records": ["203.0.113.10"]
  }'

Verify:

dig +short api.example.com

4. (Optional) The same in Terraform

resource "excloud_dns_zone" "example" {
  name = "example.com"
}

resource "excloud_dns_record" "api" {
  zone_name = excloud_dns_zone.example.name
  type      = "A"
  name      = "api"
  ttl       = 300
  records   = ["203.0.113.10"]
}

output "nameservers" {
  value = excloud_dns_zone.example.nameservers
}

terraform apply, then set the output nameservers at your registrar.

Next

  • Zones โ€” deletion, listing, delegation gotchas.
  • Records โ€” every record type and its payload shape.