DNS Propagation API — /api/v1/domain/propagation
Fans out the same query to Google, Cloudflare, OpenDNS, and Quad9 and reports per-resolver agreement. Use to verify a DNS change has propagated globally.
What DNS Propagation does
Fans out the same query to Google, Cloudflare, OpenDNS, and Quad9 and reports per-resolver agreement. Use to verify a DNS change has propagated globally.
- Method GET
- Path /api/v1/domain/propagation
- Stability STABLE
- Version v2026-05-15
- Summary Check DNS resolution across multiple public resolvers in parallel.
Request parameters
Pass these as query-string parameters (or, where indicated, in the request headers). Required params marked required.
- domain (required) — string FQDN to test.
- type (required) — string Single record type (A, AAAA, MX, TXT, CNAME, NS).
Response schema
All successful responses follow the standard `{ success: true, data: {...} }` envelope. Notable fields on the data object for this endpoint:
- data.results[].provider — string Resolver name.
- data.results[].resolver_ips — array<string> IPs queried for this resolver.
- data.results[].propagated — boolean True if the resolver returned a non-empty answer.
- data.results[].result — array<object> Same shape as `/domain/dns` answers.
- data.results[].time — number Per-resolver RTT in ms.
Example response
Truncated but representative example for a real lookup:
{
"success": true,
"data": {
"results": [
{
"provider": "Google",
"resolver_ips": [
"8.8.8.8",
"8.8.4.4"
],
"propagated": true,
"type": "A",
"result": [
{
"address": "142.251.211.46",
"ttl": 6
}
],
"time": 13,
"host": "google.com"
},
{
"provider": "Cloudflare",
"resolver_ips": [
"1.1.1.1",
"1.0.0.1"
],
"propagated": true,
"type": "A",
"result": [
{
"address": "142.251.211.46",
"ttl": 6
}
],
"time": 12,
"host": "google.com"
}
]
}
}Error codes
Errors return HTTP status codes paired with stable machine-readable codes. Match on the code field rather than the human-readable message.
- 400 INVALID_DNS_TYPE Multiple record types are not supported here — use `/domain/dns` instead.
Implementation tips
Patterns we recommend when integrating this endpoint:
- Use right after a DNS change to confirm propagation. Most changes settle in under 5 minutes; some take up to TTL.
Frequently asked questions
- Why not include more resolvers? We picked 4 with global Anycast footprints. Adding more increases latency without adding signal.