Diagnose a custom domain's DNS
const url = 'https://api.deploybase.eu/api/v1/api/v1/admin/domains/example/diagnose';const options = {method: 'POST', headers: {Authorization: '<Authorization>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.deploybase.eu/api/v1/api/v1/admin/domains/example/diagnose \ --header 'Authorization: <Authorization>'Looks up the domain’s verification TXT record, CNAME, A, AAAA and nameservers live (through the same public resolver the verifier uses) and classifies them into findings: txt_ok, txt_missing, txt_wrong_value, txt_wrong_name, cname_ok, cname_wrong_target, alias_ok, apex_a_record, subdomain_a_record, cloudflare_proxied, aaaa_leftover, no_records, ns_delegated, ns_not_delegated, lookup_failed, looks_correct. Returns the raw records and a guessed DNS provider. POST because it performs outbound lookups; each domain can be diagnosed once every 10 seconds.
Authorizations
Section titled “ Authorizations ”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “ Path Parameters ”Domain ID
Responses
Section titled “ Responses ”OK
object
object
object
object
object
CNAME is the canonical name the hostname resolves through; null when it has none.
ExpectedNS are the Bunny nameservers a managed-DNS domain must delegate to.
LookupErrors names each lookup that failed for a reason other than “no such record”.
object
NSName is the zone whose nameservers were read: the domain itself for managed DNS, the registrable domain otherwise.
Target is the Bunny hostname the domain must CNAME/ALIAS to, and TargetA/TargetAAAA its addresses today (a flattened apex shares at least one of them).
Example generated
{ "data": { "checked_at": "example", "connection_mode": "example", "dns_provider": "example", "domain": "example", "domain_id": "example", "findings": [ { "code": "example", "message": "example", "severity": "example" } ], "kind": "example", "records": { "a": [ "example" ], "aaaa": [ "example" ], "cname": "example", "expected_ns": [ "example" ], "lookup_errors": { "additionalProperty": "example" }, "ns": [ "example" ], "ns_name": "example", "target": "example", "target_a": [ "example" ], "target_aaaa": [ "example" ], "txt": [ "example" ], "txt_name": "example" }, "resolver": "example", "ssl_status": "example", "stage": "example", "status": "example", "team_id": "example" }, "meta": { "request_id": "example", "timestamp": "example", "trace_id": "example" }}Bad Request
object
object
Example generated
{ "code": "example", "details": "example", "error": "example", "meta": { "request_id": "example", "timestamp": "example", "trace_id": "example" }}Unauthorized
object
object
Example generated
{ "code": "example", "details": "example", "error": "example", "meta": { "request_id": "example", "timestamp": "example", "trace_id": "example" }}Forbidden
object
object
Example generated
{ "code": "example", "details": "example", "error": "example", "meta": { "request_id": "example", "timestamp": "example", "trace_id": "example" }}Not Found
object
object
Example generated
{ "code": "example", "details": "example", "error": "example", "meta": { "request_id": "example", "timestamp": "example", "trace_id": "example" }}Diagnosed less than 10 seconds ago; see Retry-After
object
object
Example generated
{ "code": "example", "details": "example", "error": "example", "meta": { "request_id": "example", "timestamp": "example", "trace_id": "example" }}Internal Server Error
object
object
Example generated
{ "code": "example", "details": "example", "error": "example", "meta": { "request_id": "example", "timestamp": "example", "trace_id": "example" }}Service Unavailable
object
object
Example generated
{ "code": "example", "details": "example", "error": "example", "meta": { "request_id": "example", "timestamp": "example", "trace_id": "example" }}Live 174db30c built