Skip to content
Start here

Set AI Security for Apps Custom Topics

client.aiSecurity.customTopics.update(CustomTopicUpdateParams { zone_id, topics } params, RequestOptionsoptions?): CustomTopicUpdateResponse { topics }
PUT/zones/{zone_id}/ai-security/custom-topics

Set the AI Security for Apps custom topic categories for a zone.

A maximum of 20 custom topics can be configured per zone. Each topic label must be 2–20 characters using only lowercase letters (a–z), digits (0–9), and hyphens. Each topic description must be 2–50 printable ASCII characters.

Changes can take up to a minute to propagate to the zone.

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
ParametersExpand Collapse
params: CustomTopicUpdateParams { zone_id, topics }
zone_id: string

Path param: Defines the zone.

maxLength32
topics?: Array<Topic>

Body param: Custom topic categories for AI Security for Apps content detection.

label: string

Unique label identifier. Must contain only lowercase letters (a–z), digits (0–9), and hyphens.

maxLength20
minLength2
topic: string

Description of the topic category. Must contain only printable ASCII characters.

maxLength50
minLength2
ReturnsExpand Collapse
CustomTopicUpdateResponse { topics }
topics?: Array<Topic>

Custom topic categories for AI Security for Apps content detection.

label: string

Unique label identifier. Must contain only lowercase letters (a–z), digits (0–9), and hyphens.

maxLength20
minLength2
topic: string

Description of the topic category. Must contain only printable ASCII characters.

maxLength50
minLength2

Set AI Security for Apps Custom Topics

import Cloudflare from 'cloudflare';

const client = new Cloudflare({
  apiToken: process.env['CLOUDFLARE_API_TOKEN'], // This is the default and can be omitted
});

const customTopic = await client.aiSecurity.customTopics.update({
  zone_id: '023e105f4ecef8ad9ca31a8372d0c353',
});

console.log(customTopic.topics);
{
  "errors": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "messages": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "result": {
    "topics": [
      {
        "label": "credit-cards",
        "topic": "credit card numbers"
      }
    ]
  },
  "success": true
}
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"
      }
    }
  ],
  "result": {
    "topics": [
      {
        "label": "credit-cards",
        "topic": "credit card numbers"
      }
    ]
  },
  "success": true
}