Docs / Delivery

DNS

Ollanode runs an authoritative DNS server (Hickory) on :53 that answers straight from Postgres. These endpoints are the write path; changes propagate to the in-memory authorities in about 15 seconds.

authoritativeA/AAAA/CNAME/TXT/MX/NSUDP + TCP :53

Zones

POST /v1/dns/zones dns:write

Create a DNS zone. name must be a valid domain. Agent keys are approval-gated.

curl
curl -X POST https://api.ollanode.com/v1/dns/zones \
  -H "Authorization: Bearer $OLLANODE_API_KEY" \
  -H "Content-Type: application/json" -d '{"name":"example.com"}'
Response
{ "id":"dnsz_...", "name":"example.com", "created_at":"..." }
GET /v1/dns/zones dns:read

List DNS zones (paginated).

DELETE /v1/dns/zones/{id} dns:delete

Delete a zone (and its records). Agent keys are approval-gated.

Records

POST /v1/dns/zones/{id}/records dns:write

Add a record. rtype ∈ A/AAAA/CNAME/TXT/MX/NS; ttl defaults to 300; priority is for MX. Agent keys are approval-gated.

curl
# A record
curl -X POST https://api.ollanode.com/v1/dns/zones/dnsz_abc/records \
  -H "Authorization: Bearer $OLLANODE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"www","rtype":"A","value":"203.0.113.10","ttl":300}'

# MX record (priority)
curl -X POST https://api.ollanode.com/v1/dns/zones/dnsz_abc/records \
  -H "Authorization: Bearer $OLLANODE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"@","rtype":"MX","value":"mail.example.com","priority":10,"ttl":3600}'
Response
{ "id":"dnsr_...", "name":"www", "rtype":"A", "value":"203.0.113.10", "ttl":300, "priority":null }
GET /v1/dns/zones/{id}/records dns:read

List every record in the zone (plain array, not paginated).

DELETE /v1/dns/zones/{id}/records/{rid} dns:delete

Delete a record. Agent keys are approval-gated.

Use cases: manage authoritative DNS for a customer domain alongside its CDN zones; script bulk record provisioning during onboarding.