Bulk Email DNS Audit Scraper avatar

Bulk Email DNS Audit Scraper

Pricing

from $9.00 / 1,000 results

Go to Apify Store
Bulk Email DNS Audit Scraper

Bulk Email DNS Audit 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

2 days ago

Last modified

Share

Email Deliverability Portfolio Audit API

Scrape and analyze email deliverability signals across massive client portfolios to guarantee high inbox placement. For marketing agencies and consultants managing hundreds of client websites, manually checking DNS records to prep for email outreach is virtually impossible. This powerful automation allows you to extract and validate SPF, DKIM, DMARC, MTA-STS, TLS-RPT, and BIMI setups across thousands of URLs without writing complex custom code.

Protecting a client's sender reputation means detecting DNS misconfigurations before they ruin a campaign. By scheduling automated daily or weekly runs, your agency can track domain health changes over time, monitor for unexpected infrastructure drift, and route critical failures directly to your team's tools via webhooks. Whether you are auditing a new prospect's website or preparing a massive contact list for a cold email blast, this scraper delivers results fast by processing queries in parallel.

Operating entirely through public DNS queries instead of using a web browser to crawl pages, this tool extracts vital security details with complete privacy compliance. You can easily integrate the structured data into client reports, utilizing outputs like detailed DMARC syntax validation, explicit pass/fail readiness scores, and clear remediation guidance. Use this data to ensure every email reaches its target and maximize the ROI of your outreach campaigns.

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
}

Input Examples

Example: Single domain audit

{
"domains": [
"example.com"
]
}

Example: Portfolio (1000 domains)

{
"domains": [
"a.com",
"..."
],
"emitDeliverabilityScore": true
}

Example: Selector-aware DKIM check

{
"domains": [
"example.com"
],
"dkimSelectors": [
"default",
"google",
"selector1"
]
}

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.