# Custom Topics ## Get AI Security for Apps Custom Topics `ai_security.custom_topics.get(CustomTopicGetParams**kwargs) -> CustomTopicGetResponse` **get** `/zones/{zone_id}/ai-security/custom-topics` Get the AI Security for Apps custom topic categories for a zone. ### Parameters - `zone_id: str` Defines the zone. ### Returns - `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. - `topic: str` Description of the topic category. Must contain only printable ASCII characters. ### Example ```python 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) ``` #### Response ```json { "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 } ``` ## Set AI Security for Apps Custom Topics `ai_security.custom_topics.update(CustomTopicUpdateParams**kwargs) -> CustomTopicUpdateResponse` **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. ### Parameters - `zone_id: str` Defines the zone. - `topics: Optional[Iterable[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. - `topic: str` Description of the topic category. Must contain only printable ASCII characters. ### Returns - `class CustomTopicUpdateResponse: …` - `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. - `topic: str` Description of the topic category. Must contain only printable ASCII characters. ### Example ```python 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.update( zone_id="023e105f4ecef8ad9ca31a8372d0c353", ) print(custom_topic.topics) ``` #### Response ```json { "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 } ``` ## Domain Types ### Custom Topic Get Response - `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. - `topic: str` Description of the topic category. Must contain only printable ASCII characters. ### Custom Topic Update Response - `class CustomTopicUpdateResponse: …` - `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. - `topic: str` Description of the topic category. Must contain only printable ASCII characters.