DNS
Manage DNS providers, managed domains, and per-resource hostname state. All endpoints require authentication and the DNS_PROVIDER_MANAGEMENT feature to be enabled.
Pro endpoints return HTTP 402 when the corresponding Pro child feature is disabled.
List DNS Providers
GET /api/v1/dns-providers
Returns all DNS providers for the current team. Credentials are masked in responses.
Create DNS Provider
POST /api/v1/dns-providers
Body:
{
"name": "Production Cloudflare",
"type": "cloudflare_tunnel",
"credentials": {
"api_token": "your-token"
}
}
Free tier allows one provider. Additional providers require DNS_MULTI_DOMAIN (Pro).
Test Provider Connection
POST /api/v1/dns-providers/{uuid}/test
Validates credentials and returns connection status.
List Managed Domains
GET /api/v1/domains
Create Domain
POST /api/v1/domains
Body:
{
"name": "example.com",
"dns_provider_uuid": "provider-uuid",
"routing_mode": "wildcard"
}
Sync Domain
POST /api/v1/domains/{uuid}/sync
Triggers tunnel provisioning and wildcard routing setup.
Resource DNS Status
GET /api/v1/dns/resource/{type}/{uuid}
type is application or service. Returns managed hostnames and sync state for the resource.
Re-sync Resource DNS
POST /api/v1/dns/resource/{type}/{uuid}/resync
Dispatches a DNS reconcile job for the resource.
Assign Domain (Pro)
POST /api/v1/dns/resource/{type}/{uuid}/assign-domain
Pin or unpin a hostname to a specific domain. Requires DNS_MULTI_DOMAIN.
Environment Bindings (Pro)
GET /api/v1/domains/{uuid}/environment-bindings
POST /api/v1/domains/{uuid}/environment-bindings
DELETE /api/v1/domains/{uuid}/environment-bindings/{bindingId}
Map environments or environment roles to domains. Requires DNS_ENV_BINDINGS.