DNS Access Methods
Query ResolveDB data using standard DNS, DNS-over-HTTPS (DoH), or DNS-over-TLS (DoT).
TL;DR
ResolveDB data is accessible via any DNS method. Pick what fits your environment.
| Method | When to Use | Privacy | Setup |
|---|---|---|---|
| Standard DNS | CLI tools, system resolvers | None | Zero |
| DoH JSON API | Browsers, REST clients, debugging | Encrypted | HTTPS call |
| DoH Wire Format | DNS libraries, system integration | Encrypted | RFC 8484 |
| DoT | Network-level privacy | Encrypted | Port 853 |
Quick Comparison
Standard DNS (UDP/TCP 53)
Query directly using dig, nslookup, or any DNS library. Fast, cached globally, but queries are plaintext.
dig TXT get.newyork.weather.public.v1.resolvedb.net +shortDoH JSON API
Human-readable JSON responses. Perfect for browsers and debugging. Use standard fetch() or curl.
curl "https://api.resolvedb.io/resolve?name=get.newyork.weather.public.v1.resolvedb.net&type=TXT"DoH Wire Format (RFC 8484)
Standard DNS wire format over HTTPS. Compatible with DNS libraries and system resolvers.
# Base64url-encoded DNS query
curl "https://api.resolvedb.io/dns-query?dns=..." \
-H "Accept: application/dns-message"DoT (Port 853)
DNS-over-TLS for encrypted queries at the transport layer.
kdig +tls get.newyork.weather.public.v1.resolvedb.net TXT @api.resolvedb.ioChoosing the Right Method
For Web Applications
Use the DoH JSON API. It works with standard fetch(), returns readable JSON, and encrypts queries.
const response = await fetch(
'https://api.resolvedb.io/resolve?name=get.quebec.weather.public.v1.resolvedb.net&type=TXT'
);
const data = await response.json();For CLI and Scripts
Use standard DNS for simplicity, or DoH JSON if you need encryption:
# Standard DNS (fastest, cached)
dig TXT get.quebec.weather.public.v1.resolvedb.net +short
# DoH JSON (encrypted)
curl -s "https://api.resolvedb.io/resolve?name=get.quebec.weather.public.v1.resolvedb.net&type=TXT" | jqFor System Integration
Use DoH Wire Format when integrating with DNS libraries or configuring system resolvers:
import dns.query
import dns.message
# Build query
query = dns.message.make_query('get.quebec.weather.public.v1.resolvedb.net', 'TXT')
# Send via DoH
response = dns.query.https(query, 'https://api.resolvedb.io/dns-query')For Network Privacy
Configure DoT on your resolver for transparent encryption of all DNS queries:
Server: api.resolvedb.io
Port: 853
Protocol: TLSEndpoints
| Endpoint | Protocol | Format |
|---|---|---|
resolvedb.net (port 53) | UDP/TCP | Wire |
api.resolvedb.io/resolve | HTTPS | JSON |
api.resolvedb.io/dns-query | HTTPS | Wire |
api.resolvedb.io (port 853) | TLS | Wire |
Next Steps
- DoH JSON API Reference - Full parameter reference and examples
- DoH Wire Format Reference - RFC 8484 implementation details
- UQRP Protocol - Query and response format specification