Skip to content

DNS resolver

A public DNS-over-HTTPS (DoH) resolver. It answers DNS queries over an ordinary HTTPS request, so any client that speaks DoH can use it, and so can a plain curl.

DNS is the internet's address book: it turns a name like example.com into the numeric IP address a computer actually connects to. Resolving over HTTPS keeps those lookups private and unmodified in transit.

  • Base path: https://ws.latency.app/v1/dns
  • Auth: none (public)
  • Privacy: query names are not logged.
  • Rate limit: per client IP, default 600 requests/minute. Over the limit returns 429.

On the house

The DNS resolver is free and unmetered. Its 600/min per-IP budget exists only to keep abuse out, not to push you onto a plan: DoH queries are never counted against your monitor, function, or API quotas, on any plan or none. Point a tool, a script, or your whole browser at it and go. The other public primitives are held to a stricter shared budget (see rate limits).

Endpoints

The resolver accepts queries in two interchangeable forms at the same path. /v1/dns/query is the canonical path; /v1/dns/dns-query is an alias for clients that follow the RFC 8484 naming convention.

JSON form

The simplest way to ask. Pass a name and record type as query parameters and get JSON back.

bash
curl "https://ws.latency.app/v1/dns/query?name=example.com&type=A"
ParameterMeaningDefault
nameThe domain to resolve. Required.
typeRecord type: A, AAAA, MX, TXT, CNAME, NS, …A

The response is application/dns-json, the same shape Google and Cloudflare return:

json
{
  "Status": 0,
  "Answer": [
    { "name": "example.com", "type": 1, "TTL": 300, "data": "93.184.216.34" }
  ]
}

type: 1 is an A record; Status: 0 means success (NOERROR).

Wire form (RFC 8484)

For DoH clients and libraries. The DNS message is carried as raw bytes and the response is a binary DNS packet (application/dns-message).

bash
# GET: base64url-encoded query in the ?dns= parameter
curl "https://ws.latency.app/v1/dns/query?dns=<base64url-encoded-query>"

# POST: the raw query as the request body
curl -H 'content-type: application/dns-message' \
     --data-binary @query.bin \
     https://ws.latency.app/v1/dns/query

Point a DoH-capable client at the endpoint directly:

https://ws.latency.app/v1/dns/query

Record types

Common types you can request with the JSON form:

TypeUse
AIPv4 address
AAAAIPv6 address
CNAMEAlias to another name
MXMail servers
TXTText records (SPF, verification, …)
NSAuthoritative name servers

Why use it

  • Confirm what a name resolves to right now, from our network's vantage point, useful when debugging a propagation delay or a split-horizon setup.
  • Feed other primitives. The inspector uses this resolver internally to turn a bare domain into an IP before geolocating it.
  • A private, uncensored resolver for scripts and tools, with no query logging.
  • Geo: locate the IP a name resolves to
  • Inspect: resolution, geo, and status in one call
© 2026 Latency Labs LLC
latency

© 2026 Latency Labs LLC.