Audit DNS propagation across 8 public resolvers for up to 200 domains
Query public DNS for bulk domain audits. This Actor looks up A, AAAA, MX, TXT, CNAME, NS, and SOA records across eight public resolvers and flags resolver disagreements plus TTL variation. It uses Node.js dns.Resolver and does not need an API key. It does not fetch page HTML — for docs, pricing, or help-center content use Website Content Extractor.
Open DNS Propagation Checker on Apify
Public DNS lookups, not website HTML extraction
Use this page when the job is nameserver and record propagation: confirm an A record IP, an NS switch, or MX/TXT email records after a change. Use Website Content Extractor when the job is cleaned markdown or text from public HTTP(S) pages.
| DNS Propagation Checker | Website Content Extractor | |
|---|---|---|
| Intent | Audit worldwide nameserver and record propagation | Clean docs, product, pricing, policy, and help-center HTML |
| Input | Hostnames in domains (max 200) |
HTTP(S) page URLs in urls (max 200) |
| What it reads | Public DNS via Node.js dns.Resolver |
Live page HTML |
| Record / format options | A, AAAA, MX, TXT, CNAME, NS, SOA | markdown (default), text, or html |
| Primary output | Resolved values, TTL, resolver identity, consistency flags | Cleaned page content, title, word count, metadata |
| HTML cleanup | No. DNS only; it does not fetch pages | Yes — bounded website extraction |
This Actor does not accept page URLs, crawl a site, or extract article bodies. It queries major public resolvers such as Google (8.8.8.8), Cloudflare (1.1.1.1), and Quad9. It is not a geographic DNS map and not a private-DNS checker.
Use cases
- DNS administrators: verify DNS changes propagated globally before changing URLs.
- Hosting migrations: confirm a nameserver switch completed at all listed resolvers.
- Email deliverability: check MX, SPF, and DKIM TXT record consistency in one run.
- Security teams: detect DNS hijacking via inconsistent resolver responses.
- DevOps teams: pre-deploy DNS verification for a production cutover.
The published README also positions the Actor for identifying regional caching delays during migrations, tracking NS record shifts, validating A record IPs, and keeping historical DNS-state logs. Start after a DNS change, before pointing production traffic.
How is DNS Propagation Checker different from Website Content Extractor?
This Actor queries public DNS. Required input is domains (maximum 200 hostnames), not page URLs. It looks up A, AAAA, MX, TXT, CNAME, NS, and SOA records across eight public resolvers using Node.js dns.Resolver and does not fetch HTTP(S) HTML. Website Content Extractor fetches public docs, product, pricing, policy, and help-center URLs and returns cleaned markdown, text, or HTML. Use this Actor to verify nameserver and record propagation. Use Website Content Extractor when you need page content.
Why query 8 public resolvers instead of one lookup?
DNS caching varies by resolver. Checking multiple resolvers shows which ones have updated after a change. The published resolvers are Google, Cloudflare, Quad9, OpenDNS, Cisco Umbrella, Level3, Verisign, and Dyn. README examples compare 8.8.8.8, 1.1.1.1, and 208.67.222.222. This is not a geographic probe: all queried resolvers are major public ones.
- Inconsistency detection — spots resolvers that disagree.
- TTL reporting — see caching behavior across resolvers.
- No API key — Node.js built-in
dns.Resolver.
What input is required?
domains is required. The published schema accepts up to 200 hostnames. Other published fields:
| Field | Type | Default | Notes |
|---|---|---|---|
domains |
string[] | required | Domains to check DNS for (max 200). Schema prefill is example.com, google.com. |
recordTypes |
string[] | README default ["A"] |
Supported: A, AAAA, MX, TXT, CNAME, NS, SOA. Schema prefill is A, MX. |
delivery |
string | dataset |
dataset or webhook |
webhookUrl |
string | — | POST target when delivery is webhook |
dryRun |
boolean | false | Run without saving results (for testing) |
maxChargeUsd |
number | 1 | Safety cap for billable dataset rows in this run (minimum 0) |
The schema sets additionalProperties to false. README examples that include waitForFullPropagation or resolvers are not live input fields. Do not send unpublished aliases.
The Store Quickstart is 3 domains with A records. For a multi-record audit, use Full DNS Audit (A, AAAA, MX, TXT, CNAME, NS). Query MX and TXT together to audit email configuration in one run.
Published README input example:
{
"domains": ["example.com", "api.example.com"],
"recordTypes": ["A", "MX", "TXT"]
}
Published Store input-object example (includes schema defaults):
{
"domains": [
"example.com",
"google.com"
],
"recordTypes": [
"A",
"MX"
],
"delivery": "dataset",
"dryRun": false,
"maxChargeUsd": 1
}
Run a DNS propagation check on Apify
What does a result contain?
The published README field table lists domain, recordType, resolver, values, ttl, queryTimeMs, and error. The published README sample is one row per domain and record type with a resolvers array (name, ip, values, ttl), plus isConsistent and inconsistencies. There is no separate published dataset or output JSON schema on the Store page.
Published README sample:
{
"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": []
}
That sample is the published README illustration, not a live coverage guarantee. Compare values across resolvers to confirm rollout before pointing production traffic.
Does it check geographic, private, or DNSSEC records?
No geographic check: all resolvers queried are major public ones. Private or internal DNS is not supported; those names return NXDOMAIN. DNSSEC chain verification is not currently supported. Typical propagation time is TTL-dependent; the README states most DNS changes propagate globally within 1-24 hours. Low TTLs under 300 seconds propagate fast; high TTLs over 3600 seconds may take hours globally.
How is DNS Propagation Checker priced?
Billing is pay per event. The published Store price is $8.00 / 1,000 dns propagation results. The billed event is DNS propagation result at $0.008, charged only for one successfully delivered DNS propagation result row. You are not charged for Apify platform usage, only the fixed event price.
maxChargeUsd defaults to 1 as a safety cap for billable dataset rows in the run. dryRun true runs without saving results. delivery defaults to dataset; set delivery to webhook and provide webhookUrl to POST results.
$8.00 per 1,000 DNS propagation results ($0.008 per successfully delivered result row)
See DNS Propagation Checker pricing on Apify
Limits to keep in mind
- Public DNS only — private or internal names return NXDOMAIN.
- At most 200 domains per run. Supported record types are A, AAAA, MX, TXT, CNAME, NS, and SOA.
- The required field is
domains. Live schema names do not includewaitForFullPropagationorresolvers. - Not a geographic map and not DNSSEC validation.
- This Actor does not fetch or clean website HTML.
Open DNS Propagation Checker on Apify
Related pages
- Website Content Extractor — clean docs, pricing, policy, or product pages, not DNS lookups
- Article Content Extractor — clean article, news, and blog pages
- RSS & Atom Feed Extractor
- Google News Scraper
- Apple Podcasts Scraper
- Apple Podcasts Chart Scraper
- Apple Podcasts Reviews Scraper
- Shopify App Store Review Scraper
- G2 & Capterra Review Scraper
- TED, SAM.gov & Grants Bid Alerts Scraper
- Tools