---
title: Configure DMARC Reports
---

[Skip to content](#_top)

[API Reference](https://developers.cloudflare.com/api/python)

[Email Auth](https://developers.cloudflare.com/api/python/resources/email_auth)

[DMARC Reports](https://developers.cloudflare.com/api/python/resources/email_auth/subresources/dmarc_reports)

Copy Markdown

Open in **Claude**Open in **ChatGPT**Open in **Cursor**

---

**Copy Markdown****View as Markdown**

# Configure DMARC Reports

email\_auth.dmarc\_reports.edit(DMARCReportEditParams\*\*kwargs) -> [DMARCReportEditResponse](<https://developers.cloudflare.com/api/python/resources/email_auth#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)>)

PATCH/zones/{zone\_id}/email/auth/dmarc-reports

Updates the DMARC report configuration for a zone. At least one of `enabled` or `skip_wizard` must be provided. When enabling, the handler will ensure the DMARC RUA record exists in DNS.

##### Security

<details>

<summary>API Token</summary>



The preferred authorization scheme for interacting with the Cloudflare API. <a href="https://developers.cloudflare.com/fundamentals/api/get-started/create-token/">Create a token</a>.

**Example:**<code>Authorization: Bearer Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY</code>

</details>

<details>

<summary>API Email + API Key</summary>



The previous authorization scheme for interacting with the Cloudflare API, used in conjunction with a Global API key.

**Example:**<code>X-Auth-Email: user@example.com</code>

The previous authorization scheme for interacting with the Cloudflare API. When possible, use API tokens instead of Global API keys.

**Example:**<code>X-Auth-Key: 144c9defac04969c7bfad8efaa8ea194</code>

</details>

##### ParametersExpand Collapse

zone\_id: str

Identifier.

maxLength32

[Link to this property](<#(resource)%20email_auth.dmarc_reports%20%3E%20(method)%20edit%20%3E%20(params)%20default%20%3E%20(param)%20zone_id%20%3E%20(schema)>)

enabled: Optional\[bool]

Enable or disable DMARC reports for this zone

[Link to this property](<#(resource)%20email_auth.dmarc_reports%20%3E%20(method)%20edit%20%3E%20(params)%20default%20%3E%20(param)%20enabled%20%3E%20(schema)>)

skip\_wizard: Optional\[bool]

Skip the DMARC setup wizard

[Link to this property](<#(resource)%20email_auth.dmarc_reports%20%3E%20(method)%20edit%20%3E%20(params)%20default%20%3E%20(param)%20skip_wizard%20%3E%20(schema)>)

##### ReturnsExpand Collapse

<details>

<summary>

class DMARCReportEditResponse: …

Response for GET/PATCH /dmarc-reports

</summary>

<details>

<summary>

approved\_sources: Optional\[List\[ApprovedSource]]

List of approved sending sources (omitted when empty)

</summary>

Deprecatedcreated: Optional\[datetime]

Use <code>created_at</code> instead.

Deprecated, use created\_at

formatdate-time

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20approved_sources%20%3E%20(items)%20%3E%20(property)%20created">Link to this property</a>

created\_at: Optional\[datetime]

Creation timestamp

formatdate-time

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20approved_sources%20%3E%20(items)%20%3E%20(property)%20created_at">Link to this property</a>

domain: Optional\[str]

The source domain

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20approved_sources%20%3E%20(items)%20%3E%20(property)%20domain">Link to this property</a>

ips: Optional\[List\[str]]

Resolved IP addresses from SPF

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20approved_sources%20%3E%20(items)%20%3E%20(property)%20ips">Link to this property</a>

Deprecatedmodified: Optional\[datetime]

Use <code>modified_at</code> instead.

Deprecated, use modified\_at

formatdate-time

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20approved_sources%20%3E%20(items)%20%3E%20(property)%20modified">Link to this property</a>

modified\_at: Optional\[datetime]

Last modification timestamp

formatdate-time

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20approved_sources%20%3E%20(items)%20%3E%20(property)%20modified_at">Link to this property</a>

name: Optional\[str]

Source name (typically same as domain)

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20approved_sources%20%3E%20(items)%20%3E%20(property)%20name">Link to this property</a>

slug: Optional\[str]

URL-friendly identifier

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20approved_sources%20%3E%20(items)%20%3E%20(property)%20slug">Link to this property</a>

tag: Optional\[str]

Source UUID

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20approved_sources%20%3E%20(items)%20%3E%20(property)%20tag">Link to this property</a>

</details>

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20approved_sources">Link to this property</a>

Deprecatedcreated: Optional\[datetime]

Use <code>created_at</code> instead.

Deprecated, use created\_at

formatdate-time

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20created">Link to this property</a>

created\_at: Optional\[datetime]

Creation timestamp

formatdate-time

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20created_at">Link to this property</a>

enabled: Optional\[bool]

Whether DMARC reports are enabled

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20enabled">Link to this property</a>

Deprecatedmodified: Optional\[datetime]

Use <code>modified_at</code> instead.

Deprecated, use modified\_at

formatdate-time

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20modified">Link to this property</a>

modified\_at: Optional\[datetime]

Last modification timestamp

formatdate-time

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20modified_at">Link to this property</a>

<details>

<summary>

records: Optional\[Records]

Live DNS records for the zone, grouped by type

</summary>

<details>

<summary>

bimi\_records: Optional\[List\[RecordsBimiRecord]]

BIMI TXT records

</summary>

id: Optional\[str]

DNS record ID

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20records%20%3E%20(property)%20bimi_records%20%3E%20(items)%20%3E%20(property)%20id">Link to this property</a>

content: Optional\[str]

Record content

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20records%20%3E%20(property)%20bimi_records%20%3E%20(items)%20%3E%20(property)%20content">Link to this property</a>

name: Optional\[str]

DNS record name

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20records%20%3E%20(property)%20bimi_records%20%3E%20(items)%20%3E%20(property)%20name">Link to this property</a>

resolved: Optional\[List\[str]]

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.

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20records%20%3E%20(property)%20bimi_records%20%3E%20(items)%20%3E%20(property)%20resolved">Link to this property</a>

ttl: Optional\[int]

Time to live in seconds

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20records%20%3E%20(property)%20bimi_records%20%3E%20(items)%20%3E%20(property)%20ttl">Link to this property</a>

type: Optional\[str]

Record type

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20records%20%3E%20(property)%20bimi_records%20%3E%20(items)%20%3E%20(property)%20type">Link to this property</a>

</details>

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20records%20%3E%20(property)%20bimi_records">Link to this property</a>

<details>

<summary>

cname\_dkim\_records: Optional\[List\[RecordsCnamedkimRecord]]

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 <code>resolved</code> field of the corresponding entry.

</summary>

id: Optional\[str]

DNS record ID

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20records%20%3E%20(property)%20cname_dkim_records%20%3E%20(items)%20%3E%20(property)%20id">Link to this property</a>

content: Optional\[str]

Record content

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20records%20%3E%20(property)%20cname_dkim_records%20%3E%20(items)%20%3E%20(property)%20content">Link to this property</a>

name: Optional\[str]

DNS record name

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20records%20%3E%20(property)%20cname_dkim_records%20%3E%20(items)%20%3E%20(property)%20name">Link to this property</a>

resolved: Optional\[List\[str]]

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.

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20records%20%3E%20(property)%20cname_dkim_records%20%3E%20(items)%20%3E%20(property)%20resolved">Link to this property</a>

ttl: Optional\[int]

Time to live in seconds

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20records%20%3E%20(property)%20cname_dkim_records%20%3E%20(items)%20%3E%20(property)%20ttl">Link to this property</a>

type: Optional\[str]

Record type

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20records%20%3E%20(property)%20cname_dkim_records%20%3E%20(items)%20%3E%20(property)%20type">Link to this property</a>

</details>

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20records%20%3E%20(property)%20cname_dkim_records">Link to this property</a>

<details>

<summary>

cname\_dmarc\_records: Optional\[List\[RecordsCnamedmarcRecord]]

CNAME records at \_dmarc. When such a CNAME resolves to a DMARC TXT record, the API returns that record’s content in the <code>resolved</code> field of the corresponding entry.

</summary>

id: Optional\[str]

DNS record ID

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20records%20%3E%20(property)%20cname_dmarc_records%20%3E%20(items)%20%3E%20(property)%20id">Link to this property</a>

content: Optional\[str]

Record content

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20records%20%3E%20(property)%20cname_dmarc_records%20%3E%20(items)%20%3E%20(property)%20content">Link to this property</a>

name: Optional\[str]

DNS record name

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20records%20%3E%20(property)%20cname_dmarc_records%20%3E%20(items)%20%3E%20(property)%20name">Link to this property</a>

resolved: Optional\[List\[str]]

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.

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20records%20%3E%20(property)%20cname_dmarc_records%20%3E%20(items)%20%3E%20(property)%20resolved">Link to this property</a>

ttl: Optional\[int]

Time to live in seconds

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20records%20%3E%20(property)%20cname_dmarc_records%20%3E%20(items)%20%3E%20(property)%20ttl">Link to this property</a>

type: Optional\[str]

Record type

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20records%20%3E%20(property)%20cname_dmarc_records%20%3E%20(items)%20%3E%20(property)%20type">Link to this property</a>

</details>

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20records%20%3E%20(property)%20cname_dmarc_records">Link to this property</a>

<details>

<summary>

cname\_spf\_records: Optional\[List\[RecordsCnamespfRecord]]

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 <code>resolved</code> field of the corresponding entry.

</summary>

id: Optional\[str]

DNS record ID

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20records%20%3E%20(property)%20cname_spf_records%20%3E%20(items)%20%3E%20(property)%20id">Link to this property</a>

content: Optional\[str]

Record content

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20records%20%3E%20(property)%20cname_spf_records%20%3E%20(items)%20%3E%20(property)%20content">Link to this property</a>

name: Optional\[str]

DNS record name

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20records%20%3E%20(property)%20cname_spf_records%20%3E%20(items)%20%3E%20(property)%20name">Link to this property</a>

resolved: Optional\[List\[str]]

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.

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20records%20%3E%20(property)%20cname_spf_records%20%3E%20(items)%20%3E%20(property)%20resolved">Link to this property</a>

ttl: Optional\[int]

Time to live in seconds

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20records%20%3E%20(property)%20cname_spf_records%20%3E%20(items)%20%3E%20(property)%20ttl">Link to this property</a>

type: Optional\[str]

Record type

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20records%20%3E%20(property)%20cname_spf_records%20%3E%20(items)%20%3E%20(property)%20type">Link to this property</a>

</details>

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20records%20%3E%20(property)%20cname_spf_records">Link to this property</a>

<details>

<summary>

dkim\_records: Optional\[List\[RecordsDKIMRecord]]

DKIM TXT records

</summary>

id: Optional\[str]

DNS record ID

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20records%20%3E%20(property)%20dkim_records%20%3E%20(items)%20%3E%20(property)%20id">Link to this property</a>

content: Optional\[str]

Record content

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20records%20%3E%20(property)%20dkim_records%20%3E%20(items)%20%3E%20(property)%20content">Link to this property</a>

name: Optional\[str]

DNS record name

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20records%20%3E%20(property)%20dkim_records%20%3E%20(items)%20%3E%20(property)%20name">Link to this property</a>

resolved: Optional\[List\[str]]

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.

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20records%20%3E%20(property)%20dkim_records%20%3E%20(items)%20%3E%20(property)%20resolved">Link to this property</a>

ttl: Optional\[int]

Time to live in seconds

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20records%20%3E%20(property)%20dkim_records%20%3E%20(items)%20%3E%20(property)%20ttl">Link to this property</a>

type: Optional\[str]

Record type

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20records%20%3E%20(property)%20dkim_records%20%3E%20(items)%20%3E%20(property)%20type">Link to this property</a>

</details>

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20records%20%3E%20(property)%20dkim_records">Link to this property</a>

<details>

<summary>

dmarc\_records: Optional\[List\[RecordsDMARCRecord]]

DMARC TXT records

</summary>

id: Optional\[str]

DNS record ID

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20records%20%3E%20(property)%20dmarc_records%20%3E%20(items)%20%3E%20(property)%20id">Link to this property</a>

content: Optional\[str]

Record content

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20records%20%3E%20(property)%20dmarc_records%20%3E%20(items)%20%3E%20(property)%20content">Link to this property</a>

name: Optional\[str]

DNS record name

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20records%20%3E%20(property)%20dmarc_records%20%3E%20(items)%20%3E%20(property)%20name">Link to this property</a>

resolved: Optional\[List\[str]]

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.

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20records%20%3E%20(property)%20dmarc_records%20%3E%20(items)%20%3E%20(property)%20resolved">Link to this property</a>

ttl: Optional\[int]

Time to live in seconds

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20records%20%3E%20(property)%20dmarc_records%20%3E%20(items)%20%3E%20(property)%20ttl">Link to this property</a>

type: Optional\[str]

Record type

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20records%20%3E%20(property)%20dmarc_records%20%3E%20(items)%20%3E%20(property)%20type">Link to this property</a>

</details>

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20records%20%3E%20(property)%20dmarc_records">Link to this property</a>

<details>

<summary>

Deprecatedresolved\_dmarc\_records: Optional\[List\[RecordsResolvedDMARCRecord]]

Use the <code>resolved</code> 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.

</summary>

content: Optional\[str]

The TXT record value. The API joins all character-strings into a single string.

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20records%20%3E%20(property)%20resolved_dmarc_records%20%3E%20(items)%20%3E%20(property)%20content">Link to this property</a>

name: Optional\[str]

The name the API queried.

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20records%20%3E%20(property)%20resolved_dmarc_records%20%3E%20(items)%20%3E%20(property)%20name">Link to this property</a>

</details>

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20records%20%3E%20(property)%20resolved_dmarc_records">Link to this property</a>

<details>

<summary>

spf\_records: Optional\[List\[RecordsSPFRecord]]

SPF TXT records

</summary>

id: Optional\[str]

DNS record ID

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20records%20%3E%20(property)%20spf_records%20%3E%20(items)%20%3E%20(property)%20id">Link to this property</a>

content: Optional\[str]

Record content

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20records%20%3E%20(property)%20spf_records%20%3E%20(items)%20%3E%20(property)%20content">Link to this property</a>

name: Optional\[str]

DNS record name

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20records%20%3E%20(property)%20spf_records%20%3E%20(items)%20%3E%20(property)%20name">Link to this property</a>

resolved: Optional\[List\[str]]

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.

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20records%20%3E%20(property)%20spf_records%20%3E%20(items)%20%3E%20(property)%20resolved">Link to this property</a>

ttl: Optional\[int]

Time to live in seconds

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20records%20%3E%20(property)%20spf_records%20%3E%20(items)%20%3E%20(property)%20ttl">Link to this property</a>

type: Optional\[str]

Record type

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20records%20%3E%20(property)%20spf_records%20%3E%20(items)%20%3E%20(property)%20type">Link to this property</a>

</details>

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20records%20%3E%20(property)%20spf_records">Link to this property</a>

</details>

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20records">Link to this property</a>

rua\_prefix: Optional\[str]

Prefix for DMARC RUA addresses (32-char hex string)

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20rua_prefix">Link to this property</a>

skip\_wizard: Optional\[bool]

Whether to skip the setup wizard

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20skip_wizard">Link to this property</a>

<details>

<summary>

status: Optional\[Literal\["missing-dmarc-report", "multiple-dmarc-reports", "missing-dmarc-rua", 2 more]]

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.

</summary>

One of the following:

"missing-dmarc-report"

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20status%20%3E%20(member)%200">Link to this property</a>

"multiple-dmarc-reports"

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20status%20%3E%20(member)%201">Link to this property</a>

"missing-dmarc-rua"

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20status%20%3E%20(member)%202">Link to this property</a>

"cname-on-dmarc-record"

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20status%20%3E%20(member)%203">Link to this property</a>

"unauthorized-reporting-domain"

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20status%20%3E%20(member)%204">Link to this property</a>

</details>

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20status">Link to this property</a>

Deprecatedtag: Optional\[str]

Use <code>zone_id</code> instead.

Use <code>zone_id</code> instead

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20tag">Link to this property</a>

zone\_id: Optional\[str]

Zone identifier

<a href="#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)%20%3E%20(property)%20zone_id">Link to this property</a>

</details>

[Link to this property](<#(resource)%20email_auth.dmarc_reports%20%3E%20(model)%20dmarc_report_edit_response%20%3E%20(schema)>)

### Configure DMARC Reports

Python

HTTPTypeScriptPythonGoTerraform

```
import os
from cloudflare import Cloudflare

client = Cloudflare(
    api_token=os.environ.get("CLOUDFLARE_API_TOKEN"),  # This is the default and can be omitted
)
response = client.email_auth.dmarc_reports.edit(
    zone_id="023e105f4ecef8ad9ca31a8372d0c353",
)
print(response.zone_id)
```

200 example

```
{
  "errors": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "messages": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "success": true,
  "result": {
    "approved_sources": [
      {
        "created": "2024-01-15T10:30:00.12345Z",
        "created_at": "2024-01-15T10:30:00.12345Z",
        "domain": "sendgrid.net",
        "ips": [
          "192.168.1.1",
          "10.0.0.1"
        ],
        "modified": "2024-01-15T11:45:00.12345Z",
        "modified_at": "2024-01-15T11:45:00.12345Z",
        "name": "SendGrid",
        "slug": "sendgrid-net",
        "tag": "f174e90a-fafe-4643-bbbc-4a0ed4fc8415"
      }
    ],
    "created": "2024-01-15T10:30:00.12345Z",
    "created_at": "2024-01-15T10:30:00.12345Z",
    "enabled": true,
    "modified": "2024-01-15T11:45:00.12345Z",
    "modified_at": "2024-01-15T11:45:00.12345Z",
    "records": {
      "bimi_records": [
        {
          "id": "e5bb46707a802688812d5d1c9f7977d4",
          "content": "v=DMARC1; p=none; rua=mailto:rua@dmarc-reports.cloudflare.net",
          "name": "_dmarc.example.com",
          "resolved": [
            "v=DMARC1; p=reject; rua=mailto:rua@dmarc-reports.cloudflare.net"
          ],
          "ttl": 300,
          "type": "TXT"
        }
      ],
      "cname_dkim_records": [
        {
          "id": "e5bb46707a802688812d5d1c9f7977d4",
          "content": "v=DMARC1; p=none; rua=mailto:rua@dmarc-reports.cloudflare.net",
          "name": "_dmarc.example.com",
          "resolved": [
            "v=DMARC1; p=reject; rua=mailto:rua@dmarc-reports.cloudflare.net"
          ],
          "ttl": 300,
          "type": "TXT"
        }
      ],
      "cname_dmarc_records": [
        {
          "id": "e5bb46707a802688812d5d1c9f7977d4",
          "content": "v=DMARC1; p=none; rua=mailto:rua@dmarc-reports.cloudflare.net",
          "name": "_dmarc.example.com",
          "resolved": [
            "v=DMARC1; p=reject; rua=mailto:rua@dmarc-reports.cloudflare.net"
          ],
          "ttl": 300,
          "type": "TXT"
        }
      ],
      "cname_spf_records": [
        {
          "id": "e5bb46707a802688812d5d1c9f7977d4",
          "content": "v=DMARC1; p=none; rua=mailto:rua@dmarc-reports.cloudflare.net",
          "name": "_dmarc.example.com",
          "resolved": [
            "v=DMARC1; p=reject; rua=mailto:rua@dmarc-reports.cloudflare.net"
          ],
          "ttl": 300,
          "type": "TXT"
        }
      ],
      "dkim_records": [
        {
          "id": "e5bb46707a802688812d5d1c9f7977d4",
          "content": "v=DMARC1; p=none; rua=mailto:rua@dmarc-reports.cloudflare.net",
          "name": "_dmarc.example.com",
          "resolved": [
            "v=DMARC1; p=reject; rua=mailto:rua@dmarc-reports.cloudflare.net"
          ],
          "ttl": 300,
          "type": "TXT"
        }
      ],
      "dmarc_records": [
        {
          "id": "e5bb46707a802688812d5d1c9f7977d4",
          "content": "v=DMARC1; p=none; rua=mailto:rua@dmarc-reports.cloudflare.net",
          "name": "_dmarc.example.com",
          "resolved": [
            "v=DMARC1; p=reject; rua=mailto:rua@dmarc-reports.cloudflare.net"
          ],
          "ttl": 300,
          "type": "TXT"
        }
      ],
      "resolved_dmarc_records": [
        {
          "content": "v=DMARC1; p=reject; rua=mailto:rua@dmarc-reports.cloudflare.net",
          "name": "_dmarc.example.com"
        }
      ],
      "spf_records": [
        {
          "id": "e5bb46707a802688812d5d1c9f7977d4",
          "content": "v=DMARC1; p=none; rua=mailto:rua@dmarc-reports.cloudflare.net",
          "name": "_dmarc.example.com",
          "resolved": [
            "v=DMARC1; p=reject; rua=mailto:rua@dmarc-reports.cloudflare.net"
          ],
          "ttl": 300,
          "type": "TXT"
        }
      ]
    },
    "rua_prefix": "9233c80fc89f43e3a7b749605f651868",
    "skip_wizard": false,
    "status": "missing-dmarc-report",
    "tag": "023e105f4ecef8ad9ca31a8372d0c353",
    "zone_id": "023e105f4ecef8ad9ca31a8372d0c353"
  }
}
```

##### Returns Examples

200 example

```
{
  "errors": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "messages": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "success": true,
  "result": {
    "approved_sources": [
      {
        "created": "2024-01-15T10:30:00.12345Z",
        "created_at": "2024-01-15T10:30:00.12345Z",
        "domain": "sendgrid.net",
        "ips": [
          "192.168.1.1",
          "10.0.0.1"
        ],
        "modified": "2024-01-15T11:45:00.12345Z",
        "modified_at": "2024-01-15T11:45:00.12345Z",
        "name": "SendGrid",
        "slug": "sendgrid-net",
        "tag": "f174e90a-fafe-4643-bbbc-4a0ed4fc8415"
      }
    ],
    "created": "2024-01-15T10:30:00.12345Z",
    "created_at": "2024-01-15T10:30:00.12345Z",
    "enabled": true,
    "modified": "2024-01-15T11:45:00.12345Z",
    "modified_at": "2024-01-15T11:45:00.12345Z",
    "records": {
      "bimi_records": [
        {
          "id": "e5bb46707a802688812d5d1c9f7977d4",
          "content": "v=DMARC1; p=none; rua=mailto:rua@dmarc-reports.cloudflare.net",
          "name": "_dmarc.example.com",
          "resolved": [
            "v=DMARC1; p=reject; rua=mailto:rua@dmarc-reports.cloudflare.net"
          ],
          "ttl": 300,
          "type": "TXT"
        }
      ],
      "cname_dkim_records": [
        {
          "id": "e5bb46707a802688812d5d1c9f7977d4",
          "content": "v=DMARC1; p=none; rua=mailto:rua@dmarc-reports.cloudflare.net",
          "name": "_dmarc.example.com",
          "resolved": [
            "v=DMARC1; p=reject; rua=mailto:rua@dmarc-reports.cloudflare.net"
          ],
          "ttl": 300,
          "type": "TXT"
        }
      ],
      "cname_dmarc_records": [
        {
          "id": "e5bb46707a802688812d5d1c9f7977d4",
          "content": "v=DMARC1; p=none; rua=mailto:rua@dmarc-reports.cloudflare.net",
          "name": "_dmarc.example.com",
          "resolved": [
            "v=DMARC1; p=reject; rua=mailto:rua@dmarc-reports.cloudflare.net"
          ],
          "ttl": 300,
          "type": "TXT"
        }
      ],
      "cname_spf_records": [
        {
          "id": "e5bb46707a802688812d5d1c9f7977d4",
          "content": "v=DMARC1; p=none; rua=mailto:rua@dmarc-reports.cloudflare.net",
          "name": "_dmarc.example.com",
          "resolved": [
            "v=DMARC1; p=reject; rua=mailto:rua@dmarc-reports.cloudflare.net"
          ],
          "ttl": 300,
          "type": "TXT"
        }
      ],
      "dkim_records": [
        {
          "id": "e5bb46707a802688812d5d1c9f7977d4",
          "content": "v=DMARC1; p=none; rua=mailto:rua@dmarc-reports.cloudflare.net",
          "name": "_dmarc.example.com",
          "resolved": [
            "v=DMARC1; p=reject; rua=mailto:rua@dmarc-reports.cloudflare.net"
          ],
          "ttl": 300,
          "type": "TXT"
        }
      ],
      "dmarc_records": [
        {
          "id": "e5bb46707a802688812d5d1c9f7977d4",
          "content": "v=DMARC1; p=none; rua=mailto:rua@dmarc-reports.cloudflare.net",
          "name": "_dmarc.example.com",
          "resolved": [
            "v=DMARC1; p=reject; rua=mailto:rua@dmarc-reports.cloudflare.net"
          ],
          "ttl": 300,
          "type": "TXT"
        }
      ],
      "resolved_dmarc_records": [
        {
          "content": "v=DMARC1; p=reject; rua=mailto:rua@dmarc-reports.cloudflare.net",
          "name": "_dmarc.example.com"
        }
      ],
      "spf_records": [
        {
          "id": "e5bb46707a802688812d5d1c9f7977d4",
          "content": "v=DMARC1; p=none; rua=mailto:rua@dmarc-reports.cloudflare.net",
          "name": "_dmarc.example.com",
          "resolved": [
            "v=DMARC1; p=reject; rua=mailto:rua@dmarc-reports.cloudflare.net"
          ],
          "ttl": 300,
          "type": "TXT"
        }
      ]
    },
    "rua_prefix": "9233c80fc89f43e3a7b749605f651868",
    "skip_wizard": false,
    "status": "missing-dmarc-report",
    "tag": "023e105f4ecef8ad9ca31a8372d0c353",
    "zone_id": "023e105f4ecef8ad9ca31a8372d0c353"
  }
}
```