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
bimi_records: optional array of object { id, content, name, 3 more } BIMI TXT records
BIMI TXT records
For a CNAME record, the TXT content(s) found by following the CNAME chain to its target. An empty array means the chain was resolved but nothing usable was found there; omitted/null means resolution was not attempted for this record (always the case for non-CNAME entries). A CNAME chain that terminates in more than one TXT value at the target yields multiple entries. Populated on entries in cname_dmarc_records, cname_spf_records, and cname_dkim_records.
cname_dkim_records: optional array of object { id, content, name, 3 more } CNAME records for DKIM selectors. Each selector is resolved independently; when a selector’s CNAME resolves to a DKIM TXT record, the API returns that record’s content in the resolved field of the corresponding entry.
CNAME records for DKIM selectors. Each selector is resolved independently; when a selector’s CNAME resolves to a DKIM TXT record, the API returns that record’s content in the resolved field of the corresponding entry.
For a CNAME record, the TXT content(s) found by following the CNAME chain to its target. An empty array means the chain was resolved but nothing usable was found there; omitted/null means resolution was not attempted for this record (always the case for non-CNAME entries). A CNAME chain that terminates in more than one TXT value at the target yields multiple entries. Populated on entries in cname_dmarc_records, cname_spf_records, and cname_dkim_records.
cname_dmarc_records: optional array of object { id, content, name, 3 more } CNAME records at _dmarc. When such a CNAME resolves to a DMARC TXT record, the API returns that record’s content in the resolved field of the corresponding entry.
CNAME records at _dmarc. When such a CNAME resolves to a DMARC TXT record, the API returns that record’s content in the resolved field of the corresponding entry.
For a CNAME record, the TXT content(s) found by following the CNAME chain to its target. An empty array means the chain was resolved but nothing usable was found there; omitted/null means resolution was not attempted for this record (always the case for non-CNAME entries). A CNAME chain that terminates in more than one TXT value at the target yields multiple entries. Populated on entries in cname_dmarc_records, cname_spf_records, and cname_dkim_records.
cname_spf_records: optional array of object { id, content, name, 3 more } CNAME records at the zone apex. When such a CNAME resolves to an SPF TXT record, the API returns that record’s content in the resolved field of the corresponding entry.
CNAME records at the zone apex. When such a CNAME resolves to an SPF TXT record, the API returns that record’s content in the resolved field of the corresponding entry.
For a CNAME record, the TXT content(s) found by following the CNAME chain to its target. An empty array means the chain was resolved but nothing usable was found there; omitted/null means resolution was not attempted for this record (always the case for non-CNAME entries). A CNAME chain that terminates in more than one TXT value at the target yields multiple entries. Populated on entries in cname_dmarc_records, cname_spf_records, and cname_dkim_records.
dkim_records: optional array of object { id, content, name, 3 more } DKIM TXT records
DKIM TXT records
For a CNAME record, the TXT content(s) found by following the CNAME chain to its target. An empty array means the chain was resolved but nothing usable was found there; omitted/null means resolution was not attempted for this record (always the case for non-CNAME entries). A CNAME chain that terminates in more than one TXT value at the target yields multiple entries. Populated on entries in cname_dmarc_records, cname_spf_records, and cname_dkim_records.
dmarc_records: optional array of object { id, content, name, 3 more } DMARC TXT records
DMARC TXT records
For a CNAME record, the TXT content(s) found by following the CNAME chain to its target. An empty array means the chain was resolved but nothing usable was found there; omitted/null means resolution was not attempted for this record (always the case for non-CNAME entries). A CNAME chain that terminates in more than one TXT value at the target yields multiple entries. Populated on entries in cname_dmarc_records, cname_spf_records, and cname_dkim_records.
Deprecatedresolved_dmarc_records: optional array of object { content, name } Use the resolved field on the corresponding entry in cname_dmarc_records instead.
DMARC records that a recursive lookup of _dmarc.{zone} returned. The API populates this only when the zone lacks a DMARC TXT record of its own, which usually means a CNAME delegates DMARC to another zone.
Use the resolved field on the corresponding entry in cname_dmarc_records instead.
DMARC records that a recursive lookup of _dmarc.{zone} returned. The API populates this only when the zone lacks a DMARC TXT record of its own, which usually means a CNAME delegates DMARC to another zone.
spf_records: optional array of object { id, content, name, 3 more } SPF TXT records
SPF TXT records
For a CNAME record, the TXT content(s) found by following the CNAME chain to its target. An empty array means the chain was resolved but nothing usable was found there; omitted/null means resolution was not attempted for this record (always the case for non-CNAME entries). A CNAME chain that terminates in more than one TXT value at the target yields multiple entries. Populated on entries in cname_dmarc_records, cname_spf_records, and cname_dkim_records.
status: optional "missing-dmarc-report" or "multiple-dmarc-reports" or "missing-dmarc-rua" or 2 moreDMARC 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
bimi_records: optional array of object { id, content, name, 3 more } BIMI TXT records
BIMI TXT records
For a CNAME record, the TXT content(s) found by following the CNAME chain to its target. An empty array means the chain was resolved but nothing usable was found there; omitted/null means resolution was not attempted for this record (always the case for non-CNAME entries). A CNAME chain that terminates in more than one TXT value at the target yields multiple entries. Populated on entries in cname_dmarc_records, cname_spf_records, and cname_dkim_records.
cname_dkim_records: optional array of object { id, content, name, 3 more } CNAME records for DKIM selectors. Each selector is resolved independently; when a selector’s CNAME resolves to a DKIM TXT record, the API returns that record’s content in the resolved field of the corresponding entry.
CNAME records for DKIM selectors. Each selector is resolved independently; when a selector’s CNAME resolves to a DKIM TXT record, the API returns that record’s content in the resolved field of the corresponding entry.
For a CNAME record, the TXT content(s) found by following the CNAME chain to its target. An empty array means the chain was resolved but nothing usable was found there; omitted/null means resolution was not attempted for this record (always the case for non-CNAME entries). A CNAME chain that terminates in more than one TXT value at the target yields multiple entries. Populated on entries in cname_dmarc_records, cname_spf_records, and cname_dkim_records.
cname_dmarc_records: optional array of object { id, content, name, 3 more } CNAME records at _dmarc. When such a CNAME resolves to a DMARC TXT record, the API returns that record’s content in the resolved field of the corresponding entry.
CNAME records at _dmarc. When such a CNAME resolves to a DMARC TXT record, the API returns that record’s content in the resolved field of the corresponding entry.
For a CNAME record, the TXT content(s) found by following the CNAME chain to its target. An empty array means the chain was resolved but nothing usable was found there; omitted/null means resolution was not attempted for this record (always the case for non-CNAME entries). A CNAME chain that terminates in more than one TXT value at the target yields multiple entries. Populated on entries in cname_dmarc_records, cname_spf_records, and cname_dkim_records.
cname_spf_records: optional array of object { id, content, name, 3 more } CNAME records at the zone apex. When such a CNAME resolves to an SPF TXT record, the API returns that record’s content in the resolved field of the corresponding entry.
CNAME records at the zone apex. When such a CNAME resolves to an SPF TXT record, the API returns that record’s content in the resolved field of the corresponding entry.
For a CNAME record, the TXT content(s) found by following the CNAME chain to its target. An empty array means the chain was resolved but nothing usable was found there; omitted/null means resolution was not attempted for this record (always the case for non-CNAME entries). A CNAME chain that terminates in more than one TXT value at the target yields multiple entries. Populated on entries in cname_dmarc_records, cname_spf_records, and cname_dkim_records.
dkim_records: optional array of object { id, content, name, 3 more } DKIM TXT records
DKIM TXT records
For a CNAME record, the TXT content(s) found by following the CNAME chain to its target. An empty array means the chain was resolved but nothing usable was found there; omitted/null means resolution was not attempted for this record (always the case for non-CNAME entries). A CNAME chain that terminates in more than one TXT value at the target yields multiple entries. Populated on entries in cname_dmarc_records, cname_spf_records, and cname_dkim_records.
dmarc_records: optional array of object { id, content, name, 3 more } DMARC TXT records
DMARC TXT records
For a CNAME record, the TXT content(s) found by following the CNAME chain to its target. An empty array means the chain was resolved but nothing usable was found there; omitted/null means resolution was not attempted for this record (always the case for non-CNAME entries). A CNAME chain that terminates in more than one TXT value at the target yields multiple entries. Populated on entries in cname_dmarc_records, cname_spf_records, and cname_dkim_records.
Deprecatedresolved_dmarc_records: optional array of object { content, name } Use the resolved field on the corresponding entry in cname_dmarc_records instead.
DMARC records that a recursive lookup of _dmarc.{zone} returned. The API populates this only when the zone lacks a DMARC TXT record of its own, which usually means a CNAME delegates DMARC to another zone.
Use the resolved field on the corresponding entry in cname_dmarc_records instead.
DMARC records that a recursive lookup of _dmarc.{zone} returned. The API populates this only when the zone lacks a DMARC TXT record of its own, which usually means a CNAME delegates DMARC to another zone.
spf_records: optional array of object { id, content, name, 3 more } SPF TXT records
SPF TXT records
For a CNAME record, the TXT content(s) found by following the CNAME chain to its target. An empty array means the chain was resolved but nothing usable was found there; omitted/null means resolution was not attempted for this record (always the case for non-CNAME entries). A CNAME chain that terminates in more than one TXT value at the target yields multiple entries. Populated on entries in cname_dmarc_records, cname_spf_records, and cname_dkim_records.
status: optional "missing-dmarc-report" or "multiple-dmarc-reports" or "missing-dmarc-rua" or 2 moreDMARC 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