API
DNS API
REST API endpoints for managing DNS zones, records, security gateway, and custom domains.
Endpoints for managing DNS zones and records within your project.
Zones
List zones
GET /api/orgs/:orgSlug/projects/:projectSlug/dns/zonesCreate a zone
POST /api/orgs/:orgSlug/projects/:projectSlug/dns/zones| Field | Type | Required | Description |
|---|---|---|---|
domain | string | yes | The domain name |
mode | string | yes | full_hosting or external |
customNameservers | string[] | no | Custom NS records |
Scan a domain
POST /api/orgs/:orgSlug/projects/:projectSlug/dns/scanDiscovers current NS records and existing DNS records for a domain.
Get a zone
GET /api/orgs/:orgSlug/projects/:projectSlug/dns/zones/:zoneIdDelete a zone
DELETE /api/orgs/:orgSlug/projects/:projectSlug/dns/zones/:zoneIdVerify nameservers
POST /api/orgs/:orgSlug/projects/:projectSlug/dns/zones/:zoneId/verifySync zone
POST /api/orgs/:orgSlug/projects/:projectSlug/dns/zones/:zoneId/syncRecords
List records
GET /api/orgs/:orgSlug/projects/:projectSlug/dns/zones/:zoneId/recordsCreate a record
POST /api/orgs/:orgSlug/projects/:projectSlug/dns/zones/:zoneId/records| Field | Type | Required | Description |
|---|---|---|---|
type | string | yes | A, AAAA, CNAME, MX, TXT, NS, CAA |
name | string | yes | Record name relative to zone |
value | string | yes | Record value |
ttl | number | no | TTL in seconds (default 300) |
priority | number | no | MX priority |
proxied | boolean | no | Enable proxy (A, AAAA, CNAME only) |
originProtocol | string | no | http or https |
originPort | number | no | Origin port |
originPath | string | no | Origin path |
originHostHeader | string | no | Origin host header |
Update a record
PATCH /api/orgs/:orgSlug/projects/:projectSlug/dns/zones/:zoneId/records/:recordIdPartial update — at least one field required.
Delete a record
DELETE /api/orgs/:orgSlug/projects/:projectSlug/dns/zones/:zoneId/records/:recordIdBulk delete records
POST /api/orgs/:orgSlug/projects/:projectSlug/dns/zones/:zoneId/records/bulk-delete{
"recordIds": ["id1", "id2", ...]
}Max 100 records per request.
Restore a record
POST /api/orgs/:orgSlug/projects/:projectSlug/dns/zones/:zoneId/records/:recordId/restoreSecurity gateway
Get policy
GET /api/orgs/:orgSlug/projects/:projectSlug/dns/zones/:zoneId/security-gatewayUpdate policy
PUT /api/orgs/:orgSlug/projects/:projectSlug/dns/zones/:zoneId/security-gatewayList events
GET /api/orgs/:orgSlug/projects/:projectSlug/dns/zones/:zoneId/security-gateway/eventsEvent summary
GET /api/orgs/:orgSlug/projects/:projectSlug/dns/zones/:zoneId/security-gateway/summary?hours=24API key access
List zones (API key)
GET /api/dns/zones
Authorization: Bearer <api-key>Requires dns:read scope.
List records (API key)
GET /api/dns/zones/:zoneId/records
Authorization: Bearer <api-key>Requires dns:read scope.
Need help? Contact support.
