Skip to content
Start here

Batch trusted domain operations

POST/accounts/{account_id}/email-security/settings/trusted_domains/batch

Executes multiple trusted domain operations atomically: delete, partially update, replace, and create trusted domain patterns in a single request. All four operation arrays (deletes, patches, puts, posts) are required and executed in order. Send empty arrays for unused operations.

Security
API Token

The preferred authorization scheme for interacting with the Cloudflare API. Create a token.

Example:Authorization: Bearer Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY
API Email + API Key

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

Example:X-Auth-Email: user@example.com

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

Example:X-Auth-Key: 144c9defac04969c7bfad8efaa8ea194
Accepted Permissions (at least one required)
Cloud Email Security: Write
Path ParametersExpand Collapse
account_id: string

Identifier.

maxLength32
Body ParametersJSONExpand Collapse
deletes: array of object { id }

IDs of the trusted domain patterns to delete.

id: string

Trusted domain identifier.

formatuuid
patches: array of object { id, comments, created_at, 6 more }

Partial updates to apply — each entry carries the pattern’s ID and only the fields to change.

id: string

Trusted domain identifier.

formatuuid
comments: optional string
maxLength1024
created_at: optional string
formatdate-time
is_recent: optional boolean

Select to prevent recently registered domains from triggering a Suspicious or Malicious disposition.

is_regex: optional boolean

Whether pattern is a regular expression instead of a literal domain.

is_similarity: optional boolean

Select for partner or other approved domains that have similar spelling to your connected domains. Prevents listed domains from triggering a Spoof disposition.

Deprecatedlast_modified: optional string

Use modified_at instead.

Deprecated, use modified_at instead. End of life: November 1, 2026.

formatdate-time
modified_at: optional string
formatdate-time
pattern: optional string

The domain pattern to trust, e.g. example.com.

maxLength1024
minLength1
posts: array of object { is_recent, is_regex, is_similarity, 6 more }

Trusted domain patterns to create.

is_recent: boolean

Select to prevent recently registered domains from triggering a Suspicious or Malicious disposition.

is_regex: boolean

Whether pattern is a regular expression instead of a literal domain.

is_similarity: boolean

Select for partner or other approved domains that have similar spelling to your connected domains. Prevents listed domains from triggering a Spoof disposition.

pattern: string

The domain pattern to trust, e.g. example.com.

maxLength1024
minLength1
id: optional string

Trusted domain identifier.

formatuuid
comments: optional string
maxLength1024
created_at: optional string
formatdate-time
Deprecatedlast_modified: optional string

Use modified_at instead.

Deprecated, use modified_at instead. End of life: November 1, 2026.

formatdate-time
modified_at: optional string
formatdate-time
puts: array of object { id, is_recent, is_regex, 6 more }

Full replacements to apply — each entry carries the pattern’s ID and every field of its new value.

id: string

Trusted domain identifier.

formatuuid
is_recent: boolean

Select to prevent recently registered domains from triggering a Suspicious or Malicious disposition.

is_regex: boolean

Whether pattern is a regular expression instead of a literal domain.

is_similarity: boolean

Select for partner or other approved domains that have similar spelling to your connected domains. Prevents listed domains from triggering a Spoof disposition.

pattern: string

The domain pattern to trust, e.g. example.com.

maxLength1024
minLength1
comments: optional string
maxLength1024
created_at: optional string
formatdate-time
Deprecatedlast_modified: optional string

Use modified_at instead.

Deprecated, use modified_at instead. End of life: November 1, 2026.

formatdate-time
modified_at: optional string
formatdate-time
ReturnsExpand Collapse
errors: array of object { code, message, documentation_url, source }
code: number
minimum1000
message: string
documentation_url: optional string
source: optional object { pointer }
pointer: optional string
messages: array of object { code, message, documentation_url, source }
code: number
minimum1000
message: string
documentation_url: optional string
source: optional object { pointer }
pointer: optional string
success: true

Whether the API call was successful.

result: optional object { deletes, patches, posts, puts }
deletes: optional array of object { id }
id: string

Trusted domain identifier.

formatuuid
patches: optional array of object { id, comments, created_at, 6 more }
id: optional string

Trusted domain identifier.

formatuuid
comments: optional string
maxLength1024
created_at: optional string
formatdate-time
is_recent: optional boolean

Select to prevent recently registered domains from triggering a Suspicious or Malicious disposition.

is_regex: optional boolean

Whether pattern is a regular expression instead of a literal domain.

is_similarity: optional boolean

Select for partner or other approved domains that have similar spelling to your connected domains. Prevents listed domains from triggering a Spoof disposition.

Deprecatedlast_modified: optional string

Use modified_at instead.

Deprecated, use modified_at instead. End of life: November 1, 2026.

formatdate-time
modified_at: optional string
formatdate-time
pattern: optional string

The domain pattern to trust, e.g. example.com.

maxLength1024
minLength1
posts: optional array of object { id, comments, created_at, 6 more }
id: optional string

Trusted domain identifier.

formatuuid
comments: optional string
maxLength1024
created_at: optional string
formatdate-time
is_recent: optional boolean

Select to prevent recently registered domains from triggering a Suspicious or Malicious disposition.

is_regex: optional boolean

Whether pattern is a regular expression instead of a literal domain.

is_similarity: optional boolean

Select for partner or other approved domains that have similar spelling to your connected domains. Prevents listed domains from triggering a Spoof disposition.

Deprecatedlast_modified: optional string

Use modified_at instead.

Deprecated, use modified_at instead. End of life: November 1, 2026.

formatdate-time
modified_at: optional string
formatdate-time
pattern: optional string

The domain pattern to trust, e.g. example.com.

maxLength1024
minLength1
puts: optional array of object { id, comments, created_at, 6 more }
id: optional string

Trusted domain identifier.

formatuuid
comments: optional string
maxLength1024
created_at: optional string
formatdate-time
is_recent: optional boolean

Select to prevent recently registered domains from triggering a Suspicious or Malicious disposition.

is_regex: optional boolean

Whether pattern is a regular expression instead of a literal domain.

is_similarity: optional boolean

Select for partner or other approved domains that have similar spelling to your connected domains. Prevents listed domains from triggering a Spoof disposition.

Deprecatedlast_modified: optional string

Use modified_at instead.

Deprecated, use modified_at instead. End of life: November 1, 2026.

formatdate-time
modified_at: optional string
formatdate-time
pattern: optional string

The domain pattern to trust, e.g. example.com.

maxLength1024
minLength1

Batch trusted domain operations

curl https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/email-security/settings/trusted_domains/batch \
    -H 'Content-Type: application/json' \
    -H "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
    -d '{
          "deletes": [
            {
              "id": "f174e90a-fafe-4643-bbbc-4a0ed4fc8415"
            }
          ],
          "patches": [
            {}
          ],
          "posts": [
            {
              "is_recent": true,
              "is_regex": false,
              "is_similarity": false,
              "pattern": "example.com"
            }
          ],
          "puts": [
            {
              "is_recent": true,
              "is_regex": false,
              "is_similarity": false,
              "pattern": "example.com"
            }
          ]
        }'
{
  "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": {
    "deletes": [
      {
        "id": "f174e90a-fafe-4643-bbbc-4a0ed4fc8415"
      }
    ],
    "patches": [
      {
        "id": "f174e90a-fafe-4643-bbbc-4a0ed4fc8415",
        "comments": "Trusted partner domain",
        "created_at": "2014-01-01T05:20:00.12345Z",
        "is_recent": true,
        "is_regex": false,
        "is_similarity": false,
        "last_modified": "2014-01-01T05:20:00.12345Z",
        "modified_at": "2014-01-01T05:20:00.12345Z",
        "pattern": "example.com"
      }
    ],
    "posts": [
      {
        "id": "f174e90a-fafe-4643-bbbc-4a0ed4fc8415",
        "comments": "Trusted partner domain",
        "created_at": "2014-01-01T05:20:00.12345Z",
        "is_recent": true,
        "is_regex": false,
        "is_similarity": false,
        "last_modified": "2014-01-01T05:20:00.12345Z",
        "modified_at": "2014-01-01T05:20:00.12345Z",
        "pattern": "example.com"
      }
    ],
    "puts": [
      {
        "id": "f174e90a-fafe-4643-bbbc-4a0ed4fc8415",
        "comments": "Trusted partner domain",
        "created_at": "2014-01-01T05:20:00.12345Z",
        "is_recent": true,
        "is_regex": false,
        "is_similarity": false,
        "last_modified": "2014-01-01T05:20:00.12345Z",
        "modified_at": "2014-01-01T05:20:00.12345Z",
        "pattern": "example.com"
      }
    ]
  }
}
Returns Examples
{
  "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": {
    "deletes": [
      {
        "id": "f174e90a-fafe-4643-bbbc-4a0ed4fc8415"
      }
    ],
    "patches": [
      {
        "id": "f174e90a-fafe-4643-bbbc-4a0ed4fc8415",
        "comments": "Trusted partner domain",
        "created_at": "2014-01-01T05:20:00.12345Z",
        "is_recent": true,
        "is_regex": false,
        "is_similarity": false,
        "last_modified": "2014-01-01T05:20:00.12345Z",
        "modified_at": "2014-01-01T05:20:00.12345Z",
        "pattern": "example.com"
      }
    ],
    "posts": [
      {
        "id": "f174e90a-fafe-4643-bbbc-4a0ed4fc8415",
        "comments": "Trusted partner domain",
        "created_at": "2014-01-01T05:20:00.12345Z",
        "is_recent": true,
        "is_regex": false,
        "is_similarity": false,
        "last_modified": "2014-01-01T05:20:00.12345Z",
        "modified_at": "2014-01-01T05:20:00.12345Z",
        "pattern": "example.com"
      }
    ],
    "puts": [
      {
        "id": "f174e90a-fafe-4643-bbbc-4a0ed4fc8415",
        "comments": "Trusted partner domain",
        "created_at": "2014-01-01T05:20:00.12345Z",
        "is_recent": true,
        "is_regex": false,
        "is_similarity": false,
        "last_modified": "2014-01-01T05:20:00.12345Z",
        "modified_at": "2014-01-01T05:20:00.12345Z",
        "pattern": "example.com"
      }
    ]
  }
}