The DNS API provides full CRUD access to Cloudflare DNS records through the API Gateway. It proxies requests to the Cloudflare API v4 using a configured API token.
Set the following environment variables:
CLOUDFLARE_API_TOKEN=your-api-token
CLOUDFLARE_ZONE_ID=your-zone-id
The API token must have Zone:DNS:Edit permissions for the target zones.
/dns/zonesList all Cloudflare zones accessible by the configured API token.
Response (200):
{
"success": true,
"result": [
{
"id": "zone-id-here",
"name": "sebhosting.com",
"status": "active",
"type": "full"
}
]
}
/dns/zones/:zoneId/recordsList all DNS records for a zone (up to 100 records).
Parameters:
:zoneId — Cloudflare zone IDResponse (200):
{
"success": true,
"result": [
{
"id": "record-id",
"type": "A",
"name": "nexus.sebhosting.com",
"content": "203.0.113.1",
"proxied": true,
"ttl": 1
}
]
}
/dns/zones/:zoneId/recordsCreate a new DNS record.
Request:
{
"type": "A",
"name": "new-service",
"content": "203.0.113.1",
"ttl": 1,
"proxied": true
}
Supported record types: A, AAAA, CNAME, MX, TXT, SRV, NS, CAA
/dns/zones/:zoneId/records/:recordIdUpdate an existing DNS record.
Request:
{
"type": "A",
"name": "service",
"content": "203.0.113.2",
"ttl": 1,
"proxied": true
}
/dns/zones/:zoneId/records/:recordIdDelete a DNS record.
Response (200):
{
"success": true,
"result": {
"id": "record-id"
}
}
All DNS endpoints proxy Cloudflare’s response format. On internal errors:
{
"success": false,
"errors": [
{
"message": "CLOUDFLARE_API_TOKEN not configured"
}
]
}
The NeXuS dashboard includes a full DNS management UI at /dashboard/dns that uses these endpoints to: