DNS ยท Zones & Records

Authoritative DNS that answers for your zone directly.

Creating a zone takes one API call. The response includes the four nameservers to set at your registrar โ€” after that, Excloud handles every query for the zone.

curl โ€” terminal
$ curl -sS -X POST https://dns.excloud.in/dns/zone/create \
    -H "Authorization: Bearer $TOKEN" \
    -d '{"name": "example.com"}'
{
  "id": "z-1234",
  "nameservers": [
    "ns1.excloud.in", "ns2.excloud.in",
    "ns3.excloud.in", "ns4.excloud.in"
  ]
}

Record types

All the record types you need, using the same payload shape.

Each create, update, and delete carries a type field the API uses to interpret the rest of the payload. The composite record ID is <zone>:<type>:<name> โ€” the same identifier update and delete expect.

TypeWhat it does
A / AAAA Map a name to an IPv4 or IPv6 address
CNAME Alias to another name
TXT SPF, DKIM, DMARC, ACME challenges
MX Mail exchanger, lower priority wins
NS Delegate a sub-zone to other nameservers
SRV Service records โ€” priority, weight, port, target
CAA Certificate authority authorisation
PTR Reverse mapping
Weighted A / AAAA / CNAME Same as the base type, with per-target weights for round-robin

SOA is managed for you. TTLs aren't enforced, but 300โ€“3600 is normal, 60โ€“120 right before flipping a record, and 3600+ for SPF/DKIM/CAA.

Delegation

Set all four nameservers at your registrar, not just two.

Most registrars allow partial delegation. Don't use it โ€” set all four nameservers for redundancy. The first delegation can take up to 48 hours, bounded by the TTL your registrar puts on the parent NS record; later record changes propagate at the speed of your own zone's TTLs.

  • Don't host the parent NS records inside the zone you're delegating โ€” Excloud handles the glue
  • Deleting a zone deletes every record in it and stops answering immediately
  • A CNAME can't coexist with any other record at the same name, and never goes at the zone apex
terminal
$ dig +short NS example.com
ns1.excloud.in.
ns2.excloud.in.
ns3.excloud.in.
ns4.excloud.in.
$ curl -sS -X POST https://dns.excloud.in/dns/record/create \
    -H "Authorization: Bearer $TOKEN" \
    -d '{"zone_name":"example.com","type":"A",
     "name":"api","ttl":300,"records":["203.0.113.10"]}'
$ dig +short api.example.com
203.0.113.10

Get started

Your first record is live before you close the terminal.

Create the zone, point your registrar at the four nameservers, and push an A record. Run dig and you're done.