dns

Zones

A zone is one delegated domain. Creating one gets you Excloud nameservers; you then point your registrar at them.

Last updated ยท 22 May 2026


A zone is one DNS-managed domain โ€” example.com, myco.dev, etc. Creating a zone allocates Excloud nameservers for it and returns them; you delegate the domain by setting those nameservers at your registrar.

Create

POST /dns/zone/create
Authorization: Bearer <token>
Content-Type: application/json

{ "name": "example.com" }

Response (abbreviated):

{
  "id": "z-1234",
  "name": "example.com",
  "nameservers": [
    "ns1.excloud.in",
    "ns2.excloud.in",
    "ns3.excloud.in",
    "ns4.excloud.in"
  ]
}

Copy the nameservers and set them at your registrar.

List

GET /dns/zone/list
Authorization: Bearer <token>

Returns every zone in the org.

Get one

GET /dns/zone/{id}
Authorization: Bearer <token>

Useful to fetch the current nameserver list after the fact.

Delete

POST /dns/zone/delete
Authorization: Bearer <token>
Content-Type: application/json

{ "name": "example.com" }

Deletes the zone and every record in it. Excloud immediately stops answering queries for the domain, so make sure the registrar delegation is changed first or youโ€™ll start serving SERVFAILs.

Delegation gotchas

  • Set all four nameservers. Most registrars allow partial delegation; donโ€™t โ€” set all four for redundancy.
  • TTL on the parent NS record is set by the registrar (often 24โ€“48h). Your first delegation can take that long to propagate globally; subsequent changes propagate at the speed of your zoneโ€™s own TTLs.
  • dig +trace example.com NS is the most direct way to confirm the delegation is in place.
  • Donโ€™t host the parent NS records inside the zone youโ€™re delegating. Excloud handles the glue automatically; you donโ€™t add NS records for @ yourself.

Required permissions

  • dns:zone:create
  • dns:zone:list
  • dns:zone:delete

Resource scoping: exc:dns:zone/<zone-name>. See the Policies guide.

Terraform

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

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