{"openapi":"3.1.0","info":{"title":"DNS Propagation API","version":"1.0.0","description":"Check DNS propagation by querying a record across several major public resolvers at once — Google (8.8.8.8), Cloudflare (1.1.1.1), AdGuard and dns.sb — and seeing whether they all return the same answer. Pass a domain and a record type and the service queries every resolver in parallel and reports each resolver's answers, whether they are consistent (the change has fully propagated) or still differ (mid-propagation, stale caching or split-horizon DNS), the number of distinct answer sets and the union of all answers. Supported record types: A, AAAA, CNAME, MX, TXT, NS, SOA, SRV, CAA and PTR. A single-resolver endpoint queries one named resolver on its own, and a failing resolver is reported per-resolver without failing the whole call. Live DoH (DNS-over-HTTPS) JSON queries, always current. Built for verifying DNS changes after a migration or launch, debugging split-horizon or stale-cache issues, and uptime/propagation monitoring. A DNS propagation checker — distinct from single-resolver record lookup (dns), the email-authentication analyzer (emailsec) and WHOIS (whois). No upstream key, no cache.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/dnspropagation-api","description":"oanor gateway"}],"tags":[{"name":"DNS Propagation"},{"name":"Meta"}],"components":{"securitySchemes":{"oanorKey":{"type":"apiKey","in":"header","name":"x-oanor-key","description":"Get your key at https://www.oanor.com/developer/keys"}}},"security":[{"oanorKey":[]}],"paths":{"/v1/check":{"get":{"operationId":"get_v1_check","tags":["DNS Propagation"],"summary":"Propagation across resolvers","description":"","parameters":[{"name":"domain","in":"query","required":true,"description":"Domain to query","schema":{"type":"string"},"example":"example.com"},{"name":"type","in":"query","required":false,"description":"A, AAAA, CNAME, MX, TXT, NS, SOA, SRV, CAA, PTR","schema":{"type":"string"},"example":"A"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"type":"A","domain":"example.com","resolvers":[{"name":"Google","rcode":0,"status":"ok","answers":["104.20.23.154","172.66.147.243"],"resolver":"google"},{"name":"Cloudflare","rcode":0,"status":"ok","answers":["104.20.23.154","172.66.147.243"],"resolver":"cloudflare"},{"name":"AdGuard","rcode":0,"status":"ok","answers":["104.20.23.154","172.66.147.243"],"resolver":"adguard"},{"name":"dns.sb","rcode":0,"status":"ok","answers":["104.20.23.154","172.66.147.243"],"resolver":"dnssb"}],"consistent":true,"resolvers_ok":4,"answers_union":["104.20.23.154","172.66.147.243"],"resolvers_total":4,"distinct_answer_sets":1},"meta":{"timestamp":"2026-06-01T23:40:45.141Z","request_id":"c1160d1b-cc9c-4e20-ad5a-79d50c556e02"},"status":"ok","message":"Propagation checked","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/lookup":{"get":{"operationId":"get_v1_lookup","tags":["DNS Propagation"],"summary":"Query one named resolver","description":"","parameters":[{"name":"domain","in":"query","required":true,"description":"Domain to query","schema":{"type":"string"},"example":"cloudflare.com"},{"name":"type","in":"query","required":false,"description":"Record type","schema":{"type":"string"},"example":"NS"},{"name":"resolver","in":"query","required":false,"description":"google, cloudflare, adguard, dnssb","schema":{"type":"string"},"example":"google"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"name":"Google","type":"NS","rcode":0,"domain":"cloudflare.com","status":"ok","answers":["ns3.cloudflare.com","ns4.cloudflare.com","ns5.cloudflare.com","ns6.cloudflare.com","ns7.cloudflare.com"],"resolver":"google"},"meta":{"timestamp":"2026-06-01T23:40:45.268Z","request_id":"80ecc2b0-5aee-4790-9770-b9ed3e023e68"},"status":"ok","message":"Resolver queried","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/meta":{"get":{"operationId":"get_v1_meta","tags":["Meta"],"summary":"Resolvers & record types","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Check DNS propagation by querying a record across several major public resolvers at once — Google (8.8.8.8), Cloudflare (1.1.1.1), AdGuard and dns.sb — and seeing whether they all return the same answer. /v1/check?domain=example.com&type=A queries every resolver in parallel and reports each resolver's answers, whether they are consistent (a change has fully propagated) or still differ (mid-propagation or split-horizon), the number of distinct answer sets and the union of all answers. Supported record types: A, AAAA, CNAME, MX, TXT, NS, SOA, SRV, CAA, PTR. /v1/lookup queries a single named resolver. A failing resolver is reported per-resolver, never failing the whole call. Live DoH-JSON queries, no cache. Ideal for verifying DNS changes after a migration, debugging split-horizon or stale caching, and monitoring. A DNS propagation checker — distinct from single-resolver record lookup (dns), the email-auth analyzer (emailsec) and WHOIS (whois). No key, no cache.","endpoints":["/v1/check","/v1/lookup","/v1/meta"],"resolvers":[{"id":"google","name":"Google"},{"id":"cloudflare","name":"Cloudflare"},{"id":"adguard","name":"AdGuard"},{"id":"dnssb","name":"dns.sb"}],"record_types":["A","NS","CNAME","SOA","PTR","MX","TXT","AAAA","SRV","CAA"]},"meta":{"timestamp":"2026-06-01T23:40:45.366Z","request_id":"f0cde4da-9018-49c6-bcf2-62a5a7a96fed"},"status":"ok","message":"Meta retrieved","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":2200,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":645,"monthly_call_quota":43000,"rps_limit":8,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":2080,"monthly_call_quota":224000,"rps_limit":20,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":5430,"monthly_call_quota":840000,"rps_limit":50,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/dnspropagation-api"}