Email Auth
Email AuthDMARC Reports
Get DMARC Report Status
Configure DMARC Reports
ModelsExpand Collapse
DMARCReportGetResponse object { approved_sources, created, created_at, 9 more } Response for GET/PATCH /dmarc-reports
Response for GET/PATCH /dmarc-reports
approved_sources: optional array of object { created, created_at, domain, 6 more } List of approved sending sources (omitted when empty)
List of approved sending sources (omitted when empty)
Use modified_at instead.
Deprecated, use modified_at
records: optional object { bimi_records, cname_dkim_records, cname_dmarc_records, 5 more } Live DNS records for the zone, grouped by type
Live DNS records for the zone, grouped by type
cname_dmarc_records: optional array of object { id, content, name, 2 more } CNAME records at _dmarc. When such a CNAME resolves to a DMARC TXT record, the API returns that record in resolved_dmarc_records.
CNAME records at _dmarc. When such a CNAME resolves to a DMARC TXT record, the API returns that record in resolved_dmarc_records.
status: optional "missing-dmarc-report" or "multiple-dmarc-reports" or "missing-dmarc-rua" or "cname-on-dmarc-record"DMARC configuration status. The API omits this field when DMARC is correctly configured. If the zone lacks a DMARC TXT record of its own, the API resolves _dmarc.{zone} recursively and evaluates whatever that lookup returns. A CNAME at _dmarc.{zone} that points to a valid DMARC record is therefore healthy; the cname-on-dmarc-record value means the CNAME resolves to no DMARC record at all.
DMARC configuration status. The API omits this field when DMARC is correctly configured. If the zone lacks a DMARC TXT record of its own, the API resolves _dmarc.{zone} recursively and evaluates whatever that lookup returns. A CNAME at _dmarc.{zone} that points to a valid DMARC record is therefore healthy; the cname-on-dmarc-record value means the CNAME resolves to no DMARC record at all.
DMARCReportEditResponse object { approved_sources, created, created_at, 9 more } Response for GET/PATCH /dmarc-reports
Response for GET/PATCH /dmarc-reports
approved_sources: optional array of object { created, created_at, domain, 6 more } List of approved sending sources (omitted when empty)
List of approved sending sources (omitted when empty)
Use modified_at instead.
Deprecated, use modified_at
records: optional object { bimi_records, cname_dkim_records, cname_dmarc_records, 5 more } Live DNS records for the zone, grouped by type
Live DNS records for the zone, grouped by type
cname_dmarc_records: optional array of object { id, content, name, 2 more } CNAME records at _dmarc. When such a CNAME resolves to a DMARC TXT record, the API returns that record in resolved_dmarc_records.
CNAME records at _dmarc. When such a CNAME resolves to a DMARC TXT record, the API returns that record in resolved_dmarc_records.
status: optional "missing-dmarc-report" or "multiple-dmarc-reports" or "missing-dmarc-rua" or "cname-on-dmarc-record"DMARC configuration status. The API omits this field when DMARC is correctly configured. If the zone lacks a DMARC TXT record of its own, the API resolves _dmarc.{zone} recursively and evaluates whatever that lookup returns. A CNAME at _dmarc.{zone} that points to a valid DMARC record is therefore healthy; the cname-on-dmarc-record value means the CNAME resolves to no DMARC record at all.
DMARC configuration status. The API omits this field when DMARC is correctly configured. If the zone lacks a DMARC TXT record of its own, the API resolves _dmarc.{zone} recursively and evaluates whatever that lookup returns. A CNAME at _dmarc.{zone} that points to a valid DMARC record is therefore healthy; the cname-on-dmarc-record value means the CNAME resolves to no DMARC record at all.
Email AuthSPF
Email AuthSPFInspect
Inspect SPF Record
ModelsExpand Collapse
InspectGetResponse object { components, domain, record, 2 more } Recursive SPF inspection tree
Recursive SPF inspection tree
errors: optional array of object { code, domain, message, details } All errors encountered during inspection, collected from the entire tree.
This includes errors from nested includes at any depth, providing a quick
overview of all issues without needing to traverse the nested structure.
Each error includes a domain field to identify where it occurred.
Empty array if no errors (omitted from JSON when empty).
All errors encountered during inspection, collected from the entire tree.
This includes errors from nested includes at any depth, providing a quick
overview of all issues without needing to traverse the nested structure.
Each error includes a domain field to identify where it occurred.
Empty array if no errors (omitted from JSON when empty).
Error code. Known values:
lookup_failed— DNS TXT lookup failedspf_not_found— no SPF record foundinvalid_spf— record does not start withv=spf1invalid_domain— PSL validation failedloop_detected— include/redirect cycle detectedinvalid_mechanism— unrecognised or malformed mechanismresource_limit_exceeded— internal resource protection limits exceeded (recursion depth or query budget)max_lookups— RFC 7208 10-lookup limit exceeded