DNS records lookup

GET https://api.api.sh/web/v1/dns
1 credit / call web data try it in the playground →

Live DNS records of a domain: A, AAAA, CNAME, MX, NS, TXT, SOA, CAA and HTTPS by default (type=all), or any of A, AAAA, CNAME, MX, NS, TXT, SOA, CAA, SRV, PTR, DS, DNSKEY, RRSIG, TLSA, SVCB, HTTPS, NAPTR, SSHFP, SPF (comma-separated for several). records groups the answers by type with parsed fields (MX priority and exchange, SOA serial and timers, CAA tag and CA, SRV priority/weight/port/target, DS key tag and digest); answers lists them all with TTLs; status is NOERROR, NXDOMAIN or SERVFAIL; dnssec_validated tells whether the answers were DNSSEC-validated. With type=all it also returns email (MX hosts, SPF record, DMARC record and policy) and the domain-verification TXT records it found. Pass an IP address for its reverse (PTR) name. Use _dmarc.example.com, _sip._tcp.example.com and similar names directly.

Every response includes credits_used: the credits this call cost.

Parameters

nametypedescription
domainrequired string Domain name, service name (_dmarc.example.com) or IP address (reverse lookup). Example: github.com
type string Record type, several comma-separated, or all. Example: all Default: all
dnssec boolean Ask for DNSSEC records (RRSIG) with the answers. Default: false

Every endpoint also takes fresh, raw, fields (see lean responses and caching).

Example

curl "https://api.api.sh/web/v1/dns?domain=github.com" \
  -H "x-api-key: $APISH_KEY"

Response

A JSON object with the fields described above, plus raw (the source's own data), cached, fetched_at and credits_used. Errors return {"success": false, "error": "…"} with the HTTP status (see errors). A lookup that ran but found nothing (404) costs the price above; refused calls and errors on our side are free (what's charged).

The fastest way to see the full response is the playground: it runs this endpoint with your account and shows the exact JSON.