🛡️ Bulk Email DNS Scraper avatar

🛡️ Bulk Email DNS Scraper

Pricing

from $9.00 / 1,000 results

Go to Apify Store
🛡️ Bulk Email DNS Scraper

🛡️ Bulk Email DNS Scraper

Scrape domain DNS data to extract SPF, DKIM, DMARC, and BIMI records. Generate structured deliverability readiness reports for client portfolios.

Pricing

from $9.00 / 1,000 results

Rating

0.0

(0)

Developer

太郎 山田

太郎 山田

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

11 days ago

Last modified

Share

Email Deliverability Portfolio Audit API

Audit email deliverability configurations at scale to ensure your outreach actually reaches the inbox. For marketing agencies, IT professionals, and data teams managing massive domain portfolios, manually verifying DNS infrastructure across hundreds of client domains is virtually impossible. This automation tool allows you to run bulk checks for SPF, DKIM, DMARC, MTA-STS, TLS-RPT, and BIMI setups across thousands of urls without building a custom script from scratch.

Protecting your sender reputation means catching misconfigurations before they impact critical business communications. By scheduling recurring daily or weekly runs, your team can track changes in domain health, monitor infrastructure drift over time, and immediately route failures to a webhook remediation queue. Whether you are prepping a cold lead contact list or auditing enterprise portfolios, this checker processes results in highly parallel batches for maximum speed.

The tool relies strictly on public DNS queries rather than web scraping private pages, ensuring complete privacy compliance while you extract vital security details. Output includes structured, developer-friendly JSON data featuring a high-level executive_summary object and detailed remediation_steps. Key fields provided for each domain include mx_record_details, dmarc_policy_status, and strict alignment metrics to help you resolve failures instantly.

Store Quickstart

  • Start with store-input.example.json for the smallest useful run: 2 domains in, one executive summary + clean remediation rows out.
  • Then move to store-input.templates.json:
    • Starter Quickstart (2 Domains -> Executive Summary + Clean Rows)
    • Portfolio Watch (Recurring Dataset Baseline)
    • Webhook Remediation Queue

Key Features

  • 🎯 Lead-qualified extraction — Surfaces contact signals from public profiles with validation flags
  • Deliverability scoring — MX/SPF/DMARC checks produce confidence scores on every record
  • 🔄 Bulk processing — Audit thousands of domains/emails per run with parallel verification
  • 📊 CRM-ready output — Dataset columns map 1:1 to Salesforce/HubSpot import templates
  • 🛡️ Privacy-compliant — Reads public DNS/WHOIS only — no scraping of protected data

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
domainsarrayprefilledStart with 2-3 domains for the first deliverability baseline. Expand later into larger recurring portfolios while keepin
followRedirectsbooleantrueFollow redirects when checking the main HTTPS endpoint and the MTA-STS policy URL.
checkDkimbooleantrueProbe a small set of common selectors so the first run catches missing DKIM posture quickly.
dkimSelectorsarrayOptional custom DKIM selectors to probe instead of the built-in defaults.
checkBimibooleantrueOptional branding readiness check. Missing BIMI is treated as an opportunity signal, not a hard failure.
deliverystring"dataset"Dataset mode keeps the first run lightweight while still writing the full executive summary to OUTPUT. Webhook mode send
webhookUrlstringRequired when delivery=webhook.
snapshotKeystring"email-deliverability-portfolio-audit"Reuse the same key when you move from the starter baseline to recurring monitoring so policy changes stay comparable.

Input Example

{
"domains": ["example.com", "github.com"],
"followRedirects": true,
"checkDkim": true,
"checkBimi": true,
"delivery": "dataset",
"snapshotKey": "email-deliverability-quickstart",
"concurrency": 2
}

Output

FieldTypeDescription
metaobject
alertsarray
resultsarray
alerts[].domainstring
alerts[].severitystring
alerts[].componentstring
alerts[].typestring
alerts[].messagestring

Output Example

{
"meta": {
"generatedAt": "2026-04-05T04:40:22.011Z",
"totals": {
"total": 3,
"initial": 3,
"ok": 0,
"changed": 0,
"partial": 0,
"errors": 0,
"actionNeeded": 3
},
"severityCounts": {
"critical": 0,
"high": 0,
"watch": 3,
"info": 0
},
"averageDeliverabilityScore": 69,
"alertCount": 12,
"executiveSummary": {
"overallStatus": "monitor",
"brief": "3 of 3 domains need action. Highest-risk issue: No MX records found.",
"recommendedCadence": "weekly",
"averageDeliverabilityScore": 69,
"totals": {
"total": 3,
"initial": 3,
"ok": 0,
"changed": 0,
"partial": 0,
"errors": 0,
"actionNeeded": 3
},
"severityCounts": {
"critical": 0,
"high": 0,
"watch": 3,
"info": 0
},

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~email-deliverability-portfolio-audit/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "domains": ["example.com", "github.com"], "followRedirects": true, "checkDkim": true, "checkBimi": true, "delivery": "dataset", "snapshotKey": "email-deliverability-quickstart", "concurrency": 2 }'

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("taroyamada/email-deliverability-portfolio-audit").call(run_input={
"domains": ["example.com", "github.com"],
"followRedirects": true,
"checkDkim": true,
"checkBimi": true,
"delivery": "dataset",
"snapshotKey": "email-deliverability-quickstart",
"concurrency": 2
})
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/email-deliverability-portfolio-audit').call({
"domains": ["example.com", "github.com"],
"followRedirects": true,
"checkDkim": true,
"checkBimi": true,
"delivery": "dataset",
"snapshotKey": "email-deliverability-quickstart",
"concurrency": 2
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Tips & Limitations

  • Combine with email-deliverability-checker for full MX+SMTP validation before outreach.
  • Use webhook delivery to drop leads into your CRM automation in real-time.
  • For ABM campaigns, run weekly against your target list to catch domain changes.
  • Low confidence scores (<70) often indicate parked domains — filter before sending outreach.
  • This actor is GDPR-safe: no PII is stored, only infrastructure-level signals.

FAQ

Is this GDPR-compliant?

Yes — this actor only processes public infrastructure data (DNS, WHOIS, public website content). No PII is stored.

How accurate is the deliverability score?

Infrastructure-level checks are 95%+ accurate for identifying broken/parked domains. SMTP-level accuracy requires email-deliverability-checker.

Can I use this in a signup form?

The actor is optimized for batch processing, not real-time signup validation. For per-request use, query Apify API directly.

Does this verify if an email actually exists?

This actor checks MX/SPF/DMARC infrastructure. For SMTP-level RCPT TO verification, use email-deliverability-checker.

Can I export to HubSpot/Salesforce?

Yes — use webhook delivery with a Zapier/Make connector, or pull from Dataset API directly.

Lead Generation & B2B 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.

⭐ Was this helpful?

If this actor saved you time, please leave a ★ rating on Apify Store. It takes 10 seconds, helps other developers discover it, and keeps updates free.

Bug report or feature request? Open an issue on the Issues tab of this actor.