๐ŸŒ DNS Propagation Checker โ€” Global Resolver Bulk Tool avatar

๐ŸŒ DNS Propagation Checker โ€” Global Resolver Bulk Tool

Pricing

Pay per usage

Go to Apify Store
๐ŸŒ DNS Propagation Checker โ€” Global Resolver Bulk Tool

๐ŸŒ DNS Propagation Checker โ€” Global Resolver Bulk Tool

Check DNS propagation across 15 global resolvers (Google, Cloudflare, Quad9, OpenDNS, Verisign, Yandex). Detects inconsistency, reports by-region variance, returns TTL and full record data.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Stephan Corbeil

Stephan Corbeil

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Checks how a domain resolves across 15 major global DNS resolvers โ€” Google, Cloudflare, Quad9, OpenDNS, Verisign, Yandex, AdGuard, CleanBrowsing, Neustar, and more. Detects mid-propagation inconsistency, regional cache poisoning, and misconfigured authoritative servers.

DNSChecker.org's free tier caps you at 1 domain per check. Their Pro plan is $29/mo for bulk. This actor runs 15 resolvers ร— N domains in parallel for $0.002 per domain-check.

What it does

For every domain and record type you provide:

  • Queries 15 geographically diverse resolvers in parallel
  • Groups identical responses together ("consistency groups")
  • Returns propagation status: fully_propagated / partially_propagated / inconsistent / no_data
  • Reports per-resolver: records returned, TTL, NXDOMAIN/NoAnswer flags, errors
  • Covers record types A, AAAA, MX, TXT, NS, CNAME, SOA, CAA

Example

import requests
r = requests.post(
"https://api.apify.com/v2/acts/nexgendata~dns-propagation-checker/run-sync-get-dataset-items?token=" + APIFY_TOKEN,
json={
"domains": ["newdomain.example.com"],
"recordTypes": ["A", "MX"]
}
)
for r_item in r.json():
print(f"{r_item['domain']} {r_item['record_type']} โ€” {r_item['propagation_status']}")
print(f" {r_item['unique_responses']} unique responses across {r_item['total_resolvers']} resolvers")
for group in r_item["groups"]:
print(f" [{group['resolver_count']} resolvers] โ†’ {group['records']}")

Sample output:

newdomain.example.com A โ€” partially_propagated
2 unique responses across 15 resolvers
[12 resolvers] โ†’ ['203.0.113.50']
[3 resolvers] โ†’ ['203.0.113.99'] โ† stale cache
newdomain.example.com MX โ€” fully_propagated
1 unique responses across 15 resolvers

cURL

curl -X POST "https://api.apify.com/v2/acts/nexgendata~dns-propagation-checker/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"domains":["example.com"],"recordTypes":["A","AAAA","MX","TXT"]}'

Common use cases

  • Post-change verification โ€” after a DNS update, confirm it's live everywhere before cutting over traffic
  • CDN debugging โ€” CDN pointing to old IP in one region? Find which resolvers are stale
  • Email delivery investigation โ€” MX records inconsistent means deliverability problems
  • SPF/DKIM/DMARC rollout โ€” verify TXT records propagated globally before flipping enforcement policy
  • CAA enforcement verification โ€” before requesting new TLS certs, confirm CAA records are propagated

Why 15 resolvers, not 50?

Most "global DNS" tools claim 40-60 resolvers but 90% of them share cache infrastructure โ€” querying them is redundant. The 15 we query are operator-distinct: Google, Cloudflare, Quad9, OpenDNS (Cisco), Verisign, Yandex, AdGuard, NextDNS, Cisco Umbrella, Neustar, etc. Each has independent cache behavior. You see real diversity, not noise.

Pricing

  • $0.005 per run (startup)
  • $0.002 per domain-check (one record type on one domain)

10 domains ร— 4 record types = 40 domain-checks = $0.085.

FAQ

Q: Does this query authoritative servers or just recursive resolvers? A: Recursive resolvers. That's the point โ€” we're measuring what users see, not what the zone file says.

Q: TTL countdown? A: Each resolver's current TTL is returned. Useful for predicting when a stale response will expire.

Q: Can I check internal / private domains? A: No โ€” external resolvers can't resolve your internal zones.

Q: What's "inconsistent" mean vs. "partially_propagated"? A: partially_propagated = exactly 2 unique responses (classic mid-migration state). inconsistent = 3+ unique responses (either active attack, misconfigured split-horizon, or broken authoritative servers).

Try it

๐ŸŒ DNS Propagation Checker on Apify

New to Apify? Get free platform credits.

๐Ÿ’ป Code Example โ€” Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("nexgendata/dns-propagation-checker").call(run_input={
# Fill in the input shape from the actor's input_schema
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)

๐ŸŒ Code Example โ€” cURL

curl -X POST "https://api.apify.com/v2/acts/nexgendata~dns-propagation-checker/run-sync-get-dataset-items?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{ /* input schema */ }'

โ“ FAQ

Q: How do I get started? Sign up at apify.com, grab your API token from Settings โ†’ Integrations, and run the actor via the Apify console, API, Python SDK, or any integration (Zapier, Make.com, n8n).

Q: What's the typical cost per run? See the pricing section below. Most runs finish under $0.10 for typical batches.

Q: Is this actor maintained? Yes. NexGenData maintains 165+ Apify actors and ships updates regularly. Bug reports via the Apify console issues tab get responses within 24 hours.

Q: Can I use the output commercially? Yes โ€” you own the output data. Check the target site's Terms of Service for any usage restrictions on the scraped content itself.

Q: How do I handle rate limits? Apify manages concurrency and retries automatically. For very large batches (10K+ items), run multiple smaller jobs in parallel instead of one mega-job for better reliability.

๐Ÿ’ฐ Pricing

Pay-per-event pricing โ€” you only pay for what you actually extract.

  • Actor Start: $0.0001
  • result: $0.0050

๐Ÿš€ Apify Affiliate Program

New to Apify? Sign up with our referral link โ€” you get free platform credits on signup, and you help fund the maintenance of this actor fleet.

๐Ÿ“š More From NexGenData

Explore the full catalog, tutorials, Gumroad data packs, and newsletter at thenextgennexus.com โ€” the brand home for everything we ship.

  • ๐Ÿ“– Tutorials & how-to guides
  • ๐Ÿ—‚๏ธ Full actor catalog with usage examples
  • ๐Ÿ“ฆ Gumroad data packs (one-time purchases)
  • ๐Ÿ“ฌ Newsletter โ€” monthly drops of new actors and revenue experiments

Built and maintained by NexGenData โ€” 165+ actors covering scraping, enrichment, MCP servers, and automation. ๐Ÿ  Home: thenextgennexus.com