🛡️ DNS & DMARC Checker avatar

🛡️ DNS & DMARC Checker

Pricing

from $7.00 / 1,000 results

Go to Apify Store
🛡️ DNS & DMARC Checker

🛡️ DNS & DMARC Checker

Extract and audit SPF, DKIM, DMARC, and MX records for any website. Monitor domains in bulk, get actionable fix recommendations, and export data.

Pricing

from $7.00 / 1,000 results

Rating

0.0

(0)

Developer

太郎 山田

太郎 山田

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

1

Monthly active users

2 days ago

Last modified

Share

DNS / SPF / DKIM / DMARC Audit API

Bulk-audit domains for SPF, DKIM, DMARC, MX, and email-auth posture with grades and fix-ready recommendations.

Store Quickstart

  • Start with store-input.example.json to validate the output shape with three known domains.
  • If that matches your audit workflow, switch to store-input.templates.json and pick one of:
    • Quickstart (Dataset) for a cheap first run
    • Security Audit (DKIM Enabled) for fuller grading
    • Weekly Portfolio Monitor for recurring customer/domain checks
    • Webhook Alert for automated notifications

Key Features

  • 📧 Complete email security audit — SPF, DKIM, DMARC, and MX records
  • 📊 Security scoring — 0-100 points with A-F grade
  • 🔍 DKIM multi-selector check — Tests 6 common selectors (Google, Microsoft, etc.)
  • 💡 Actionable recommendations — Specific fix suggestions for each issue
  • 📋 Bulk processing — Check up to 500 domains per run
  • 🪝 Webhook support — Send results to Slack/Discord

Use Cases

WhoWhy
DevelopersAutomate recurring data fetches without building custom scrapers
Data teamsPipe structured output into analytics warehouses
Ops teamsMonitor changes via webhook alerts
Product managersTrack competitor/market signals without engineering time

Input

FieldTypeDefaultDescription
domainsarrayprefilledList of domains to check email security for. Maximum 500 per run.
checkDkimbooleantrueCheck for DKIM records (common selectors: google, default, selector1, selector2).
dkimSelectorsarrayCustom DKIM selectors to check. Defaults: google, default, selector1, selector2, k1, dkim.
deliverystring"dataset"How to deliver results. 'dataset' saves to Apify Dataset (recommended), 'webhook' sends to a URL.
webhookUrlstringWebhook URL to send results to (only used when delivery is 'webhook'). Works with Slack, Discord, or any HTTP endpoint.
concurrencyinteger5Maximum number of parallel requests. Higher = faster but may trigger rate limits.
dryRunbooleanfalseIf true, runs without saving results or sending webhooks. Useful for testing.

Input Example

{
"domains": ["google.com", "github.com", "example.com"],
"checkDkim": true,
"concurrency": 5
}

Output

FieldTypeDescription
metaobject
resultsarray
results[].domainstring
results[].mxarray
results[].spfobject
results[].dmarcobject
results[].dkimarray
results[].scoreobject
results[].errornull
results[].checkedAttimestamp

Output Example

{
"domain": "google.com",
"score": { "total": 95, "grade": "A" },
"spf": {
"raw": "v=spf1 include:_spf.google.com ~all",
"allPolicy": "~all",
"isStrict": false
},
"dmarc": {
"policy": "reject",
"isEnforced": true,
"rua": "mailto:mailauth-reports@google.com"
},
"dkim": [
{ "selector": "google", "found": true }
],
"mx": [
{ "priority": 10, "exchange": "smtp.google.com" }
]
}

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-dmarc-security-checker/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "domains": ["google.com", "github.com", "example.com"], "checkDkim": true, "concurrency": 5 }'

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("taroyamada/dns-dmarc-security-checker").call(run_input={
"domains": ["google.com", "github.com", "example.com"],
"checkDkim": true,
"concurrency": 5
})
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-dmarc-security-checker').call({
"domains": ["google.com", "github.com", "example.com"],
"checkDkim": true,
"concurrency": 5
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Tips & Limitations

  • Schedule weekly runs against your production domains to catch config drift.
  • Use webhook delivery to pipe findings into your SIEM (Splunk, Datadog, Elastic).
  • For CI integration, block releases on critical severity findings using exit codes.
  • Combine with ssl-certificate-monitor for layered cert + headers coverage.
  • Findings include links to official remediation docs — share with dev teams via the webhook payload.

FAQ

Is running this against a third-party site legal?

Passive public-header scanning is generally permitted, but follow your own compliance policies. Only scan sites you have authorization for.

How often should I scan?

Weekly for production domains; daily if you have high config-change velocity.

Can I export to a compliance tool?

Use webhook delivery or Dataset API — formats map well to Drata, Vanta, OneTrust import templates.

Is this a penetration test?

No — this actor performs passive compliance scanning only. No exploitation, fuzzing, or auth bypass.

Does this qualify as a SOC2 control?

This actor produces evidence artifacts suitable for SOC2 CC7.1 (continuous monitoring). It is not itself a SOC2 certification.

Security & Compliance cluster — explore related Apify tools:

Cost

Pay Per Event:

  • actor-start: $0.01 (flat fee per run)
  • dataset-item: $0.003 per output item

Example: 1,000 items = $0.01 + (1,000 × $0.003) = $3.01

No subscription required — you only pay for what you use.