Who it is for
Use the suite for troubleshooting, migration checks, infrastructure research, and security review.
Try a product, outcome, endpoint path, or API topic.
Compare answers from the Cloudflare and Google public recursive resolvers. These are two global-anycast DoH providers, not geographic probes or authoritative nameservers.
Compare answers from the Cloudflare and Google public recursive resolvers. These are two global-anycast DoH providers, not geographic probes or authoritative nameservers.
Use the suite for troubleshooting, migration checks, infrastructure research, and security review.
Choose this to compare answers from configured public recursive resolvers. It is not a geographic proof of global propagation.
Compare answers from the Cloudflare and Google public recursive resolvers. These are two global-anycast DoH providers, not geographic probes or authoritative nameservers.
Review the supported operations, inputs, outputs, execution modes, and response limits before integrating.
0-2 Authentication required. Check the operation reference for the exact cost and any per-item pricing.
Use documented operations to collect, assess, enrich, verify, compare, protect, or monitor public evidence.
| Parameter | Type | required |
|---|---|---|
| domain | string | required |
| type |
string
Allowed values
AAAAACNAMEMXTXTNSSOA
Default
A
|
optional |
| expected | string | optional |
| Field | Type |
|---|---|
domain |
string |
record_type |
string |
expected_value |
string | null |
measurement_scope |
string |
percentage_basis |
string |
propagation_percentage |
number |
fully_propagated |
boolean |
consistent |
boolean |
unique_values[] |
string[] |
results[] |
object[] |
results[] |
object |
results[].server |
object |
results[].server.name |
string |
results[].server.ip |
string |
results[].server.provider |
string |
results[].server.location |
string |
results[].server.country |
string |
results[].server.scope |
string |
results[].server.doh_endpoint |
string |
results[].server.documentation_url |
string |
results[].server.format |
string |
results[].success |
boolean |
results[].records[] |
string[] |
results[].ttl |
integer | null |
results[].response_time_ms |
integer |
results[].error |
string | null |
checked_at |
string |
total_duration_ms |
integer |
summary |
object |
summary.total_servers |
integer |
summary.successful |
integer |
summary.failed |
integer |
summary.matching_expected |
integer |
propagation_summary |
object |
propagation_summary.measurement_scope |
string |
propagation_summary.percentage_basis |
string |
propagation_summary.resolver_count |
integer |
propagation_summary.successful_count |
integer |
propagation_summary.failed_count |
integer |
propagation_summary.propagation_percentage |
number |
propagation_summary.fully_propagated |
boolean |
propagation_summary.consistent |
boolean |
propagation_summary.unique_value_count |
integer |
propagation_summary.matching_expected_count |
integer |
propagation_summary.expected_value_present |
boolean | null |
propagation_summary.countries_checked |
integer |
propagation_summary.providers_checked |
integer |
propagation_summary.locations_checked |
integer |
propagation_summary.slowest_resolver |
string | null |
propagation_summary.slowest_response_ms |
integer | null |
propagation_summary.fastest_response_ms |
integer | null |
propagation_summary.disagreement_count |
integer |
propagation_summary.confidence |
string |
curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/dns/propagation?domain=example.com&type=A&expected=192.0.2.1"
{
"domain": "example.com",
"record_type": "A",
"expected_value": "example",
"measurement_scope": "configured_recursive_resolvers",
"percentage_basis": "expected_value_match",
"propagation_percentage": 0.5,
"fully_propagated": false,
"consistent": false,
"unique_values": [
"example"
],
"results": [
{
"server": {
"name": "example",
"ip": "192.0.2.1",
"provider": "example",
"location": "Global anycast",
"country": "GLOBAL",
"scope": "global-anycast",
"doh_endpoint": "https://example.com",
"documentation_url": "https://example.com",
"format": "dns-json"
},
"success": true,
"records": [
"example"
],
"ttl": 1,
"response_time_ms": 1,
"error": "example"
}
],
"checked_at": "2026-08-27T12:00:00Z",
"total_duration_ms": 1,
"summary": {
"total_servers": 1,
"successful": 1,
"failed": 1,
"matching_expected": 1
},
"propagation_summary": {
"measurement_scope": "configured_recursive_resolvers",
"percentage_basis": "expected_value_match",
"resolver_count": 1,
"successful_count": 1,
"failed_count": 1,
"propagation_percentage": 0.5,
"fully_propagated": false,
"consistent": false,
"unique_value_count": 1,
"matching_expected_count": 1,
"expected_value_present": false,
"countries_checked": 1,
"providers_checked": 1,
"locations_checked": 1,
"slowest_resolver": "example",
"slowest_response_ms": 1,
"fastest_response_ms": 1,
"disagreement_count": 1,
"confidence": "high"
}
}
Reviewed 2026-08-22
Use the API reference for DNS Resolver Comparison to review parameters, response fields, examples, status codes, and supported operation modes.
Unknown or partial results mean that the requested evidence could not be fully determined. Keep the result state, confidence, freshness, and limitations in downstream decisions.
Pricing depends on the operation and execution mode. Check the endpoint reference for the current credit cost, authentication requirement, and per-item rules.
Used by people at amazing companies