API: DNS

REST API endpoints for DNS zone and record management.

API: DNS

Zone Endpoints

MethodPathDescription
POST/v1/dns/zonesCreate a DNS zone
GET/v1/dns/zonesList all zones
GET/v1/dns/zones/{id}Get zone details
DELETE/v1/dns/zones/{id}Delete a zone
### Create Zone
{
  "metadata": {"name": "example-zone"},
  "spec": {
    "domain": "example.com",
    "dnssec": true
  }
}

Record Endpoints

MethodPathDescription
POST/v1/dns/recordsCreate a DNS record
GET/v1/dns/recordsList records (filter by ?zone_id=)
GET/v1/dns/records/{id}Get record details
DELETE/v1/dns/records/{id}Delete a record
### Create Record
{
  "metadata": {"name": "www-record"},
  "spec": {
    "zone_id": "zone-abc123",
    "name": "www",
    "type": "A",
    "value": "203.0.113.42",
    "ttl": 300
  }
}

ZoneSpec Fields

FieldTypeRequiredDescription
domainstringYesDomain name
dnssecboolNoEnable DNSSEC (default: false)
## RecordSpec Fields
FieldTypeRequiredDescription
zone_idstringYesParent zone ID
namestringYesRecord name (e.g., www, @)
typestringYesRecord type: A, AAAA, CNAME, MX, TXT, SRV, NS
valuestringYesRecord value
ttlintNoTime to live in seconds (default: 3600)
## Example: Full Domain Setup
# Create zone
curl -X POST $API/v1/dns/zones -H "$AUTH" -H "$CT" \
  -d '{"metadata":{"name":"my-zone"},"spec":{"domain":"myapp.com","dnssec":true}}'

Create A record

curl -X POST $API/v1/dns/records -H "$AUTH" -H "$CT" \ -d '{"metadata":{"name":"root-a"},"spec":{"zone_id":"zone-xyz","name":"@","type":"A","value":"203.0.113.42","ttl":300}}'

Create CNAME

curl -X POST $API/v1/dns/records -H "$AUTH" -H "$CT" \ -d '{"metadata":{"name":"www-cname"},"spec":{"zone_id":"zone-xyz","name":"www","type":"CNAME","value":"myapp.com","ttl":300}}'