Skip to content
Start here

Get the AI Security for Apps custom topics of a zone.

ai_security.custom_topics.get(CustomTopicGetParams**kwargs) -> CustomTopicGetResponse
GET/zones/{zone_id}/ai-security/custom-topics

Get the custom topic categories defined for the zone. While AI Security for Apps is enabled, it scores every incoming prompt against these topics and writes the scores to the cf.llm.prompt.custom_topic_categories field, keyed by topic label. Topics can be configured while the detection is disabled, but no prompt is scored until you enable it.

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
zone_id: str

Defines the zone.

maxLength32
ReturnsExpand Collapse
class CustomTopicGetResponse:
topics: Optional[List[Topic]]

Custom topic categories for AI Security for Apps content detection.

label: str

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

maxLength20
minLength2
topic: str

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

maxLength50
minLength2

Get the AI Security for Apps custom topics of a zone.

import os
from cloudflare import Cloudflare

client = Cloudflare(
    api_token=os.environ.get("CLOUDFLARE_API_TOKEN"),  # This is the default and can be omitted
)
custom_topic = client.ai_security.custom_topics.get(
    zone_id="023e105f4ecef8ad9ca31a8372d0c353",
)
print(custom_topic.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
}