DNSfish API · v1

The DNS API for ops, monitors, and CI.

Same engine as the UI, exposed as JSON, JSONP, and DNS-over-HTTPS. No auth for <1,000 req/day. No rate-limit pages. No tracking.

GET/v1/lookup/:domain200 OK · 38ms p50

Returns every record type for a domain, queried against your selected resolver. Pass ?types=A,MX,TXT to limit.

Parameters

NameTypeDefaultDescription
domainstringRequired. The hostname to look up.
typesstring[]allComma-separated list. e.g. A,AAAA,MX
resolverstringcloudflareOne of cloudflare, google, quad9, opendns, auth
traceboolfalseInclude full recursive trace from root.

Example request

cURL
$ curl "https://api.dnsfish.com/v1/lookup/github.com" \
-H "Accept: application/json"

Response

application/json200 OK
{
"domain": "github.com",
"resolver": "cloudflare",
"queried_at": "2026-05-24T18:42:11Z",
"latency_ms": 38,
"dnssec": { "signed": false, "reason": "no DS at parent" },
"answers": {
"A": [{ "value": "140.82.114.4", "ttl": 60 }],
"MX": [{ "priority": 1, "value": "aspmx.l.google.com." }, /* 4 more */]
}
}

SDK snippets

JavaScript
import { dnsfish } from "dnsfish"
const r = await dnsfish.lookup("github.com")
console.log(r.answers.A)
Python
import dnsfish
r = dnsfish.lookup("github.com")
print(r.answers["A"])
Go
client := dnsfish.New("")
r, _ := client.Lookup("github.com")
fmt.Println(r.Answers.A)
Shell
$ dnsfish lookup github.com --type mx
1 aspmx.l.google.com.
5 alt1.aspmx.l.google.com.