Appearance
Moderation
About 10144 wordsAbout 34 min
Curl SDK - Moderation API
Table of Contents
- insert_action_log
- appeal
- get_appeal
- query_appeals
- ban
- bulk_image_moderation
- bypass
- check
- check_s3_access
- upsert_config
- get_config
- delete_config
- query_moderation_configs
- custom_check
- V2QueryTemplates
- V2UpsertTemplate
- V2DeleteTemplate
- flag
- get_flag_count
- query_moderation_flags
- query_moderation_logs
- upsert_moderation_rule
- get_moderation_rule
- delete_moderation_rule
- query_moderation_rules
- mute
- query_review_queue
- get_review_queue_item
- submit_action
- unban
- unmute
- Types Reference
insert_action_log
Logs a moderation action for tracking and auditing purposes. Use this method to maintain a record of all moderation activities.
Example
curl -X POST "https://chat.stream-io-api.com/api/v2/moderation/action_logs" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt" \
-d '{
"action_type": "example_value",
"entity_creator_id": "example_value",
"entity_id": "example_value",
"entity_type": "example_value",
"custom": {},
"reason": "example_value"
}'Response: InsertActionLogResponse
Parameters
Request Body:
action_type(string) (required): Type of moderation action takencustom(object): Custom metadata for the action logentity_creator_id(string) (required): ID of the user who created the entityentity_id(string) (required): ID of the entity the action was taken onentity_type(string) (required): Type of entity the action was taken onreason(string): Reason for the action
appeal
Submit an appeal to contest a moderation decision, useful when you believe content was wrongly flagged.
Example
curl -X POST "https://chat.stream-io-api.com/api/v2/moderation/appeal" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt" \
-d '{
"appeal_reason": "example_value",
"entity_id": "example_value",
"entity_type": "example_value",
"user": { "id": "example-id", "custom": {} },
"user_id": "user-123"
}'Example: with attachments
curl -X POST "https://chat.stream-io-api.com/api/v2/moderation/appeal" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt" \
-d '{
"appeal_reason": "example_value",
"entity_id": "example_value",
"entity_type": "example_value",
"attachments": ["value1", "value2"]
}'Response: AppealResponse
Parameters
Request Body:
appeal_reason(string) (required): Explanation for why the content is being appealedattachments([]string): Array of Attachment URLs(e.g., images)entity_id(string) (required): Unique identifier of the entity being appealedentity_type(string) (required): Type of entity being appealed (e.g., message, user)user(UserRequest)user_id(string)
get_appeal
Retrieve details of a specific appeal, helping you track the status and outcome of your contestation.
Example
curl -X GET "https://chat.stream-io-api.com/api/v2/moderation/appeal/example-id" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt"Response: GetAppealResponse
Parameters
Path Parameters:
id(string) (required)
query_appeals
Search and filter through submitted appeals to efficiently manage and review moderation contests.
Example
curl -X POST "https://chat.stream-io-api.com/api/v2/moderation/appeals" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt" \
-d '{
"limit": 1,
"user_id": "user-123"
}'Example: with filter and sort
curl -X POST "https://chat.stream-io-api.com/api/v2/moderation/appeals" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt" \
-d '{
"filter": {},
"sort": [{ "direction": 1 }]
}'Example: with next and user
curl -X POST "https://chat.stream-io-api.com/api/v2/moderation/appeals" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt" \
-d '{
"next": "example_value",
"user": { "id": "example-id", "custom": {} }
}'Example: with prev
curl -X POST "https://chat.stream-io-api.com/api/v2/moderation/appeals" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt" \
-d '{
"prev": "example_value"
}'Response: QueryAppealsResponse
Parameters
Request Body:
filter(object): Filter conditions for appealslimit(int)next(string)prev(string)sort([]SortParamRequest): Sorting parameters for appealsuser(UserRequest)user_id(string)
ban
Enforce a ban on a user or content, ideal for preventing access or sharing of harmful material.
Example
curl -X POST "https://chat.stream-io-api.com/api/v2/moderation/ban" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt" \
-d '{
"target_user_id": "user-123",
"banned_by": { "id": "example-id", "custom": {} },
"banned_by_id": "example_value"
}'Example: with channel_cid and delete_messages
curl -X POST "https://chat.stream-io-api.com/api/v2/moderation/ban" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt" \
-d '{
"target_user_id": "user-123",
"channel_cid": "example_value",
"delete_messages": "example_value"
}'Example: with ip_ban and reason
curl -X POST "https://chat.stream-io-api.com/api/v2/moderation/ban" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt" \
-d '{
"target_user_id": "user-123",
"ip_ban": true,
"reason": "example_value"
}'Example: with shadow and timeout
curl -X POST "https://chat.stream-io-api.com/api/v2/moderation/ban" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt" \
-d '{
"target_user_id": "user-123",
"shadow": true,
"timeout": 1
}'Response: BanResponse
Parameters
Request Body:
banned_by(UserRequest): Details about the user performing the banbanned_by_id(string): ID of the user performing the banchannel_cid(string): Channel where the ban appliesdelete_messages(string)ip_ban(bool): Whether to ban the user's IP addressreason(string): Optional explanation for the banshadow(bool): Whether this is a shadow bantarget_user_id(string) (required): ID of the user to bantimeout(int): Duration of the ban in minutes
bulk_image_moderation
Evaluate multiple images simultaneously for compliance with moderation policies, saving time when processing large datasets.
Example
curl -X POST "https://chat.stream-io-api.com/api/v2/moderation/bulk_image_moderation" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt" \
-d '{
"csv_file": "example_value"
}'Response: BulkImageModerationResponse
Parameters
Request Body:
csv_file(string) (required): URL to CSV file containing image URLs to moderate
bypass
Allows specific content to bypass the moderation process. Use this method to exempt trusted content from moderation checks.
Example
curl -X POST "https://chat.stream-io-api.com/api/v2/moderation/bypass" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt" \
-d '{
"enabled": true,
"target_user_id": "user-123"
}'Response: BypassResponse
Parameters
Request Body:
enabled(bool) (required): Whether to enable moderation bypass for this usertarget_user_id(string) (required): ID of the user to update
check
Assess content against moderation rules to quickly determine if it meets policy standards.
Example
curl -X POST "https://chat.stream-io-api.com/api/v2/moderation/check" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt" \
-d '{
"entity_creator_id": "example_value",
"entity_id": "example_value",
"entity_type": "example_value",
"config_key": "example_value",
"user_id": "user-123"
}'Example: with config_team and content_published_at
curl -X POST "https://chat.stream-io-api.com/api/v2/moderation/check" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt" \
-d '{
"entity_creator_id": "example_value",
"entity_id": "example_value",
"entity_type": "example_value",
"config_team": "example_value",
"content_published_at": 1.0
}'Example: with moderation_payload and options
curl -X POST "https://chat.stream-io-api.com/api/v2/moderation/check" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt" \
-d '{
"entity_creator_id": "example_value",
"entity_id": "example_value",
"entity_type": "example_value",
"moderation_payload": { "custom": {} },
"options": {}
}'Example: with test_mode and user
curl -X POST "https://chat.stream-io-api.com/api/v2/moderation/check" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt" \
-d '{
"entity_creator_id": "example_value",
"entity_id": "example_value",
"entity_type": "example_value",
"test_mode": true,
"user": { "id": "example-id", "custom": {} }
}'Response: CheckResponse
Parameters
Request Body:
config(ModerationConfig): Custom moderation configuration (test mode only)config_key(string): Key of the moderation configuration to useconfig_team(string): Team associated with the configurationcontent_published_at(float): Original timestamp when the content was produced (for correlating flagged content with source video timeline)entity_creator_id(string) (required): ID of the user who created the entityentity_id(string) (required): Unique identifier of the entity to moderateentity_type(string) (required): Type of entity to moderatemoderation_payload(ModerationPayload): Content to be moderatedoptions(object): Additional moderation configuration optionstest_mode(bool): Whether to run moderation in test modeuser(UserRequest)user_id(string)
check_s3_access
Verifies access permissions for an image stored in S3. Use this method to ensure that images can be accessed for moderation or display.
Example
curl -X POST "https://chat.stream-io-api.com/api/v2/moderation/check_s3_access" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt" \
-d '{
"s3_url": "https://example.com"
}'Response: CheckS3AccessResponse
Parameters
Request Body:
s3_url(string): Optional stream+s3:// reference to test access against
upsert_config
Create or update moderation settings to ensure your content policies are current and effective.
Example
curl -X POST "https://chat.stream-io-api.com/api/v2/moderation/config" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt" \
-d '{
"key": "example_value",
"ai_text_config": { "async": true },
"user_id": "user-123"
}'Example: with ai_video_config and async
curl -X POST "https://chat.stream-io-api.com/api/v2/moderation/config" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt" \
-d '{
"key": "example_value",
"ai_video_config": { "async": true },
"async": true
}'Example: with automod_platform_circumvention_config and automod_semantic_filters_config
curl -X POST "https://chat.stream-io-api.com/api/v2/moderation/config" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt" \
-d '{
"key": "example_value",
"automod_platform_circumvention_config": { "async": true },
"automod_semantic_filters_config": { "async": true }
}'Example: with automod_toxicity_config and aws_rekognition_config
curl -X POST "https://chat.stream-io-api.com/api/v2/moderation/config" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt" \
-d '{
"key": "example_value",
"automod_toxicity_config": { "async": true },
"aws_rekognition_config": { "async": true }
}'Response: UpsertConfigResponse
Parameters
Request Body:
ai_image_config(AIImageConfig): Configuration for AI image analysisai_text_config(AITextConfig): Configuration for AI text analysisai_video_config(AIVideoConfig): Configuration for AI video analysisasync(bool): Whether moderation should be performed asynchronouslyautomod_platform_circumvention_config(AutomodPlatformCircumventionConfig): Configuration for platform circumvention detectionautomod_semantic_filters_config(AutomodSemanticFiltersConfig): Configuration for semantic filteringautomod_toxicity_config(AutomodToxicityConfig): Configuration for toxicity detectionaws_rekognition_config(AIImageConfig)block_list_config(BlockListConfig): Configuration for block list filteringbodyguard_config(AITextConfig)google_vision_config(GoogleVisionConfig): Configuration for Google Vision integrationkey(string) (required): Unique identifier for the moderation configurationllm_config(LLMConfig): Configuration for customer-configured LLM moderationrule_builder_config(RuleBuilderConfig): Configuration for custom rule builder (max 3 rules, max 5 conditions per rule)team(string): Team associated with the configurationuser(UserRequest)user_id(string): Optional user ID to associate with the audit log entryvelocity_filter_config(VelocityFilterConfig): Configuration for velocity-based filteringvideo_call_rule_config(VideoCallRuleConfig)
get_config
Access your current moderation settings to review and ensure alignment with your content guidelines.
Example
curl -X GET "https://chat.stream-io-api.com/api/v2/moderation/config/example_value?" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt"Response: GetConfigResponse
Parameters
Path Parameters:
key(string) (required)
Query Parameters:
team(string)
delete_config
Remove an existing moderation policy when it is no longer needed or requires overhaul.
Example
curl -X DELETE "https://chat.stream-io-api.com/api/v2/moderation/config/example_value?" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt"Response: DeleteModerationConfigResponse
Parameters
Path Parameters:
key(string) (required)
Query Parameters:
team(string)user_id(string)
query_moderation_configs
Search through moderation configurations to efficiently manage and update your content policies.
Example
curl -X POST "https://chat.stream-io-api.com/api/v2/moderation/configs" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt" \
-d '{
"limit": 1,
"user_id": "user-123"
}'Example: with filter and sort
curl -X POST "https://chat.stream-io-api.com/api/v2/moderation/configs" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt" \
-d '{
"filter": {},
"sort": [{ "direction": 1 }]
}'Example: with next and user
curl -X POST "https://chat.stream-io-api.com/api/v2/moderation/configs" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt" \
-d '{
"next": "example_value",
"user": { "id": "example-id", "custom": {} }
}'Example: with prev
curl -X POST "https://chat.stream-io-api.com/api/v2/moderation/configs" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt" \
-d '{
"prev": "example_value"
}'Response: QueryModerationConfigsResponse
Parameters
Request Body:
filter(object): Filter conditions for moderation configslimit(int)next(string)prev(string)sort([]SortParamRequest): Sorting parameters for the resultsuser(UserRequest)user_id(string)
custom_check
Use this method to perform a custom moderation check on specific content, ideal for scenarios requiring tailored moderation rules.
Example
curl -X POST "https://chat.stream-io-api.com/api/v2/moderation/custom_check" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt" \
-d '{
"entity_id": "example_value",
"entity_type": "example_value",
"flags": [{ "type": "messaging", "custom": {} }],
"moderation_payload": { "custom": {} },
"user_id": "user-123"
}'Example: with user and entity_creator_id
curl -X POST "https://chat.stream-io-api.com/api/v2/moderation/custom_check" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt" \
-d '{
"entity_id": "example_value",
"entity_type": "example_value",
"flags": [{ "type": "messaging", "custom": {} }],
"entity_creator_id": "example_value",
"user": { "id": "example-id", "custom": {} }
}'Response: CustomCheckResponse
Parameters
Request Body:
entity_creator_id(string): ID of the user who created the entity (required for non-message entities)entity_id(string) (required): Unique identifier of the entityentity_type(string) (required): Type of entity to perform custom check onflags([]CustomCheckFlag) (required): List of custom check flags (1-10 flags required)moderation_payload(ModerationPayloadRequest): Content to be checked (required for non-message entities)user(UserRequest)user_id(string)
V2QueryTemplates
Retrieve existing moderation templates to understand and manage predefined moderation settings, useful for auditing or adjusting moderation strategies.
Example
curl -X GET "https://chat.stream-io-api.com/api/v2/moderation/feeds_moderation_template" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt"Response: QueryFeedModerationTemplatesResponse
V2UpsertTemplate
Create or update moderation templates to customize how content is moderated based on evolving community standards or requirements.
Example
curl -X POST "https://chat.stream-io-api.com/api/v2/moderation/feeds_moderation_template" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt" \
-d '{
"config": { "data_types": {}, "config_key": "example_value" },
"name": "Example Name"
}'Response: UpsertModerationTemplateResponse
Parameters
Request Body:
config(FeedsModerationTemplateConfigPayload) (required): Configuration for the moderation templatename(string) (required): Name of the moderation template
V2DeleteTemplate
Remove a specific moderation template when it is no longer needed, helping to streamline and simplify your moderation processes.
Example
curl -X DELETE "https://chat.stream-io-api.com/api/v2/moderation/feeds_moderation_template" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt"Response: DeleteModerationTemplateResponse
flag
Mark content that needs to be reviewed by the moderation team, ensuring that potentially harmful or inappropriate content is addressed promptly.
Example
curl -X POST "https://chat.stream-io-api.com/api/v2/moderation/flag" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt" \
-d '{
"entity_id": "example_value",
"entity_type": "example_value",
"entity_creator_id": "example_value",
"user_id": "user-123"
}'Example: with moderation_payload and reason
curl -X POST "https://chat.stream-io-api.com/api/v2/moderation/flag" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt" \
-d '{
"entity_id": "example_value",
"entity_type": "example_value",
"moderation_payload": { "custom": {} },
"reason": "example_value"
}'Example: with user and custom
curl -X POST "https://chat.stream-io-api.com/api/v2/moderation/flag" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt" \
-d '{
"entity_id": "example_value",
"entity_type": "example_value",
"custom": {},
"user": { "id": "example-id", "custom": {} }
}'Response: FlagResponse
Parameters
Request Body:
custom(object): Additional metadata about the flagentity_creator_id(string): ID of the user who created the flagged entityentity_id(string) (required): Unique identifier of the entity being flaggedentity_type(string) (required): Type of entity being flagged (e.g., message, user)moderation_payload(ModerationPayload): Content being flaggedreason(string): Optional explanation for why the content is being flaggeduser(UserRequest)user_id(string)
get_flag_count
Retrieves the total number of flags associated with a specific user. Use this method to monitor and manage user behavior by tracking their flagged content.
Example
curl -X POST "https://chat.stream-io-api.com/api/v2/moderation/flag_count" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt" \
-d '{
"entity_creator_id": "example_value",
"entity_type": "example_value"
}'Response: GetFlagCountResponse
Parameters
Request Body:
entity_creator_id(string) (required): ID of the user whose content was flaggedentity_type(string): Optional entity type filter (e.g., stream:chat:v1:message, stream:user)
query_moderation_flags
Retrieve information about all content currently flagged for moderation, helping moderators prioritize and manage their review queue efficiently.
Example
curl -X POST "https://chat.stream-io-api.com/api/v2/moderation/flags" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt" \
-d '{
"filter": {},
"limit": 1
}'Example: with sort and prev
curl -X POST "https://chat.stream-io-api.com/api/v2/moderation/flags" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt" \
-d '{
"prev": "example_value",
"sort": [{ "direction": 1 }]
}'Example: with next
curl -X POST "https://chat.stream-io-api.com/api/v2/moderation/flags" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt" \
-d '{
"next": "example_value"
}'Response: QueryModerationFlagsResponse
Parameters
Request Body:
filter(object)limit(int)next(string)prev(string)sort([]SortParamRequest)
query_moderation_logs
Access records of past moderation actions to review decisions made, ensuring accountability and facilitating the analysis of moderation effectiveness.
Example
curl -X POST "https://chat.stream-io-api.com/api/v2/moderation/logs" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt" \
-d '{
"limit": 1,
"user_id": "user-123"
}'Example: with filter and sort
curl -X POST "https://chat.stream-io-api.com/api/v2/moderation/logs" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt" \
-d '{
"filter": {},
"sort": [{ "direction": 1 }]
}'Example: with next and user
curl -X POST "https://chat.stream-io-api.com/api/v2/moderation/logs" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt" \
-d '{
"next": "example_value",
"user": { "id": "example-id", "custom": {} }
}'Example: with prev
curl -X POST "https://chat.stream-io-api.com/api/v2/moderation/logs" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt" \
-d '{
"prev": "example_value"
}'Response: QueryModerationLogsResponse
Parameters
Request Body:
filter(object): Filter conditions for moderation logslimit(int)next(string)prev(string)sort([]SortParamRequest): Sorting parameters for the resultsuser(UserRequest)user_id(string)
upsert_moderation_rule
Create or update a moderation rule to adapt to changing content requirements or community guidelines, ensuring effective content management.
Example
curl -X POST "https://chat.stream-io-api.com/api/v2/moderation/moderation_rule" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt" \
-d '{
"name": "Example Name",
"rule_type": "example_value",
"action_sequences": [{ "actions": ["value1", "value2"] }],
"user_id": "user-123"
}'Example: with conditions and config_keys
curl -X POST "https://chat.stream-io-api.com/api/v2/moderation/moderation_rule" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt" \
-d '{
"name": "Example Name",
"rule_type": "example_value",
"conditions": [{ "call_custom_property_params": { "operator": "example_value" } }],
"config_keys": ["value1", "value2"]
}'Example: with cooldown_period and description
curl -X POST "https://chat.stream-io-api.com/api/v2/moderation/moderation_rule" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt" \
-d '{
"name": "Example Name",
"rule_type": "example_value",
"cooldown_period": "example_value",
"description": "example_value"
}'Example: with enabled and groups
curl -X POST "https://chat.stream-io-api.com/api/v2/moderation/moderation_rule" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt" \
-d '{
"name": "Example Name",
"rule_type": "example_value",
"enabled": true,
"groups": [{ "conditions": [{ "call_custom_property_params": { "operator": "example_value" } }] }]
}'Response: UpsertModerationRuleResponse
Parameters
Request Body:
action(RuleBuilderAction): Action for user/content rulesaction_sequences([]CallRuleActionSequence): Escalation sequences for call rulesconditions([]RuleBuilderCondition): Flat list of conditions (legacy)config_keys([]string): List of config keys this rule applies tocooldown_period(string): Duration before rule can trigger again (e.g. 24h, 7d)description(string): Optional description of the ruleenabled(bool): Whether the rule is activegroups([]RuleBuilderConditionGroup): Nested condition groupslogic(string): Logical operator between conditions/groups: AND or ORname(string) (required): Unique rule namerule_type(string) (required): Type of rule: user, content, or callteam(string): Team scope for the ruleuser(UserRequest)user_id(string): Optional user ID to associate with the audit log entry
get_moderation_rule
Fetch details of a specific moderation rule to understand its parameters and ensure it aligns with current moderation goals and policies.
Example
curl -X GET "https://chat.stream-io-api.com/api/v2/moderation/moderation_rule/{id}" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt"Response: GetModerationRuleResponse
delete_moderation_rule
Remove a moderation rule that is outdated or no longer relevant, helping maintain a clean and efficient moderation system.
Example
curl -X DELETE "https://chat.stream-io-api.com/api/v2/moderation/moderation_rule/{id}?" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt"Response: DeleteModerationRuleResponse
Parameters
Query Parameters:
user_id(string)
query_moderation_rules
Retrieve the list of moderation rules to understand and manage the criteria for content review. Use this method to ensure compliance with current moderation policies.
Example
curl -X POST "https://chat.stream-io-api.com/api/v2/moderation/moderation_rules" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt" \
-d '{
"limit": 1,
"user_id": "user-123"
}'Example: with filter and sort
curl -X POST "https://chat.stream-io-api.com/api/v2/moderation/moderation_rules" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt" \
-d '{
"filter": {},
"sort": [{ "direction": 1 }]
}'Example: with next and user
curl -X POST "https://chat.stream-io-api.com/api/v2/moderation/moderation_rules" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt" \
-d '{
"next": "example_value",
"user": { "id": "example-id", "custom": {} }
}'Example: with prev
curl -X POST "https://chat.stream-io-api.com/api/v2/moderation/moderation_rules" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt" \
-d '{
"prev": "example_value"
}'Response: QueryModerationRulesResponse
Parameters
Request Body:
filter(object): Filter conditions for moderation ruleslimit(int)next(string)prev(string)sort([]SortParamRequest): Sorting parameters for the resultsuser(UserRequest)user_id(string)
mute
Temporarily silence a user to prevent them from posting or interacting on the platform. Use it to manage disruptive behavior without permanently removing the user.
Example
curl -X POST "https://chat.stream-io-api.com/api/v2/moderation/mute" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt" \
-d '{
"target_ids": ["id-1", "id-2"],
"user": { "id": "example-id", "custom": {} },
"user_id": "user-123"
}'Example: with timeout
curl -X POST "https://chat.stream-io-api.com/api/v2/moderation/mute" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt" \
-d '{
"target_ids": ["id-1", "id-2"],
"timeout": 1
}'Response: MuteResponse
Parameters
Request Body:
target_ids([]string) (required): User IDs to mute (if multiple users)timeout(int): Duration of mute in minutesuser(UserRequest)user_id(string)
query_review_queue
Access the list of items awaiting moderation review to prioritize and manage content evaluation. Utilize this method to efficiently handle pending content checks.
Example
curl -X POST "https://chat.stream-io-api.com/api/v2/moderation/review_queue" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt" \
-d '{
"limit": 1,
"user_id": "user-123"
}'Example: with filter and sort
curl -X POST "https://chat.stream-io-api.com/api/v2/moderation/review_queue" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt" \
-d '{
"filter": {},
"sort": [{ "direction": 1 }]
}'Example: with lock_items and next
curl -X POST "https://chat.stream-io-api.com/api/v2/moderation/review_queue" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt" \
-d '{
"lock_items": true,
"next": "example_value"
}'Example: with prev and lock_count
curl -X POST "https://chat.stream-io-api.com/api/v2/moderation/review_queue" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt" \
-d '{
"lock_count": 1,
"prev": "example_value"
}'Response: QueryReviewQueueResponse
Parameters
Request Body:
filter(object): Filter conditions for review queue itemslimit(int)lock_count(int): Number of items to lock (1-25)lock_duration(int): Duration for which items should be lockedlock_items(bool): Whether to lock items for review (true), unlock items (false), or just fetch (nil)next(string)prev(string)sort([]SortParamRequest): Sorting parameters for the resultsstats_only(bool): Whether to return only statisticsuser(UserRequest)user_id(string)
get_review_queue_item
Retrieve detailed information about a specific item in the moderation review queue. Use this to assess and make informed decisions on individual content pieces.
Example
curl -X GET "https://chat.stream-io-api.com/api/v2/moderation/review_queue/example-id" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt"Response: GetReviewQueueItemResponse
Parameters
Path Parameters:
id(string) (required)
submit_action
Perform a moderation action on a specific item, such as approving or rejecting content. Use this method to enforce moderation decisions promptly.
Example
curl -X POST "https://chat.stream-io-api.com/api/v2/moderation/submit_action" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt" \
-d '{
"action_type": "example_value",
"ban": { "ban_from_future_channels": true },
"user_id": "user-123"
}'Example: with block and bypass
curl -X POST "https://chat.stream-io-api.com/api/v2/moderation/submit_action" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt" \
-d '{
"action_type": "example_value",
"block": { "reason": "example_value" },
"bypass": { "enabled": true }
}'Example: with custom and delete_activity
curl -X POST "https://chat.stream-io-api.com/api/v2/moderation/submit_action" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt" \
-d '{
"action_type": "example_value",
"custom": { "id": "example-id" },
"delete_activity": { "entity_id": "example_value" }
}'Example: with delete_comment and delete_message
curl -X POST "https://chat.stream-io-api.com/api/v2/moderation/submit_action" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt" \
-d '{
"action_type": "example_value",
"delete_comment": { "entity_id": "example_value" },
"delete_message": { "entity_id": "example_value" }
}'Response: SubmitActionResponse
Parameters
Request Body:
action_type(string) (required): Type of moderation action to perform. One of: mark_reviewed, delete_message, delete_activity, delete_comment, delete_reaction, ban, custom, unban, restore, delete_user, unblock, block, shadow_block, unmask, kick_user, end_call, escalate, de_escalateappeal_id(string): UUID of the appeal to act on (required for reject_appeal, optional for other actions)ban(BanActionRequestPayload): Configuration for ban actionblock(BlockActionRequestPayload): Configuration for block actionbypass(BypassActionRequest): Configuration for bypass moderation actioncustom(CustomActionRequestPayload): Configuration for custom actiondelete_activity(DeleteActivityRequestPayload): Configuration for activity deletion actiondelete_comment(DeleteCommentRequestPayload): Configuration for comment deletion actiondelete_message(DeleteMessageRequestPayload): Configuration for message deletion actiondelete_reaction(DeleteReactionRequestPayload): Configuration for reaction deletion actiondelete_user(DeleteUserRequestPayload): Configuration for user deletion actionescalate(EscalatePayload): Configuration for escalation actionflag(FlagRequest): Configuration for flag actionitem_id(string): UUID of the review queue item to act onmark_reviewed(MarkReviewedRequestPayload): Configuration for marking item as reviewedreject_appeal(RejectAppealRequestPayload): Configuration for rejecting an appealrestore(RestoreActionRequestPayload): Configuration for restore actionshadow_block(ShadowBlockActionRequestPayload): Configuration for shadow block actionunban(UnbanActionRequestPayload): Configuration for unban actionunblock(UnblockActionRequestPayload): Configuration for unblock actionuser(UserRequest)user_id(string)
unban
Lift a user's ban, restoring their ability to access and interact on the platform. Use it to reinstate users who have served their penalty or were mistakenly banned.
Example
curl -X POST "https://chat.stream-io-api.com/api/v2/moderation/unban?target_user_id=user-123" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt" \
-d '{
"unbanned_by": { "id": "example-id", "custom": {} },
"unbanned_by_id": "example_value"
}'Example: with channel_cid and created_by
curl -X POST "https://chat.stream-io-api.com/api/v2/moderation/unban?target_user_id=user-123&channel_cid=example_value&created_by=example_value" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt" \
-d '{
}'Response: UnbanResponse
Parameters
Query Parameters:
target_user_id(string) (required)channel_cid(string)created_by(string)
Request Body:
unbanned_by(UserRequest): Details about the user performing the unbanunbanned_by_id(string): ID of the user performing the unban
unmute
Restore a muted user's ability to participate and communicate on the platform. Use this method to re-enable user interaction after a temporary mute period.
Example
curl -X POST "https://chat.stream-io-api.com/api/v2/moderation/unmute" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt" \
-d '{
"target_ids": ["id-1", "id-2"],
"user": { "id": "example-id", "custom": {} },
"user_id": "user-123"
}'Response: UnmuteResponse
Parameters
Request Body:
target_ids([]string) (required): User IDs to unmuteuser(UserRequest)user_id(string)
Types Reference
This section documents the types/interfaces used in this API. These types are extracted from the OpenAPI specification.
AIImageConfig
// AIImageConfig
{
"async": false,
"enabled": false,
"ocr_rules": [],
"rules": []
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| async | boolean | No | |
| enabled | boolean | No | |
| ocr_rules | OCRRule[] | No | |
| rules | AWSRekognitionRule[] | No |
AIImageLabelDefinition
// AIImageLabelDefinition
{
"description": "string",
"group": "string",
"key": "string",
"label": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| description | string | Yes | |
| group | string | Yes | |
| key | string | Yes | |
| label | string | Yes |
AITextConfig
// AITextConfig
{
"async": false,
"enabled": false,
"profile": "string",
"rules": [],
"severity_rules": []
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| async | boolean | No | |
| enabled | boolean | No | |
| profile | string | No | |
| rules | BodyguardRule[] | No | |
| severity_rules | BodyguardSeverityRule[] | No |
AIVideoConfig
// AIVideoConfig
{
"async": false,
"enabled": false,
"rules": []
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| async | boolean | No | |
| enabled | boolean | No | |
| rules | AWSRekognitionRule[] | No |
AWSRekognitionRule
// AWSRekognitionRule
{
"action": "flag",
"label": "string",
"min_confidence": 0,
"subclassifications": {}
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| action | 'flag' | 'shadow' | 'remove' |
| label | string | Yes | |
| min_confidence | number | Yes | |
| subclassifications | Record<string, any> | No |
Action
// Action
{
"name": "string",
"style": "string",
"text": "string",
"type": "string",
"value": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| name | string | Yes | |
| text | string | Yes | |
| type | string | Yes | |
| style | string | No | |
| value | string | No |
ActionLogResponse
// ActionLogResponse
{
"ai_providers": [],
"created_at": 0,
"custom": {},
"id": "string",
"reason": "string",
"review_queue_item": ReviewQueueItemResponse,
"target_user": UserResponse,
"target_user_id": "string",
"type": "string",
"user": UserResponse,
"user_id": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| ai_providers | string[] | Yes | |
| created_at | number | Yes | Timestamp when the action was taken |
| custom | Record<string, any> | Yes | Additional metadata about the action |
| id | string | Yes | Unique identifier of the action log |
| reason | string | Yes | Reason for the moderation action |
| target_user_id | string | Yes | ID of the user who was the target of the action |
| type | string | Yes | Type of moderation action |
| user_id | string | Yes | ID of the user who performed the action |
| review_queue_item | ReviewQueueItemResponse | No | Associated review queue item |
| target_user | UserResponse | No | User who was the target of the action |
| user | UserResponse | No | User who performed the action |
ActionSequence
// ActionSequence
{
"action": "string",
"blur": false,
"cooldown_period": 0,
"threshold": 0,
"time_window": 0,
"warning": false,
"warning_text": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| action | string | No | |
| blur | boolean | No | |
| cooldown_period | number | No | |
| threshold | number | No | |
| time_window | number | No | |
| warning | boolean | No | |
| warning_text | string | No |
AppealItemResponse
// AppealItemResponse
{
"appeal_reason": "string",
"attachments": [],
"created_at": 0,
"decision_reason": "string",
"entity_content": ModerationPayload,
"entity_id": "string",
"entity_type": "string",
"id": "string",
"status": "string",
"updated_at": 0,
"user": UserResponse
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| appeal_reason | string | Yes | Reason Text of the Appeal Item |
| created_at | number | Yes | When the flag was created |
| entity_id | string | Yes | ID of the entity |
| entity_type | string | Yes | Type of entity |
| id | string | Yes | |
| status | string | Yes | Status of the Appeal Item |
| updated_at | number | Yes | When the flag was last updated |
| attachments | string[] | No | Attachments(e.g. Images) of the Appeal Item |
| decision_reason | string | No | Decision Reason of the Appeal Item |
| entity_content | ModerationPayload | No | |
| user | UserResponse | No | Details of the user who created the appeal |
AppealRequest
// AppealRequest
{
"appeal_reason": "string",
"attachments": [],
"entity_id": "string",
"entity_type": "string",
"user": UserRequest,
"user_id": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| appeal_reason | string | Yes | Explanation for why the content is being appealed |
| entity_id | string | Yes | Unique identifier of the entity being appealed |
| entity_type | string | Yes | Type of entity being appealed (e.g., message, user) |
| attachments | string[] | No | Array of Attachment URLs(e.g., images) |
| user | UserRequest | No | |
| user_id | string | No |
AppealResponse
// AppealResponse
{
"appeal_id": "string",
"duration": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| appeal_id | string | Yes | Unique identifier of the created Appeal item |
| duration | string | Yes |
Attachment
// Attachment
{
"actions": [],
"asset_url": "string",
"author_icon": "string",
"author_link": "string",
"author_name": "string",
"color": "string",
"custom": {},
"fallback": "string",
"fields": [],
"footer": "string",
"footer_icon": "string",
"giphy": Images,
"image_url": "string",
"og_scrape_url": "string",
"original_height": 0,
"original_width": 0,
"pretext": "string",
"text": "string",
"thumb_url": "string",
"title": "string",
"title_link": "string",
"type": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| custom | Record<string, any> | Yes | |
| actions | Action[] | No | |
| asset_url | string | No | |
| author_icon | string | No | |
| author_link | string | No | |
| author_name | string | No | |
| color | string | No | |
| fallback | string | No | |
| fields | Field[] | No | |
| footer | string | No | |
| footer_icon | string | No | |
| giphy | Images | No | |
| image_url | string | No | |
| og_scrape_url | string | No | |
| original_height | number | No | |
| original_width | number | No | |
| pretext | string | No | |
| text | string | No | |
| thumb_url | string | No | |
| title | string | No | |
| title_link | string | No | |
| type | string | No |
AutomodPlatformCircumventionConfig
// AutomodPlatformCircumventionConfig
{
"async": false,
"enabled": false,
"rules": []
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| async | boolean | No | |
| enabled | boolean | No | |
| rules | AutomodRule[] | No |
AutomodRule
// AutomodRule
{
"action": "flag",
"label": "string",
"threshold": 0
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| action | 'flag' | 'shadow' | 'remove' |
| label | string | Yes | |
| threshold | number | Yes |
AutomodSemanticFiltersConfig
// AutomodSemanticFiltersConfig
{
"async": false,
"enabled": false,
"rules": []
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| async | boolean | No | |
| enabled | boolean | No | |
| rules | AutomodSemanticFiltersRule[] | No |
AutomodSemanticFiltersRule
// AutomodSemanticFiltersRule
{
"action": "flag",
"name": "string",
"threshold": 0
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| action | 'flag' | 'shadow' | 'remove' |
| name | string | Yes | |
| threshold | number | Yes |
AutomodToxicityConfig
// AutomodToxicityConfig
{
"async": false,
"enabled": false,
"rules": []
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| async | boolean | No | |
| enabled | boolean | No | |
| rules | AutomodRule[] | No |
BanActionRequestPayload
Configuration for ban moderation action
// BanActionRequestPayload
{
"ban_from_future_channels": false,
"channel_ban_only": false,
"channel_cid": "string",
"delete_messages": "soft",
"ip_ban": false,
"reason": "string",
"shadow": false,
"target_user_id": "string",
"timeout": 0
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| ban_from_future_channels | boolean | No | Also ban user from all channels this moderator creates in the future |
| channel_ban_only | boolean | No | Ban only from specific channel |
| channel_cid | string | No | |
| delete_messages | 'soft' | 'pruning' | 'hard' |
| ip_ban | boolean | No | Whether to ban by IP address |
| reason | string | No | Reason for the ban |
| shadow | boolean | No | Whether this is a shadow ban |
| target_user_id | string | No | Optional: ban user directly without review item |
| timeout | number | No | Duration of ban in minutes |
BanOptions
// BanOptions
{
"delete_messages": "soft",
"duration": 0,
"ip_ban": false,
"reason": "string",
"shadow_ban": false
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| delete_messages | 'soft' | 'pruning' | 'hard' |
| duration | number | No | |
| ip_ban | boolean | No | |
| reason | string | No | |
| shadow_ban | boolean | No |
BanResponse
// BanResponse
{
"duration": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | string | Yes |
BlockActionRequestPayload
Configuration for block action
// BlockActionRequestPayload
{
"reason": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| reason | string | No | Reason for blocking |
BlockListConfig
// BlockListConfig
{
"async": false,
"enabled": false,
"match_substring": false,
"rules": []
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| async | boolean | No | |
| enabled | boolean | No | |
| match_substring | boolean | No | |
| rules | BlockListRule[] | No |
BlockListRule
// BlockListRule
{
"action": "flag",
"name": "string",
"team": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| action | 'flag' | 'mask_flag' | 'shadow' |
| name | string | No | |
| team | string | No |
BodyguardImageAnalysisConfig
// BodyguardImageAnalysisConfig
{
"rules": []
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| rules | BodyguardRule[] | No |
BodyguardRule
// BodyguardRule
{
"action": "flag",
"label": "string",
"severity_rules": []
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| label | string | Yes | |
| action | 'flag' | 'shadow' | 'remove' |
| severity_rules | BodyguardSeverityRule[] | No |
BodyguardSeverityRule
// BodyguardSeverityRule
{
"action": "flag",
"severity": "low"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| action | 'flag' | 'shadow' | 'remove' |
| severity | 'low' | 'medium' | 'high' |
BulkImageModerationResponse
// BulkImageModerationResponse
{
"duration": "string",
"task_id": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | string | Yes | |
| task_id | string | Yes | ID of the task for processing the bulk image moderation |
BypassActionRequest
// BypassActionRequest
{
"enabled": false
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| enabled | boolean | No |
BypassResponse
// BypassResponse
{
"duration": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | string | Yes |
CallActionOptions
// CallActionOptions
{
"duration": 0,
"flag_reason": "string",
"kick_reason": "string",
"mute_audio": false,
"mute_video": false,
"reason": "string",
"warning_text": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | number | No | |
| flag_reason | string | No | |
| kick_reason | string | No | |
| mute_audio | boolean | No | |
| mute_video | boolean | No | |
| reason | string | No | |
| warning_text | string | No |
CallCustomPropertyParameters
// CallCustomPropertyParameters
{
"operator": "string",
"property_key": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| operator | string | No | |
| property_key | string | No |
CallRuleActionSequence
// CallRuleActionSequence
{
"actions": [],
"call_options": CallActionOptions,
"violation_number": 0
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| actions | string[] | No | |
| call_options | CallActionOptions | No | |
| violation_number | number | No |
CallTypeRuleParameters
// CallTypeRuleParameters
{
"call_type": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| call_type | string | No |
CallViolationCountParameters
// CallViolationCountParameters
{
"threshold": 0,
"time_window": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| threshold | number | No | |
| time_window | string | No |
CheckResponse
// CheckResponse
{
"duration": "string",
"item": ReviewQueueItemResponse,
"recommended_action": "string",
"status": "string",
"task_id": "string",
"triggered_rule": TriggeredRuleResponse
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | string | Yes | |
| recommended_action | string | Yes | Suggested action based on moderation results |
| status | string | Yes | Status of the moderation check (completed or pending) |
| item | ReviewQueueItemResponse | No | Review queue item (present if action != keep) |
| task_id | string | No | ID of the running moderation task |
| triggered_rule | TriggeredRuleResponse | No | Rule triggered by evaluation, with resolved actions and escalation details |
CheckS3AccessResponse
// CheckS3AccessResponse
{
"duration": "string",
"message": "string",
"success": false
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | string | Yes | |
| success | boolean | Yes | Whether the S3 access check succeeded |
| message | string | No | Descriptive message about the check result |
ClosedCaptionRuleParameters
// ClosedCaptionRuleParameters
{
"harm_labels": [],
"llm_harm_labels": {},
"threshold": 0
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| harm_labels | string[] | No | |
| llm_harm_labels | Record<string, any> | No | |
| threshold | number | No |
ConfigResponse
// ConfigResponse
{
"ai_image_config": AIImageConfig,
"ai_image_label_definitions": [],
"ai_image_subclassifications": {},
"ai_text_config": AITextConfig,
"ai_video_config": AIVideoConfig,
"async": false,
"automod_platform_circumvention_config": AutomodPlatformCircumventionConfig,
"automod_semantic_filters_config": AutomodSemanticFiltersConfig,
"automod_toxicity_config": AutomodToxicityConfig,
"block_list_config": BlockListConfig,
"created_at": 0,
"key": "string",
"llm_config": LLMConfig,
"supported_video_call_harm_types": [],
"team": "string",
"updated_at": 0,
"velocity_filter_config": VelocityFilterConfig,
"video_call_rule_config": VideoCallRuleConfig
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| async | boolean | Yes | Whether moderation should be performed asynchronously |
| created_at | number | Yes | When the configuration was created |
| key | string | Yes | Unique identifier for the moderation configuration |
| supported_video_call_harm_types | string[] | Yes | |
| team | string | Yes | Team associated with the configuration |
| updated_at | number | Yes | When the configuration was last updated |
| ai_image_config | AIImageConfig | No | Configuration for AI image analysis |
| ai_image_label_definitions | AIImageLabelDefinition[] | No | Configurable image moderation label definitions for dashboard rendering |
| ai_image_subclassifications | Record<string, any> | No | Available L2 subclassifications per L1 image moderation label, based on the a... |
| ai_text_config | AITextConfig | No | Configuration for AI text analysis |
| ai_video_config | AIVideoConfig | No | Configuration for AI video analysis |
| automod_platform_circumvention_config | AutomodPlatformCircumventionConfig | No | Configuration for platform circumvention detection |
| automod_semantic_filters_config | AutomodSemanticFiltersConfig | No | Configuration for semantic filtering |
| automod_toxicity_config | AutomodToxicityConfig | No | Configuration for toxicity detection |
| block_list_config | BlockListConfig | No | Configuration for block list filtering |
| llm_config | LLMConfig | No | Configuration for customer-configured LLM moderation |
| velocity_filter_config | VelocityFilterConfig | No | Configuration for velocity-based filtering |
| video_call_rule_config | VideoCallRuleConfig | No |
ContentCountRuleParameters
// ContentCountRuleParameters
{
"threshold": 0,
"time_window": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| threshold | number | No | |
| time_window | string | No |
CustomActionRequestPayload
Configuration for custom moderation action
// CustomActionRequestPayload
{
"id": "string",
"options": {}
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| id | string | No | Custom action identifier |
| options | Record<string, any> | No | Custom action options |
CustomCheckFlag
// CustomCheckFlag
{
"custom": {},
"labels": [],
"reason": "string",
"type": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| type | string | Yes | Type of check (custom_check_text, custom_check_image, custom_check_video) |
| custom | Record<string, any> | No | Additional metadata for the flag |
| labels | string[] | No | Labels from various moderation sources |
| reason | string | No | Optional explanation for the flag |
CustomCheckResponse
// CustomCheckResponse
{
"duration": "string",
"id": "string",
"item": ReviewQueueItemResponse,
"status": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | string | Yes | |
| id | string | Yes | Unique identifier of the custom check |
| status | string | Yes | Status of the custom check |
| item | ReviewQueueItemResponse | No | Review queue item details |
DeleteActivityRequestPayload
Configuration for activity deletion action
// DeleteActivityRequestPayload
{
"entity_id": "string",
"entity_type": "string",
"hard_delete": false,
"reason": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| entity_id | string | No | ID of the activity to delete (alternative to item_id) |
| entity_type | string | No | Type of the entity (required for delete_activity to distinguish v2 vs v3) |
| hard_delete | boolean | No | Whether to permanently delete the activity |
| reason | string | No | Reason for deletion |
DeleteCommentRequestPayload
Configuration for comment deletion action
// DeleteCommentRequestPayload
{
"entity_id": "string",
"entity_type": "string",
"hard_delete": false,
"reason": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| entity_id | string | No | ID of the comment to delete (alternative to item_id) |
| entity_type | string | No | Type of the entity |
| hard_delete | boolean | No | Whether to permanently delete the comment |
| reason | string | No | Reason for deletion |
DeleteMessageRequestPayload
Configuration for message deletion action
// DeleteMessageRequestPayload
{
"entity_id": "string",
"entity_type": "string",
"hard_delete": false,
"reason": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| entity_id | string | No | ID of the message to delete (alternative to item_id) |
| entity_type | string | No | Type of the entity |
| hard_delete | boolean | No | Whether to permanently delete the message |
| reason | string | No | Reason for deletion |
DeleteModerationConfigResponse
// DeleteModerationConfigResponse
{
"duration": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | string | Yes |
DeleteModerationRuleResponse
Basic response information
// DeleteModerationRuleResponse
{
"duration": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | string | Yes | Duration of the request in milliseconds |
DeleteModerationTemplateResponse
// DeleteModerationTemplateResponse
{
"duration": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | string | Yes |
DeleteReactionRequestPayload
Configuration for reaction deletion action
// DeleteReactionRequestPayload
{
"entity_id": "string",
"entity_type": "string",
"hard_delete": false,
"reason": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| entity_id | string | No | ID of the reaction to delete (alternative to item_id) |
| entity_type | string | No | Type of the entity |
| hard_delete | boolean | No | Whether to permanently delete the reaction |
| reason | string | No | Reason for deletion |
DeleteUserRequestPayload
Configuration for user deletion action
// DeleteUserRequestPayload
{
"delete_conversation_channels": false,
"delete_feeds_content": false,
"entity_id": "string",
"entity_type": "string",
"hard_delete": false,
"mark_messages_deleted": false,
"reason": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| delete_conversation_channels | boolean | No | Also delete all user conversations |
| delete_feeds_content | boolean | No | Delete flagged feeds content |
| entity_id | string | No | ID of the user to delete (alternative to item_id) |
| entity_type | string | No | Type of the entity |
| hard_delete | boolean | No | Whether to permanently delete the user |
| mark_messages_deleted | boolean | No | Also delete all user messages |
| reason | string | No | Reason for deletion |
EscalatePayload
Configuration for escalation action
// EscalatePayload
{
"notes": "string",
"priority": "string",
"reason": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| notes | string | No | Additional context for the reviewer |
| priority | string | No | Priority of the escalation (low, medium, high) |
| reason | string | No | Reason for the escalation (from configured escalation_reasons) |
FeedsModerationTemplateConfigPayload
Configuration for a feeds moderation template
// FeedsModerationTemplateConfigPayload
{
"config_key": "string",
"data_types": {}
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| data_types | Record<string, any> | Yes | Map of data type names to their content types |
| config_key | string | No | Key of the moderation configuration to use |
Field
// Field
{
"short": false,
"title": "string",
"value": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| short | boolean | Yes | |
| title | string | Yes | |
| value | string | Yes |
FilterConfigResponse
// FilterConfigResponse
{
"ai_text_labels": [],
"config_keys": [],
"llm_labels": []
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| llm_labels | string[] | Yes | |
| ai_text_labels | string[] | No | |
| config_keys | string[] | No |
FlagCountRuleParameters
// FlagCountRuleParameters
{
"threshold": 0
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| threshold | number | No |
FlagRequest
// FlagRequest
{
"custom": {},
"entity_creator_id": "string",
"entity_id": "string",
"entity_type": "string",
"moderation_payload": ModerationPayload,
"reason": "string",
"user": UserRequest,
"user_id": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| entity_id | string | Yes | Unique identifier of the entity being flagged |
| entity_type | string | Yes | Type of entity being flagged (e.g., message, user) |
| custom | Record<string, any> | No | Additional metadata about the flag |
| entity_creator_id | string | No | ID of the user who created the flagged entity |
| moderation_payload | ModerationPayload | No | Content being flagged |
| reason | string | No | Optional explanation for why the content is being flagged |
| user | UserRequest | No | |
| user_id | string | No |
FlagResponse
// FlagResponse
{
"duration": "string",
"item_id": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | string | Yes | |
| item_id | string | Yes | Unique identifier of the created moderation item |
FlagUserOptions
// FlagUserOptions
{
"reason": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| reason | string | No |
GetAppealResponse
// GetAppealResponse
{
"duration": "string",
"item": AppealItemResponse
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | string | Yes | |
| item | AppealItemResponse | No | Current state of the appeal |
GetConfigResponse
// GetConfigResponse
{
"config": ConfigResponse,
"duration": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | string | Yes | |
| config | ConfigResponse | No | The retrieved moderation configuration |
GetFlagCountResponse
// GetFlagCountResponse
{
"count": 0,
"duration": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| count | number | Yes | Total number of flags against the specified user's content |
| duration | string | Yes |
GetModerationRuleResponse
Basic response information
// GetModerationRuleResponse
{
"duration": "string",
"rule": ModerationRuleV2Response
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | string | Yes | Duration of the request in milliseconds |
| rule | ModerationRuleV2Response | No |
GetReviewQueueItemResponse
// GetReviewQueueItemResponse
{
"duration": "string",
"item": ReviewQueueItemResponse
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | string | Yes | |
| item | ReviewQueueItemResponse | No | Current state of the review queue item |
GoogleVisionConfig
// GoogleVisionConfig
{
"enabled": false
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| enabled | boolean | No |
HarmConfig
// HarmConfig
{
"action_sequences": [],
"cooldown_period": 0,
"harm_types": [],
"severity": 0,
"threshold": 0
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| action_sequences | ActionSequence[] | No | |
| cooldown_period | number | No | |
| harm_types | string[] | No | |
| severity | number | No | |
| threshold | number | No |
ImageContentParameters
// ImageContentParameters
{
"harm_labels": [],
"label_operator": "string",
"min_confidence": 0
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| harm_labels | string[] | No | |
| label_operator | string | No | |
| min_confidence | number | No |
ImageRuleParameters
// ImageRuleParameters
{
"harm_labels": [],
"min_confidence": 0,
"threshold": 0,
"time_window": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| harm_labels | string[] | No | |
| min_confidence | number | No | |
| threshold | number | No | |
| time_window | string | No |
Images
// Images
{
"fixed_height": ImageData,
"fixed_height_downsampled": ImageData,
"fixed_height_still": ImageData,
"fixed_width": ImageData,
"fixed_width_downsampled": ImageData,
"fixed_width_still": ImageData,
"original": ImageData
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| fixed_height | ImageData | Yes | |
| fixed_height_downsampled | ImageData | Yes | |
| fixed_height_still | ImageData | Yes | |
| fixed_width | ImageData | Yes | |
| fixed_width_downsampled | ImageData | Yes | |
| fixed_width_still | ImageData | Yes | |
| original | ImageData | Yes |
InsertActionLogResponse
Response after inserting a moderation action log
// InsertActionLogResponse
{
"duration": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | string | Yes |
KeyframeRuleParameters
// KeyframeRuleParameters
{
"harm_labels": [],
"min_confidence": 0,
"threshold": 0
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| harm_labels | string[] | No | |
| min_confidence | number | No | |
| threshold | number | No |
LLMConfig
// LLMConfig
{
"app_context": "string",
"async": false,
"enabled": false,
"rules": [],
"severity_descriptions": {}
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| app_context | string | No | |
| async | boolean | No | |
| enabled | boolean | No | |
| rules | LLMRule[] | No | |
| severity_descriptions | Record<string, any> | No |
LLMRule
// LLMRule
{
"action": "flag",
"description": "string",
"label": "string",
"severity_rules": []
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| description | string | Yes | |
| label | string | Yes | |
| action | 'flag' | 'shadow' | 'remove' |
| severity_rules | BodyguardSeverityRule[] | No |
MarkReviewedRequestPayload
Configuration for mark reviewed action
// MarkReviewedRequestPayload
{
"content_to_mark_as_reviewed_limit": 0,
"decision_reason": "string",
"disable_marking_content_as_reviewed": false
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| content_to_mark_as_reviewed_limit | number | No | Maximum content items to mark as reviewed |
| decision_reason | string | No | Reason for the appeal decision |
| disable_marking_content_as_reviewed | boolean | No | Skip marking content as reviewed |
ModerationConfig
// ModerationConfig
{
"ai_image_config": AIImageConfig,
"ai_image_lite_config": BodyguardImageAnalysisConfig,
"ai_text_config": AITextConfig,
"ai_video_config": AIVideoConfig,
"async": false,
"automod_platform_circumvention_config": AutomodPlatformCircumventionConfig,
"automod_semantic_filters_config": AutomodSemanticFiltersConfig,
"automod_toxicity_config": AutomodToxicityConfig,
"block_list_config": BlockListConfig,
"created_at": 0,
"google_vision_config": GoogleVisionConfig,
"key": "string",
"llm_config": LLMConfig,
"supported_video_call_harm_types": [],
"team": "string",
"updated_at": 0,
"velocity_filter_config": VelocityFilterConfig,
"video_call_rule_config": VideoCallRuleConfig
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| ai_image_config | AIImageConfig | No | |
| ai_image_lite_config | BodyguardImageAnalysisConfig | No | |
| ai_text_config | AITextConfig | No | |
| ai_video_config | AIVideoConfig | No | |
| async | boolean | No | |
| automod_platform_circumvention_config | AutomodPlatformCircumventionConfig | No | |
| automod_semantic_filters_config | AutomodSemanticFiltersConfig | No | |
| automod_toxicity_config | AutomodToxicityConfig | No | |
| block_list_config | BlockListConfig | No | |
| created_at | number | No | |
| google_vision_config | GoogleVisionConfig | No | |
| key | string | No | |
| llm_config | LLMConfig | No | |
| supported_video_call_harm_types | string[] | No | |
| team | string | No | |
| updated_at | number | No | |
| velocity_filter_config | VelocityFilterConfig | No | |
| video_call_rule_config | VideoCallRuleConfig | No |
ModerationFlagResponse
// ModerationFlagResponse
{
"created_at": 0,
"custom": {},
"entity_creator_id": "string",
"entity_id": "string",
"entity_type": "string",
"labels": [],
"moderation_payload": ModerationPayloadResponse,
"reason": "string",
"result": [],
"review_queue_item": ReviewQueueItemResponse,
"review_queue_item_id": "string",
"type": "string",
"updated_at": 0,
"user": UserResponse,
"user_id": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| created_at | number | Yes | |
| entity_id | string | Yes | |
| entity_type | string | Yes | |
| result | Record<string, any>[] | Yes | |
| type | string | Yes | |
| updated_at | number | Yes | |
| user_id | string | Yes | |
| custom | Record<string, any> | No | |
| entity_creator_id | string | No | |
| labels | string[] | No | |
| moderation_payload | ModerationPayloadResponse | No | |
| reason | string | No | |
| review_queue_item | ReviewQueueItemResponse | No | |
| review_queue_item_id | string | No | |
| user | UserResponse | No |
ModerationPayload
// ModerationPayload
{
"custom": {},
"images": [],
"texts": [],
"videos": []
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| custom | Record<string, any> | No | |
| images | string[] | No | |
| texts | string[] | No | |
| videos | string[] | No |
ModerationPayloadRequest
Content payload for moderation
// ModerationPayloadRequest
{
"custom": {},
"images": [],
"texts": [],
"videos": []
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| custom | Record<string, any> | No | Custom data for moderation |
| images | string[] | No | Image URLs to moderate (max 30) |
| texts | string[] | No | Text content to moderate |
| videos | string[] | No | Video URLs to moderate |
ModerationRuleV2Response
// ModerationRuleV2Response
{
"action": RuleBuilderAction,
"action_sequences": [],
"conditions": [],
"config_keys": [],
"cooldown_period": "string",
"created_at": 0,
"description": "string",
"enabled": false,
"groups": [],
"id": "string",
"logic": "string",
"name": "string",
"rule_type": "string",
"team": "string",
"updated_at": 0
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| config_keys | string[] | Yes | |
| created_at | number | Yes | |
| description | string | Yes | |
| enabled | boolean | Yes | |
| id | string | Yes | |
| name | string | Yes | |
| rule_type | string | Yes | |
| team | string | Yes | |
| updated_at | number | Yes | |
| action | RuleBuilderAction | No | |
| action_sequences | CallRuleActionSequence[] | No | |
| conditions | RuleBuilderCondition[] | No | |
| cooldown_period | string | No | |
| groups | RuleBuilderConditionGroup[] | No | |
| logic | string | No |
MuteResponse
// MuteResponse
{
"duration": "string",
"mutes": [],
"non_existing_users": [],
"own_user": OwnUserResponse
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | string | Yes | |
| mutes | UserMuteResponse[] | No | Object with mutes (if multiple users were muted) |
| non_existing_users | string[] | No | A list of users that can't be found. Common cause for this is deleted users |
| own_user | OwnUserResponse | No | Authorized user object with fresh mutes information |
OCRRule
// OCRRule
{
"action": "flag",
"label": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| action | 'flag' | 'shadow' | 'remove' |
| label | string | Yes |
OwnUserResponse
// OwnUserResponse
{
"avg_response_time": 0,
"banned": false,
"blocked_user_ids": [],
"channel_mutes": [],
"created_at": 0,
"custom": {},
"deactivated_at": 0,
"deleted_at": 0,
"devices": [],
"id": "string",
"image": "string",
"invisible": false,
"language": "string",
"last_active": 0,
"latest_hidden_channels": [],
"mutes": [],
"name": "string",
"online": false,
"privacy_settings": PrivacySettingsResponse,
"push_preferences": PushPreferencesResponse,
"revoke_tokens_issued_before": 0,
"role": "string",
"teams": [],
"teams_role": {},
"total_unread_count": 0,
"total_unread_count_by_team": {},
"unread_channels": 0,
"unread_count": 0,
"unread_threads": 0,
"updated_at": 0
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| banned | boolean | Yes | |
| channel_mutes | ChannelMute[] | Yes | |
| created_at | number | Yes | |
| custom | Record<string, any> | Yes | |
| devices | DeviceResponse[] | Yes | |
| id | string | Yes | |
| invisible | boolean | Yes | |
| language | string | Yes | |
| mutes | UserMuteResponse[] | Yes | |
| online | boolean | Yes | |
| role | string | Yes | |
| teams | string[] | Yes | |
| total_unread_count | number | Yes | |
| unread_channels | number | Yes | |
| unread_count | number | Yes | |
| unread_threads | number | Yes | |
| updated_at | number | Yes | |
| avg_response_time | number | No | |
| blocked_user_ids | string[] | No | |
| deactivated_at | number | No | |
| deleted_at | number | No | |
| image | string | No | |
| last_active | number | No | |
| latest_hidden_channels | string[] | No | |
| name | string | No | |
| privacy_settings | PrivacySettingsResponse | No | |
| push_preferences | PushPreferencesResponse | No | |
| revoke_tokens_issued_before | number | No | |
| teams_role | Record<string, any> | No | |
| total_unread_count_by_team | Record<string, any> | No |
PrivacySettingsResponse
// PrivacySettingsResponse
{
"delivery_receipts": DeliveryReceiptsResponse,
"read_receipts": ReadReceiptsResponse,
"typing_indicators": TypingIndicatorsResponse
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| delivery_receipts | DeliveryReceiptsResponse | No | |
| read_receipts | ReadReceiptsResponse | No | |
| typing_indicators | TypingIndicatorsResponse | No |
QueryAppealsResponse
// QueryAppealsResponse
{
"duration": "string",
"items": [],
"next": "string",
"prev": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | string | Yes | |
| items | AppealItemResponse[] | Yes | List of Appeal Items |
| next | string | No | |
| prev | string | No |
QueryFeedModerationTemplate
// QueryFeedModerationTemplate
{
"config": FeedsModerationTemplateConfigPayload,
"created_at": 0,
"name": "string",
"updated_at": 0
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| created_at | number | Yes | When the template was created |
| name | string | Yes | Name of the moderation template |
| updated_at | number | Yes | When the template was last updated |
| config | FeedsModerationTemplateConfigPayload | No | Configuration for the moderation template |
QueryFeedModerationTemplatesResponse
// QueryFeedModerationTemplatesResponse
{
"duration": "string",
"templates": []
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | string | Yes | |
| templates | QueryFeedModerationTemplate[] | Yes | List of moderation templates |
QueryModerationConfigsResponse
// QueryModerationConfigsResponse
{
"configs": [],
"duration": "string",
"next": "string",
"prev": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| configs | ConfigResponse[] | Yes | List of moderation configurations |
| duration | string | Yes | |
| next | string | No | |
| prev | string | No |
QueryModerationFlagsResponse
Basic response information
// QueryModerationFlagsResponse
{
"duration": "string",
"flags": [],
"next": "string",
"prev": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | string | Yes | Duration of the request in milliseconds |
| flags | ModerationFlagResponse[] | Yes | |
| next | string | No | |
| prev | string | No |
QueryModerationLogsResponse
// QueryModerationLogsResponse
{
"duration": "string",
"logs": [],
"next": "string",
"prev": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | string | Yes | |
| logs | ActionLogResponse[] | Yes | List of moderation action logs |
| next | string | No | |
| prev | string | No |
QueryModerationRulesResponse
// QueryModerationRulesResponse
{
"ai_image_label_definitions": [],
"ai_image_subclassifications": {},
"closed_caption_labels": [],
"default_llm_labels": {},
"duration": "string",
"keyframe_label_classifications": {},
"keyframe_labels": [],
"next": "string",
"prev": "string",
"rules": []
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| ai_image_label_definitions | AIImageLabelDefinition[] | Yes | AI image label definitions with metadata for dashboard rendering |
| ai_image_subclassifications | Record<string, any> | Yes | Stream L1 to leaf-level label name mapping for AI image rules |
| closed_caption_labels | string[] | Yes | Available harm labels for closed caption rules |
| default_llm_labels | Record<string, any> | Yes | Default LLM label descriptions |
| duration | string | Yes | |
| keyframe_label_classifications | Record<string, any> | Yes | L1 to L2 mapping of keyframe harm label classifications |
| keyframe_labels | string[] | Yes | Deprecated: use keyframe_label_classifications instead. Available L1 harm lab... |
| rules | ModerationRuleV2Response[] | Yes | List of moderation rules |
| next | string | No | |
| prev | string | No |
QueryReviewQueueResponse
// QueryReviewQueueResponse
{
"action_config": {},
"duration": "string",
"filter_config": FilterConfigResponse,
"items": [],
"next": "string",
"prev": "string",
"stats": {}
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| action_config | Record<string, any> | Yes | Configuration for moderation actions |
| duration | string | Yes | |
| items | ReviewQueueItemResponse[] | Yes | List of review queue items |
| stats | Record<string, any> | Yes | Statistics about the review queue |
| filter_config | FilterConfigResponse | No | Configuration for filters in moderation review queue |
| next | string | No | |
| prev | string | No |
Reaction
// Reaction
{
"activity_id": "string",
"children_counts": {},
"created_at": 0,
"data": {},
"deleted_at": 0,
"id": "string",
"kind": "string",
"latest_children": {},
"moderation": {},
"own_children": {},
"parent": "string",
"score": 0,
"target_feeds": [],
"target_feeds_extra_data": {},
"updated_at": 0,
"user": User,
"user_id": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| activity_id | string | Yes | |
| created_at | number | Yes | |
| kind | string | Yes | |
| updated_at | number | Yes | |
| user_id | string | Yes | |
| children_counts | Record<string, any> | No | |
| data | Record<string, any> | No | |
| deleted_at | number | No | |
| id | string | No | |
| latest_children | Record<string, any> | No | |
| moderation | Record<string, any> | No | |
| own_children | Record<string, any> | No | |
| parent | string | No | |
| score | number | No | |
| target_feeds | string[] | No | |
| target_feeds_extra_data | Record<string, any> | No | |
| user | User | No |
RejectAppealRequestPayload
Configuration for rejecting an appeal
// RejectAppealRequestPayload
{
"decision_reason": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| decision_reason | string | Yes | Reason for rejecting the appeal |
RestoreActionRequestPayload
Configuration for restore action
// RestoreActionRequestPayload
{
"decision_reason": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| decision_reason | string | No | Reason for the appeal decision |
ReviewQueueItemResponse
// ReviewQueueItemResponse
{
"actions": [],
"activity": EnrichedActivity,
"ai_text_severity": "string",
"appeal": AppealItemResponse,
"assigned_to": UserResponse,
"bans": [],
"call": CallResponse,
"completed_at": 0,
"config_key": "string",
"created_at": 0,
"entity_creator": EntityCreatorResponse,
"entity_creator_id": "string",
"entity_id": "string",
"entity_type": "string",
"escalated": false,
"escalated_at": 0,
"escalated_by": "string",
"escalation_metadata": EscalationMetadata,
"feeds_v2_activity": EnrichedActivity,
"feeds_v2_reaction": Reaction,
"feeds_v3_activity": FeedsV3ActivityResponse,
"feeds_v3_comment": FeedsV3CommentResponse,
"flags": [],
"flags_count": 0,
"id": "string",
"languages": [],
"latest_moderator_action": "string",
"message": MessageResponse,
"moderation_payload": ModerationPayloadResponse,
"reaction": Reaction,
"recommended_action": "string",
"reviewed_at": 0,
"reviewed_by": "string",
"severity": 0,
"status": "string",
"teams": [],
"updated_at": 0
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| actions | ActionLogResponse[] | Yes | Moderation actions taken |
| ai_text_severity | string | Yes | AI-determined text severity |
| bans | BanInfoResponse[] | Yes | Associated ban records |
| created_at | number | Yes | When the item was created |
| entity_id | string | Yes | ID of the entity being reviewed |
| entity_type | string | Yes | Type of entity being reviewed |
| escalated | boolean | Yes | Whether the item has been escalated |
| flags | ModerationFlagResponse[] | Yes | Associated flag records |
| flags_count | number | Yes | |
| id | string | Yes | Unique identifier of the review queue item |
| languages | string[] | Yes | Detected languages in the content |
| latest_moderator_action | string | Yes | |
| recommended_action | string | Yes | Suggested moderation action |
| reviewed_by | string | Yes | ID of the moderator who reviewed the item |
| severity | number | Yes | Severity level of the content |
| status | string | Yes | Current status of the review |
| updated_at | number | Yes | When the item was last updated |
| activity | EnrichedActivity | No | |
| appeal | AppealItemResponse | No | Appeal submitted for this item if it exists |
| assigned_to | UserResponse | No | Moderator assigned to review this item |
| call | CallResponse | No | |
| completed_at | number | No | When the review was completed |
| config_key | string | No | |
| entity_creator | EntityCreatorResponse | No | Details about who created the entity |
| entity_creator_id | string | No | ID of who created the entity |
| escalated_at | number | No | When the item was escalated |
| escalated_by | string | No | ID of the moderator who escalated the item |
| escalation_metadata | EscalationMetadata | No | Escalation details including reason, notes, and priority |
| feeds_v2_activity | EnrichedActivity | No | Associated feed activity |
| feeds_v2_reaction | Reaction | No | Associated feed reaction |
| feeds_v3_activity | FeedsV3ActivityResponse | No | |
| feeds_v3_comment | FeedsV3CommentResponse | No | |
| message | MessageResponse | No | Associated message details |
| moderation_payload | ModerationPayloadResponse | No | Content being moderated |
| reaction | Reaction | No | |
| reviewed_at | number | No | When the item was reviewed |
| teams | string[] | No | Teams associated with this item |
RuleBuilderAction
// RuleBuilderAction
{
"ban_options": BanOptions,
"call_options": CallActionOptions,
"flag_user_options": FlagUserOptions,
"skip_inbox": false,
"type": "ban_user"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| ban_options | BanOptions | No | |
| call_options | CallActionOptions | No | |
| flag_user_options | FlagUserOptions | No | |
| skip_inbox | boolean | No | |
| type | 'ban_user' | 'flag_user' | 'flag_content' |
RuleBuilderCondition
// RuleBuilderCondition
{
"call_custom_property_params": CallCustomPropertyParameters,
"call_type_rule_params": CallTypeRuleParameters,
"call_violation_count_params": CallViolationCountParameters,
"closed_caption_rule_params": ClosedCaptionRuleParameters,
"confidence": 0,
"content_count_rule_params": ContentCountRuleParameters,
"content_flag_count_rule_params": FlagCountRuleParameters,
"image_content_params": ImageContentParameters,
"image_rule_params": ImageRuleParameters,
"keyframe_rule_params": KeyframeRuleParameters,
"text_content_params": TextContentParameters,
"text_rule_params": TextRuleParameters,
"type": "string",
"user_created_within_params": UserCreatedWithinParameters,
"user_custom_property_params": UserCustomPropertyParameters,
"user_flag_count_rule_params": FlagCountRuleParameters,
"user_identical_content_count_params": UserIdenticalContentCountParameters,
"user_role_params": UserRoleParameters,
"user_rule_params": UserRuleParameters,
"video_content_params": VideoContentParameters,
"video_rule_params": VideoRuleParameters
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| call_custom_property_params | CallCustomPropertyParameters | No | |
| call_type_rule_params | CallTypeRuleParameters | No | |
| call_violation_count_params | CallViolationCountParameters | No | |
| closed_caption_rule_params | ClosedCaptionRuleParameters | No | |
| confidence | number | No | |
| content_count_rule_params | ContentCountRuleParameters | No | |
| content_flag_count_rule_params | FlagCountRuleParameters | No | |
| image_content_params | ImageContentParameters | No | |
| image_rule_params | ImageRuleParameters | No | |
| keyframe_rule_params | KeyframeRuleParameters | No | |
| text_content_params | TextContentParameters | No | |
| text_rule_params | TextRuleParameters | No | |
| type | string | No | |
| user_created_within_params | UserCreatedWithinParameters | No | |
| user_custom_property_params | UserCustomPropertyParameters | No | |
| user_flag_count_rule_params | FlagCountRuleParameters | No | |
| user_identical_content_count_params | UserIdenticalContentCountParameters | No | |
| user_role_params | UserRoleParameters | No | |
| user_rule_params | UserRuleParameters | No | |
| video_content_params | VideoContentParameters | No | |
| video_rule_params | VideoRuleParameters | No |
RuleBuilderConditionGroup
// RuleBuilderConditionGroup
{
"conditions": [],
"logic": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| conditions | RuleBuilderCondition[] | No | |
| logic | string | No |
RuleBuilderConfig
// RuleBuilderConfig
{
"async": false,
"rules": []
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| async | boolean | No | |
| rules | RuleBuilderRule[] | No |
RuleBuilderRule
// RuleBuilderRule
{
"action": RuleBuilderAction,
"action_sequences": [],
"conditions": [],
"cooldown_period": "string",
"groups": [],
"id": "string",
"logic": "string",
"rule_type": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| rule_type | string | Yes | |
| action | RuleBuilderAction | No | |
| action_sequences | CallRuleActionSequence[] | No | |
| conditions | RuleBuilderCondition[] | No | |
| cooldown_period | string | No | |
| groups | RuleBuilderConditionGroup[] | No | |
| id | string | No | |
| logic | string | No |
ShadowBlockActionRequestPayload
Configuration for shadow block action
// ShadowBlockActionRequestPayload
{
"reason": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| reason | string | No | Reason for shadow blocking |
SortParamRequest
// SortParamRequest
{
"direction": 0,
"field": "string",
"type": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| direction | number | No | Direction of sorting, 1 for Ascending, -1 for Descending, default is 1. One o... |
| field | string | No | Name of field to sort by |
| type | string | No | Type of field to sort by. Empty string or omitted means string type (default)... |
SubmitActionResponse
// SubmitActionResponse
{
"appeal_item": AppealItemResponse,
"duration": "string",
"item": ReviewQueueItemResponse
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | string | Yes | |
| appeal_item | AppealItemResponse | No | Updated Appeal item after action was performed |
| item | ReviewQueueItemResponse | No | Updated review queue item after action was performed |
TextContentParameters
// TextContentParameters
{
"blocklist_match": [],
"contains_url": false,
"harm_labels": [],
"label_operator": "string",
"llm_harm_labels": {},
"severity": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| blocklist_match | string[] | No | |
| contains_url | boolean | No | |
| harm_labels | string[] | No | |
| label_operator | string | No | |
| llm_harm_labels | Record<string, any> | No | |
| severity | string | No |
TextRuleParameters
// TextRuleParameters
{
"blocklist_match": [],
"contains_url": false,
"harm_labels": [],
"llm_harm_labels": {},
"semantic_filter_min_threshold": 0,
"semantic_filter_names": [],
"severity": "string",
"threshold": 0,
"time_window": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| blocklist_match | string[] | No | |
| contains_url | boolean | No | |
| harm_labels | string[] | No | |
| llm_harm_labels | Record<string, any> | No | |
| semantic_filter_min_threshold | number | No | |
| semantic_filter_names | string[] | No | |
| severity | string | No | |
| threshold | number | No | |
| time_window | string | No |
TriggeredRuleResponse
// TriggeredRuleResponse
{
"actions": [],
"call_options": CallActionOptions,
"rule_id": "string",
"rule_name": "string",
"violation_number": 0
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| actions | string[] | Yes | Action types resolved from the rule's action sequence |
| rule_id | string | Yes | ID of the moderation rule that triggered |
| call_options | CallActionOptions | No | Options for call actions (mute settings, warning text, kick reason) |
| rule_name | string | No | Name of the moderation rule that triggered |
| violation_number | number | No | Violation count for action sequence rules (1-based) |
UnbanActionRequestPayload
Configuration for unban moderation action
// UnbanActionRequestPayload
{
"channel_cid": "string",
"decision_reason": "string",
"remove_future_channels_ban": false
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| channel_cid | string | No | Channel CID for channel-specific unban |
| decision_reason | string | No | Reason for the appeal decision |
| remove_future_channels_ban | boolean | No | Also remove the future channels ban for this user |
UnbanResponse
// UnbanResponse
{
"duration": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | string | Yes |
UnblockActionRequestPayload
Configuration for unblock action
// UnblockActionRequestPayload
{
"decision_reason": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| decision_reason | string | No | Reason for the appeal decision |
UnmuteResponse
// UnmuteResponse
{
"duration": "string",
"non_existing_users": []
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | string | Yes | |
| non_existing_users | string[] | No | A list of users that can't be found. Common cause for this is deleted users |
UpsertConfigResponse
// UpsertConfigResponse
{
"config": ConfigResponse,
"duration": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | string | Yes | |
| config | ConfigResponse | No | The created or updated moderation configuration |
UpsertModerationRuleResponse
Basic response information
// UpsertModerationRuleResponse
{
"duration": "string",
"rule": ModerationRuleV2Response
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | string | Yes | Duration of the request in milliseconds |
| rule | ModerationRuleV2Response | No |
UpsertModerationTemplateResponse
// UpsertModerationTemplateResponse
{
"config": FeedsModerationTemplateConfigPayload,
"created_at": 0,
"duration": "string",
"name": "string",
"updated_at": 0
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| created_at | number | Yes | When the template was created |
| duration | string | Yes | |
| name | string | Yes | Name of the moderation template |
| updated_at | number | Yes | When the template was last updated |
| config | FeedsModerationTemplateConfigPayload | No | Configuration for the moderation template |
User
// User
{
"data": {},
"id": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| id | string | Yes | |
| data | Record<string, any> | No |
UserCreatedWithinParameters
// UserCreatedWithinParameters
{
"max_age": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| max_age | string | No |
UserCustomPropertyParameters
// UserCustomPropertyParameters
{
"operator": "string",
"property_key": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| operator | string | No | |
| property_key | string | No |
UserIdenticalContentCountParameters
// UserIdenticalContentCountParameters
{
"threshold": 0,
"time_window": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| threshold | number | No | |
| time_window | string | No |
UserMuteResponse
// UserMuteResponse
{
"created_at": 0,
"expires": 0,
"target": UserResponse,
"updated_at": 0,
"user": UserResponse
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| created_at | number | Yes | |
| updated_at | number | Yes | |
| expires | number | No | |
| target | UserResponse | No | |
| user | UserResponse | No |
UserRequest
User request object
// UserRequest
{
"custom": {},
"id": "string",
"image": "string",
"invisible": false,
"language": "string",
"name": "string",
"privacy_settings": PrivacySettingsResponse,
"role": "string",
"teams": [],
"teams_role": {}
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| id | string | Yes | User ID |
| custom | Record<string, any> | No | Custom user data |
| image | string | No | User's profile image URL |
| invisible | boolean | No | |
| language | string | No | |
| name | string | No | Optional name of user |
| privacy_settings | PrivacySettingsResponse | No | |
| role | string | No | User's global role |
| teams | string[] | No | List of teams the user belongs to |
| teams_role | Record<string, any> | No | Map of team-specific roles for the user |
UserResponse
User response object
// UserResponse
{
"avg_response_time": 0,
"ban_expires": 0,
"banned": false,
"blocked_user_ids": [],
"bypass_moderation": false,
"created_at": 0,
"custom": {},
"deactivated_at": 0,
"deleted_at": 0,
"devices": [],
"id": "string",
"image": "string",
"invisible": false,
"language": "string",
"last_active": 0,
"name": "string",
"online": false,
"privacy_settings": PrivacySettingsResponse,
"push_notifications": PushNotificationSettingsResponse,
"revoke_tokens_issued_before": 0,
"role": "string",
"shadow_banned": false,
"teams": [],
"teams_role": {},
"updated_at": 0
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| banned | boolean | Yes | Whether a user is banned or not |
| blocked_user_ids | string[] | Yes | |
| created_at | number | Yes | Date/time of creation |
| custom | Record<string, any> | Yes | Custom data for this object |
| id | string | Yes | Unique user identifier |
| invisible | boolean | Yes | |
| language | string | Yes | Preferred language of a user |
| online | boolean | Yes | Whether a user online or not |
| role | string | Yes | Determines the set of user permissions |
| shadow_banned | boolean | Yes | Whether a user is shadow banned |
| teams | string[] | Yes | List of teams user is a part of |
| updated_at | number | Yes | Date/time of the last update |
| avg_response_time | number | No | |
| ban_expires | number | No | Date when ban expires |
| bypass_moderation | boolean | No | |
| deactivated_at | number | No | Date of deactivation |
| deleted_at | number | No | Date/time of deletion |
| devices | DeviceResponse[] | No | List of devices user is using |
| image | string | No | |
| last_active | number | No | Date of last activity |
| name | string | No | Optional name of user |
| privacy_settings | PrivacySettingsResponse | No | User privacy settings |
| push_notifications | PushNotificationSettingsResponse | No | User push notification settings |
| revoke_tokens_issued_before | number | No | Revocation date for tokens |
| teams_role | Record<string, any> | No |
UserRoleParameters
// UserRoleParameters
{
"operator": "string",
"role": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| operator | string | No | |
| role | string | No |
UserRuleParameters
// UserRuleParameters
{
"max_age": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| max_age | string | No |
VelocityFilterConfig
// VelocityFilterConfig
{
"advanced_filters": false,
"async": false,
"cascading_actions": false,
"cids_per_user": 0,
"enabled": false,
"first_message_only": false,
"rules": []
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| advanced_filters | boolean | No | |
| async | boolean | No | |
| cascading_actions | boolean | No | |
| cids_per_user | number | No | |
| enabled | boolean | No | |
| first_message_only | boolean | No | |
| rules | VelocityFilterConfigRule[] | No |
VelocityFilterConfigRule
// VelocityFilterConfigRule
{
"action": "flag",
"ban_duration": 0,
"cascading_action": "flag",
"cascading_threshold": 0,
"check_message_context": false,
"fast_spam_threshold": 0,
"fast_spam_ttl": 0,
"ip_ban": false,
"probation_period": 0,
"shadow_ban": false,
"slow_spam_ban_duration": 0,
"slow_spam_threshold": 0,
"slow_spam_ttl": 0,
"url_only": false
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| action | 'flag' | 'shadow' | 'remove' |
| ban_duration | number | No | |
| cascading_action | 'flag' | 'shadow' | 'remove' |
| cascading_threshold | number | No | |
| check_message_context | boolean | No | |
| fast_spam_threshold | number | No | |
| fast_spam_ttl | number | No | |
| ip_ban | boolean | No | |
| probation_period | number | No | |
| shadow_ban | boolean | No | |
| slow_spam_ban_duration | number | No | |
| slow_spam_threshold | number | No | |
| slow_spam_ttl | number | No | |
| url_only | boolean | No |
VideoCallRuleConfig
// VideoCallRuleConfig
{
"flag_all_labels": false,
"flagged_labels": [],
"rules": []
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| flag_all_labels | boolean | No | |
| flagged_labels | string[] | No | |
| rules | HarmConfig[] | No |
VideoContentParameters
// VideoContentParameters
{
"harm_labels": [],
"label_operator": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| harm_labels | string[] | No | |
| label_operator | string | No |
VideoRuleParameters
// VideoRuleParameters
{
"harm_labels": [],
"threshold": 0,
"time_window": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| harm_labels | string[] | No | |
| threshold | number | No | |
| time_window | string | No |