Skip to content
Start here

Update CSAM Scanner setting

client.CsamScanner.Edit(ctx, params) (*CsamScannerEditResponse, error)
PATCH/zones/{zone_id}/settings/csam_scanner_third_party

Update the CSAM Scanner configuration for a zone. Allows enabling or disabling CSAM scanning, updating the notification email, and configuring scanning sources.

When a new email is provided, email verification is triggered automatically. The enabled field is a toggle; the server may adjust it based on whether the notification email is verified.

Returns 403 if the zone or account is locked by Trust & Safety.

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)
Zone Settings Write
ParametersExpand Collapse
params CsamScannerEditParams
ZoneID param.Field[string]

Path param: Identifier for the zone.

maxLength32
minLength1
ID param.Field[CsamScannerEditParamsID]Optional

Body param: The feature identifier.

const CsamScannerEditParamsIDCsamScanner CsamScannerEditParamsID = "csam_scanner"
Value param.Field[CsamScannerEditParamsValue]Optional

Body param: Writable CSAM Scanner feature configuration values.

Email stringOptional

Notification email address for CSAM scan results. When changed, email verification is triggered automatically.

maxLength254
Enabled boolOptional

Whether CSAM scanning is enabled for this zone.

ResendEmail boolOptional

Set to true to trigger re-sending the email verification. Write-only; never appears in responses (omitted when false).

Sources map[string, bool]Optional

Map of scanning sources and their enabled state.

ReturnsExpand Collapse
type CsamScannerEditResponse struct{…}

CSAM Scanner configuration for a zone.

ID CsamScannerEditResponseIDOptional

The feature identifier.

Editable boolOptional

Whether the feature state can be changed. When false, the zone or account may be locked by Trust & Safety.

ModifiedOn TimeOptional

When the setting was last modified. Currently always null as the server does not populate this field.

formatdate-time
Value CsamScannerEditResponseValueOptional

The CSAM Scanner feature configuration values. Contains the notification email and scanning enablement settings.

Email stringOptional

Notification email address for CSAM scan results. Masked in responses unless explicitly unmasked via admin endpoint.

maxLength254
EmailState CsamScannerEditResponseValueEmailStateOptional

Current verification state of the notification email.

One of the following:
const CsamScannerEditResponseValueEmailStateValid CsamScannerEditResponseValueEmailState = "valid"
const CsamScannerEditResponseValueEmailStatePending CsamScannerEditResponseValueEmailState = "pending"
const CsamScannerEditResponseValueEmailStateUnverified CsamScannerEditResponseValueEmailState = "unverified"
Enabled boolOptional

Whether CSAM scanning is enabled for this zone.

Sources map[string, bool]Optional

Map of scanning sources and their enabled state.

ZonePlan stringOptional

The zone’s plan level.

Update CSAM Scanner setting

package main

import (
  "context"
  "fmt"

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

func main() {
  client := cloudflare.NewClient(
    option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"),
  )
  response, err := client.CsamScanner.Edit(context.TODO(), csam_scanner.CsamScannerEditParams{
    ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"),
  })
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", response.ID)
}
{
  "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": {
    "id": "csam_scanner",
    "editable": true,
    "modified_on": "2019-12-27T18:11:19.117Z",
    "value": {
      "email": "**********",
      "email_state": "valid",
      "enabled": true,
      "sources": {
        "source1": true
      },
      "zone_plan": "ent"
    }
  }
}
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": {
    "id": "csam_scanner",
    "editable": true,
    "modified_on": "2019-12-27T18:11:19.117Z",
    "value": {
      "email": "**********",
      "email_state": "valid",
      "enabled": true,
      "sources": {
        "source1": true
      },
      "zone_plan": "ent"
    }
  }
}