Zones
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 NSis the fastest 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:createdns:zone:listdns: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
}Prev
QuickstartNext
Records