Skip to content
MailTwin

API

Everything the website shows comes from this API. All endpoints are read-only and return JSON. Each address may make 30 domain checks and 120 requests a minute.

GET/api/v1/check?domain={domain}

Full report: MX, TXT, SPF, DMARC, problems, score, resolver comparison and every DNS query made.

GET/api/v1/mx?domain={domain}

Mail servers with A/AAAA addresses, null MX and implicit MX handling.

GET/api/v1/spf?domain={domain}

SPF record, include chain, lookup and void-lookup counts, problems.

GET/api/v1/dmarc?domain={domain}

DMARC record (with organisational-domain fallback), tags, report destinations, problems.

GET/api/v1/txt?domain={domain}

TXT records at the domain, classified.

GET/api/v1/dns?name={name}&type={type}&resolver={default|google|cloudflare|all}

One DNS query: A, AAAA, MX, TXT, NS, SOA, CAA, PTR, SRV, CNAME, DS or DNSKEY.

GET/healthz

Liveness check.

Errors

Every error has the same shape. Invalid input returns 422; too many requests returns 429 with a Retry-After header; 503 means the service is busy.

{
  "error": {
    "code": "invalid_domain",
    "message": "Enter a full domain name, such as example.com."
  }
}

Example

curl "https://cyberhqs.com/api/v1/dmarc?domain=example.com"