🌐 DNS Propagation Checker
Pricing
Pay per event
🌐 DNS Propagation Checker
Verify DNS propagation across 8 global resolvers and extract A, MX, and TXT records to confirm nameserver changes and detect caching issues.
Pricing
Pay per event
Rating
0.0
(0)
Developer
太郎 山田
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 hours ago
Last modified
Categories
Share
Check DNS propagation across 8 global resolvers (Google, Cloudflare, Quad9, OpenDNS). Detect inconsistencies after DNS changes.
Store Quickstart
Start with the Quickstart template (3 domains, A records). For multi-record audits, use Full DNS Audit (A, AAAA, MX, TXT, CNAME, NS).
Key Features
- 🌐 8 global DNS resolvers — Google, Cloudflare, Quad9, OpenDNS, Cisco Umbrella, Level3, Verisign, Dyn
- 📋 7 record types — A, AAAA, MX, TXT, CNAME, NS, SOA
- ⚠️ Inconsistency detection — Instantly spots resolvers that disagree
- ⏱️ TTL reporting — See caching behavior across resolvers
- 📦 Bulk domains — Check up to 200 domains per run
- 🔑 No API key needed — Uses Node.js built-in dns.Resolver
Use Cases
| Who | Why |
|---|---|
| DNS administrators | Verify DNS changes propagated globally before changing URLs |
| Hosting migrations | Confirm nameserver switch completed at all resolvers |
| Email deliverability | Check MX, SPF, DKIM TXT records consistency |
| Security teams | Detect DNS hijacking via inconsistent resolver responses |
| DevOps teams | Pre-deploy DNS verification for production cutover |
Input
| Field | Type | Default | Description |
|---|---|---|---|
| domains | string[] | (required) | Domains to check (max 200) |
| recordTypes | string[] | ["A"] | A, AAAA, MX, TXT, CNAME, NS, SOA |
Input Example
{"domains": ["example.com", "api.example.com"],"recordTypes": ["A", "MX", "TXT"]}
Output
| Field | Type | Description |
|---|---|---|
domain | string | Domain queried |
recordType | string | DNS record type (A, AAAA, MX, TXT, CNAME, NS) |
resolver | string | DNS resolver IP used |
values | string[] | Resolved values |
ttl | integer | Time-to-live in seconds |
queryTimeMs | integer | Query response time |
error | string | null |
Output Example
{"domain": "example.com","recordType": "A","resolvers": [{"name": "Google", "ip": "8.8.8.8", "values": ["93.184.216.34"], "ttl": 86400},{"name": "Cloudflare", "ip": "1.1.1.1", "values": ["93.184.216.34"], "ttl": 86400}],"isConsistent": true,"inconsistencies": []}
API Usage
Run this actor programmatically using the Apify API. Replace YOUR_API_TOKEN with your token from Apify Console → Settings → Integrations.
cURL
curl -X POST "https://api.apify.com/v2/acts/taroyamada~dns-propagation-checker/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{ "domains": ["example.com", "api.example.com"], "recordTypes": ["A", "MX", "TXT"] }'
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("taroyamada/dns-propagation-checker").call(run_input={"domains": ["example.com", "api.example.com"],"recordTypes": ["A", "MX", "TXT"]})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
JavaScript / Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('taroyamada/dns-propagation-checker').call({"domains": ["example.com", "api.example.com"],"recordTypes": ["A", "MX", "TXT"]});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Tips & Limitations
- Compare results across resolvers (8.8.8.8, 1.1.1.1, 208.67.222.222) to verify propagation.
- Use after a DNS change to confirm global rollout before pointing production traffic.
- Query MX + TXT records together to audit email configuration in one run.
- Low TTLs (<300s) propagate fast; high TTLs (>3600s) may take hours globally.
FAQ
Why use 8 resolvers?
DNS caching varies by resolver. Checking multiple reveals which have updated after a change.
What's a typical propagation time?
TTL-dependent. Most DNS changes propagate globally within 1-24 hours.
Does it check geographic propagation?
No — all resolvers queried are major public ones. For geographic checks, use specialized tools.
Can I check private DNS?
No, only public DNS. Internal/private domains return NXDOMAIN.
Does this support DNSSEC validation?
Not currently — DNSSEC chain verification is on the roadmap.
Why do different resolvers return different values?
DNS propagation isn't instant. Different resolvers cache records based on TTL.
Related Actors
DevOps & Tech Intel cluster — explore related Apify tools:
- 🔍 Subdomain Finder — Discover subdomains for any domain using Certificate Transparency logs (crt.
- 🧹 CSV Data Cleaner — Clean CSV data: trim whitespace, remove empty rows, deduplicate by columns, sort.
- 📦 NPM Package Analyzer — Analyze npm packages: download stats, dependencies, licenses, deprecation status.
- 💬 Reddit Scraper — Scrape Reddit posts and comments from any subreddit via official JSON API.
- GitHub Release & Changelog Monitor API — Track GitHub releases, tags, release notes, and changelog drift over time with one summary-first repository row per repo.
- Docs & Changelog Drift Monitor API — Monitor release notes, changelog pages, migration guides, and key docs pages with one summary-first target row per monitored repo, SDK, or product.
- Tech Events Calendar API | Conferences + CFP — Aggregate tech conferences and CFPs across multiple sources into a deduplicated event calendar for DevRel and recruiting workflows.
- 🔒 OSS Vulnerability Monitor — Monitor open-source packages for known security vulnerabilities using OSV and GitHub Security Advisories.
Cost
Pay Per Event:
actor-start: $0.01 (flat fee per run)dataset-item: $0.005 per output item
Example: 1,000 items = $0.01 + (1,000 × $0.005) = $5.01
No subscription required — you only pay for what you use.