MOLTED EMAIL

DMARC Reports

Upload, view, and summarize DMARC aggregate reports to monitor domain authentication health.

DMARC aggregate reports are XML files that receiving mail servers send to your rua address. They show which messages passed or failed SPF, DKIM, and DMARC alignment checks. Uploading them to Molted gives you a parsed view of authentication results across your sending domains.

Upload a report

DMARC aggregate reports are delivered as XML (often gzip or zip compressed). Decode or extract the XML before uploading.

POST https://api.molted.email/v1/me/dmarc/upload
curl
curl -X POST https://api.molted.email/v1/me/dmarc/upload \
  -H "Cookie: YOUR_SESSION_COOKIE" \
  -H "Content-Type: application/json" \
  -d '{"xml": "<feedback>...</feedback>"}'
Response
{
  "id": "report_abc123",
  "orgName": "google.com",
  "reportId": "12345678901234567890",
  "dateRangeBegin": "2026-03-30T00:00:00Z",
  "dateRangeEnd": "2026-03-30T23:59:59Z",
  "totalMessages": 142,
  "passCount": 140,
  "failCount": 2,
  "passRate": 0.986
}

Reports are deduplicated by (orgName, reportId). Uploading the same report twice is safe.

Maximum file size is 5 MB.

List reports

GET https://api.molted.email/v1/me/dmarc/reports
curl
curl "https://api.molted.email/v1/me/dmarc/reports?domain=notifications.yourcompany.com" \
  -H "Cookie: YOUR_SESSION_COOKIE"
ParameterTypeDescription
domainstringFilter reports by sending domain.
fromstringISO 8601 date. Filter reports starting from this date.
tostringISO 8601 date. Filter reports up to this date.
limitintegerNumber of results per page. Default 20.
offsetintegerPagination offset.

Get report details

GET https://api.molted.email/v1/me/dmarc/reports/:id
curl
curl https://api.molted.email/v1/me/dmarc/reports/report_abc123 \
  -H "Cookie: YOUR_SESSION_COOKIE"
Response
{
  "id": "report_abc123",
  "orgName": "google.com",
  "reportId": "12345678901234567890",
  "dateRangeBegin": "2026-03-30T00:00:00Z",
  "dateRangeEnd": "2026-03-30T23:59:59Z",
  "totalMessages": 142,
  "passCount": 140,
  "failCount": 2,
  "passRate": 0.986,
  "dkimPassRate": 0.993,
  "spfPassRate": 0.986,
  "quarantineCount": 1,
  "rejectCount": 1,
  "uniqueSourceIps": 3,
  "policyPublished": {
    "domain": "notifications.yourcompany.com",
    "p": "reject",
    "sp": "reject",
    "pct": 100
  }
}

Domain authentication summary

Get aggregated pass rates across all uploaded reports for a domain.

GET https://api.molted.email/v1/me/dmarc/summary
curl
curl "https://api.molted.email/v1/me/dmarc/summary?domain=notifications.yourcompany.com" \
  -H "Cookie: YOUR_SESSION_COOKIE"
Response
{
  "domain": "notifications.yourcompany.com",
  "totalMessages": 4280,
  "passRate": 0.994,
  "dkimPassRate": 0.998,
  "spfPassRate": 0.994,
  "recentReports": 14
}

What to look for

MetricHealthyInvestigate
passRate> 98%< 95%
dkimPassRate> 99%< 97%
spfPassRate> 98%< 95%
rejectCount0Any

A low pass rate on a new domain often indicates DNS records haven't propagated or are misconfigured. Compare policyPublished against your DNS entries.

  • Sending Domains -- adding and verifying domains with DKIM, SPF, and DMARC records