Skip to content
Start here

Batch content policy operations

client.EmailSecurity.Settings.ContentPolicies.Batch(ctx, params) (*SettingContentPolicyBatchResponse, error)
POST/accounts/{account_id}/email-security/settings/content_policies/batch

Executes multiple content policy operations atomically: delete, partially update, replace, and create content policies 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
ParametersExpand Collapse
params SettingContentPolicyBatchParams
AccountID param.Field[string]

Path param: Identifier.

maxLength32
Deletes param.Field[[]SettingContentPolicyBatchParamsDelete]

Body param: IDs of the content policies to delete.

ID string

Content policy identifier.

formatuuid
Patches param.Field[[]SettingContentPolicyBatchParamsPatch]

Body param: Partial updates to apply — each entry carries the policy’s ID and only the fields to change.

ID string

Content policy identifier.

formatuuid
CreatedAt TimeOptional
formatdate-time
Enabled boolOptional

Whether the policy is active.

ModifiedAt TimeOptional
formatdate-time
Name stringOptional

Human-readable name of the policy.

maxLength256
minLength1
Notes stringOptional

Optional note describing the purpose of the policy.

maxLength4096
Pattern stringOptional

Regular expression the policy matches against.

maxLength2048
minLength1
Targets []SettingContentPolicyBatchParamsPatchesTargetOptional

Parts of the email the pattern is matched against.

One of the following:
const SettingContentPolicyBatchParamsPatchesTargetSubject SettingContentPolicyBatchParamsPatchesTarget = "SUBJECT"
const SettingContentPolicyBatchParamsPatchesTargetBody SettingContentPolicyBatchParamsPatchesTarget = "BODY"
Posts param.Field[[]SettingContentPolicyBatchParamsPost]

Body param: Content policies to create.

Enabled bool

Whether the policy is active.

Name string

Human-readable name of the policy.

maxLength256
minLength1
Pattern string

Regular expression the policy matches against.

maxLength2048
minLength1
Targets []SettingContentPolicyBatchParamsPostsTarget

Parts of the email the pattern is matched against.

One of the following:
const SettingContentPolicyBatchParamsPostsTargetSubject SettingContentPolicyBatchParamsPostsTarget = "SUBJECT"
const SettingContentPolicyBatchParamsPostsTargetBody SettingContentPolicyBatchParamsPostsTarget = "BODY"
ID stringOptional

Content policy identifier.

formatuuid
CreatedAt TimeOptional
formatdate-time
ModifiedAt TimeOptional
formatdate-time
Notes stringOptional

Optional note describing the purpose of the policy.

maxLength4096
Puts param.Field[[]SettingContentPolicyBatchParamsPut]

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

ID string

Content policy identifier.

formatuuid
Enabled bool

Whether the policy is active.

Name string

Human-readable name of the policy.

maxLength256
minLength1
Pattern string

Regular expression the policy matches against.

maxLength2048
minLength1
Targets []SettingContentPolicyBatchParamsPutsTarget

Parts of the email the pattern is matched against.

One of the following:
const SettingContentPolicyBatchParamsPutsTargetSubject SettingContentPolicyBatchParamsPutsTarget = "SUBJECT"
const SettingContentPolicyBatchParamsPutsTargetBody SettingContentPolicyBatchParamsPutsTarget = "BODY"
CreatedAt TimeOptional
formatdate-time
ModifiedAt TimeOptional
formatdate-time
Notes stringOptional

Optional note describing the purpose of the policy.

maxLength4096
ReturnsExpand Collapse
type SettingContentPolicyBatchResponse struct{…}
Deletes []SettingContentPolicyBatchResponseDeleteOptional
ID string

Content policy identifier.

formatuuid
Patches []SettingContentPolicyBatchResponsePatchOptional
ID stringOptional

Content policy identifier.

formatuuid
CreatedAt TimeOptional
formatdate-time
Enabled boolOptional

Whether the policy is active.

ModifiedAt TimeOptional
formatdate-time
Name stringOptional

Human-readable name of the policy.

maxLength256
minLength1
Notes stringOptional

Optional note describing the purpose of the policy.

maxLength4096
Pattern stringOptional

Regular expression the policy matches against.

maxLength2048
minLength1
Targets []SettingContentPolicyBatchResponsePatchesTargetOptional

Parts of the email the pattern is matched against.

One of the following:
const SettingContentPolicyBatchResponsePatchesTargetSubject SettingContentPolicyBatchResponsePatchesTarget = "SUBJECT"
const SettingContentPolicyBatchResponsePatchesTargetBody SettingContentPolicyBatchResponsePatchesTarget = "BODY"
Posts []SettingContentPolicyBatchResponsePostOptional
ID stringOptional

Content policy identifier.

formatuuid
CreatedAt TimeOptional
formatdate-time
Enabled boolOptional

Whether the policy is active.

ModifiedAt TimeOptional
formatdate-time
Name stringOptional

Human-readable name of the policy.

maxLength256
minLength1
Notes stringOptional

Optional note describing the purpose of the policy.

maxLength4096
Pattern stringOptional

Regular expression the policy matches against.

maxLength2048
minLength1
Targets []SettingContentPolicyBatchResponsePostsTargetOptional

Parts of the email the pattern is matched against.

One of the following:
const SettingContentPolicyBatchResponsePostsTargetSubject SettingContentPolicyBatchResponsePostsTarget = "SUBJECT"
const SettingContentPolicyBatchResponsePostsTargetBody SettingContentPolicyBatchResponsePostsTarget = "BODY"
Puts []SettingContentPolicyBatchResponsePutOptional
ID stringOptional

Content policy identifier.

formatuuid
CreatedAt TimeOptional
formatdate-time
Enabled boolOptional

Whether the policy is active.

ModifiedAt TimeOptional
formatdate-time
Name stringOptional

Human-readable name of the policy.

maxLength256
minLength1
Notes stringOptional

Optional note describing the purpose of the policy.

maxLength4096
Pattern stringOptional

Regular expression the policy matches against.

maxLength2048
minLength1
Targets []SettingContentPolicyBatchResponsePutsTargetOptional

Parts of the email the pattern is matched against.

One of the following:
const SettingContentPolicyBatchResponsePutsTargetSubject SettingContentPolicyBatchResponsePutsTarget = "SUBJECT"
const SettingContentPolicyBatchResponsePutsTargetBody SettingContentPolicyBatchResponsePutsTarget = "BODY"

Batch content policy operations

package main

import (
  "context"
  "fmt"

  "github.com/cloudflare/cloudflare-go"
  "github.com/cloudflare/cloudflare-go/email_security"
  "github.com/cloudflare/cloudflare-go/option"
)

func main() {
  client := cloudflare.NewClient(
    option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"),
  )
  response, err := client.EmailSecurity.Settings.ContentPolicies.Batch(context.TODO(), email_security.SettingContentPolicyBatchParams{
    AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"),
    Deletes: cloudflare.F([]email_security.SettingContentPolicyBatchParamsDelete{email_security.SettingContentPolicyBatchParamsDelete{
      ID: cloudflare.F("f174e90a-fafe-4643-bbbc-4a0ed4fc8415"),
    }}),
    Patches: cloudflare.F([]email_security.SettingContentPolicyBatchParamsPatch{email_security.SettingContentPolicyBatchParamsPatch{

    }}),
    Posts: cloudflare.F([]email_security.SettingContentPolicyBatchParamsPost{email_security.SettingContentPolicyBatchParamsPost{
      Enabled: cloudflare.F(true),
      Name: cloudflare.F("Block phishing keywords"),
      Pattern: cloudflare.F("urgent.*verify.*account"),
      Targets: cloudflare.F([]email_security.SettingContentPolicyBatchParamsPostsTarget{email_security.SettingContentPolicyBatchParamsPostsTargetSubject}),
    }}),
    Puts: cloudflare.F([]email_security.SettingContentPolicyBatchParamsPut{email_security.SettingContentPolicyBatchParamsPut{
      Enabled: cloudflare.F(true),
      Name: cloudflare.F("Block phishing keywords"),
      Pattern: cloudflare.F("urgent.*verify.*account"),
      Targets: cloudflare.F([]email_security.SettingContentPolicyBatchParamsPutsTarget{email_security.SettingContentPolicyBatchParamsPutsTargetSubject}),
    }}),
  })
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", response.Deletes)
}
{
  "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",
        "created_at": "2014-01-01T05:20:00.12345Z",
        "enabled": true,
        "modified_at": "2014-01-01T05:20:00.12345Z",
        "name": "Block phishing keywords",
        "notes": "Blocks common phishing subject lines",
        "pattern": "urgent.*verify.*account",
        "targets": [
          "SUBJECT"
        ]
      }
    ],
    "posts": [
      {
        "id": "f174e90a-fafe-4643-bbbc-4a0ed4fc8415",
        "created_at": "2014-01-01T05:20:00.12345Z",
        "enabled": true,
        "modified_at": "2014-01-01T05:20:00.12345Z",
        "name": "Block phishing keywords",
        "notes": "Blocks common phishing subject lines",
        "pattern": "urgent.*verify.*account",
        "targets": [
          "SUBJECT"
        ]
      }
    ],
    "puts": [
      {
        "id": "f174e90a-fafe-4643-bbbc-4a0ed4fc8415",
        "created_at": "2014-01-01T05:20:00.12345Z",
        "enabled": true,
        "modified_at": "2014-01-01T05:20:00.12345Z",
        "name": "Block phishing keywords",
        "notes": "Blocks common phishing subject lines",
        "pattern": "urgent.*verify.*account",
        "targets": [
          "SUBJECT"
        ]
      }
    ]
  }
}
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",
        "created_at": "2014-01-01T05:20:00.12345Z",
        "enabled": true,
        "modified_at": "2014-01-01T05:20:00.12345Z",
        "name": "Block phishing keywords",
        "notes": "Blocks common phishing subject lines",
        "pattern": "urgent.*verify.*account",
        "targets": [
          "SUBJECT"
        ]
      }
    ],
    "posts": [
      {
        "id": "f174e90a-fafe-4643-bbbc-4a0ed4fc8415",
        "created_at": "2014-01-01T05:20:00.12345Z",
        "enabled": true,
        "modified_at": "2014-01-01T05:20:00.12345Z",
        "name": "Block phishing keywords",
        "notes": "Blocks common phishing subject lines",
        "pattern": "urgent.*verify.*account",
        "targets": [
          "SUBJECT"
        ]
      }
    ],
    "puts": [
      {
        "id": "f174e90a-fafe-4643-bbbc-4a0ed4fc8415",
        "created_at": "2014-01-01T05:20:00.12345Z",
        "enabled": true,
        "modified_at": "2014-01-01T05:20:00.12345Z",
        "name": "Block phishing keywords",
        "notes": "Blocks common phishing subject lines",
        "pattern": "urgent.*verify.*account",
        "targets": [
          "SUBJECT"
        ]
      }
    ]
  }
}