Intent-DNS REST API
v1 Public ReferenceProgrammatic REST API for managing authoritative PowerDNS zones, records, apex ALIAS flattening, and Anycast CDN Reverse Proxy.
All API requests must be made over HTTPS to the base endpoint:
Include your persistent API key as a Bearer token in the HTTP Authorization header:
- Exchange your account username/email and password via
POST /api/v1/auth/token, or - Generate a token directly in the web dashboard under Settings & API Keys.
Exchange your account credentials for a persistent API key token (no existing Bearer token required).
-H "Content-Type: application/json" \
-d '{"login": "username_or_email", "password": "yourpassword", "name": "CI/CD Token"}'
{
"ok": true,
"token": "idns_live_0123456789abcdef...",
"prefix": "idns_live_0123",
"user": { "id": 2, "username": "sreep", "role": "admin", "plan": "unlimited" }
}
-H "Authorization: Bearer idns_live_..."
{
"ok": true,
"account": {
"id": 2,
"username": "sreep",
"domain_count": 5,
"dns_record_count": 28,
"limits": { "plan": "unlimited", "is_unlimited": true, "max_domains_display": "Unlimited" }
}
}
Creates an authoritative DNS zone synchronized across anycast nameservers dns1.int.yt, dns2.int.yt, dns3.int.yt, and dns4.int.yt.
curl https://panel.dns.int.yt/api/v1/domains -H "Authorization: Bearer idns_live_..."
# Create domain
curl -X POST https://panel.dns.int.yt/api/v1/domains \
-H "Authorization: Bearer idns_live_..." \
-H "Content-Type: application/json" \
-d '{"domain": "example.com"}'
curl -X DELETE https://panel.dns.int.yt/api/v1/domains/42 \
-H "Authorization: Bearer idns_live_..."
Supports all standard DNS record types: A, AAAA, CNAME, ALIAS (Apex CNAME Flattening), MX, TXT, NS, SRV, and CAA.
curl https://panel.dns.int.yt/api/v1/domains/42/records \
-H "Authorization: Bearer idns_live_..."
# Create an apex ALIAS record (CNAME Flattening)
curl -X POST https://panel.dns.int.yt/api/v1/domains/42/records \
-H "Authorization: Bearer idns_live_..." \
-H "Content-Type: application/json" \
-d '{"name": "@", "type": "ALIAS", "content": "myapp.herokuapp.com", "ttl": 300}'
# Update record
curl -X PUT https://panel.dns.int.yt/api/v1/domains/42/records/128 \
-H "Authorization: Bearer idns_live_..." \
-H "Content-Type: application/json" \
-d '{"name": "@", "type": "A", "content": "192.0.2.1", "ttl": 300}'
# Delete record
curl -X DELETE https://panel.dns.int.yt/api/v1/domains/42/records/128 \
-H "Authorization: Bearer idns_live_..."
Programmatically manage Anycast Reverse Proxy and CDN edge acceleration. Traffic routes through Anycast cluster IP 192.255.149.52 and 2605:6400:30:fbf5::2, offering automated Let's Encrypt SSL/TLS termination, HTTP/2 acceleration, Gzip/Brotli compression, and origin IP concealment.
- Automated Let's Encrypt SSL/TLS termination
- HTTP/2 multiplexing & protocol negotiation
- Origin IP shielding & concealment
- Built-in SSRF protection (validates public IPs only)
- Enabled (Orange Cloud): Anycast ingress proxy handles traffic; origin hidden.
- Disabled (Grey Cloud): Standard direct DNS resolution to origin IP.
-H "Authorization: Bearer idns_live_..."
{
"ok": true,
"domain": { "id": 42, "domain": "example.com" },
"proxy": {
"domain_id": 42,
"is_enabled": 1,
"origin_host": "203.0.113.50",
"origin_port": 443,
"origin_protocol": "https",
"ssl_status": "active",
"ssl_issued_at": "2026-09-09 22:45:00",
"ssl_expires_at": "2026-12-08 22:45:00",
"ssl_error": null
}
}
Parameters: origin (or origin_host), port (default: 443), protocol (http or https). Origin must be a valid public IPv4, IPv6, or hostname (SSRF protection strictly rejects private/loopback/internal IPs).
-H "Authorization: Bearer idns_live_..." \
-H "Content-Type: application/json" \
-d '{
"origin": "203.0.113.50",
"port": 443,
"protocol": "https"
}'
Parameters: enable: true (proxies traffic through Anycast edge) or enable: false (direct DNS to origin).
curl -X POST https://panel.dns.int.yt/api/v1/domains/42/proxy/toggle \
-H "Authorization: Bearer idns_live_..." \
-H "Content-Type: application/json" \
-d '{"enable": true}'
-H "Authorization: Bearer idns_live_..."
-H "Authorization: Bearer idns_live_..."
All API responses use conventional HTTP status codes and standard JSON envelope format:
| Status Code | Description |
|---|---|
| 200 OK | The request was successful. Response body contains ok: true and requested data. |
| 400 Bad Request | Malformed JSON payload or invalid request syntax. |
| 401 Unauthorized | Missing, expired, or invalid Bearer token / credentials. |
| 403 Forbidden | API access disabled for account or insufficient permission role. |
| 404 Not Found | Requested domain, DNS record, or endpoint does not exist. |
| 409 Conflict | Domain zone already exists, account limit reached, or conflicting DNS record (e.g. CNAME at apex). |
| 422 Unprocessable | Validation failed (e.g. private/reserved IP in reverse proxy origin, invalid hostname, bad TTL). |
| 429 Rate Limited | Too many requests submitted. Back off and retry with exponential delay. |