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/uploadcurl -X POST https://api.molted.email/v1/me/dmarc/upload \
-H "Cookie: YOUR_SESSION_COOKIE" \
-H "Content-Type: application/json" \
-d '{"xml": "<feedback>...</feedback>"}'{
"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/reportscurl "https://api.molted.email/v1/me/dmarc/reports?domain=notifications.yourcompany.com" \
-H "Cookie: YOUR_SESSION_COOKIE"| Parameter | Type | Description |
|---|---|---|
domain | string | Filter reports by sending domain. |
from | string | ISO 8601 date. Filter reports starting from this date. |
to | string | ISO 8601 date. Filter reports up to this date. |
limit | integer | Number of results per page. Default 20. |
offset | integer | Pagination offset. |
Get report details
GET https://api.molted.email/v1/me/dmarc/reports/:idcurl https://api.molted.email/v1/me/dmarc/reports/report_abc123 \
-H "Cookie: YOUR_SESSION_COOKIE"{
"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/summarycurl "https://api.molted.email/v1/me/dmarc/summary?domain=notifications.yourcompany.com" \
-H "Cookie: YOUR_SESSION_COOKIE"{
"domain": "notifications.yourcompany.com",
"totalMessages": 4280,
"passRate": 0.994,
"dkimPassRate": 0.998,
"spfPassRate": 0.994,
"recentReports": 14
}What to look for
| Metric | Healthy | Investigate |
|---|---|---|
passRate | > 98% | < 95% |
dkimPassRate | > 99% | < 97% |
spfPassRate | > 98% | < 95% |
rejectCount | 0 | Any |
A low pass rate on a new domain often indicates DNS records haven't propagated or are misconfigured. Compare policyPublished against your DNS entries.
Related reading
- Sending Domains -- adding and verifying domains with DKIM, SPF, and DMARC records