Appearance
Moderation
About 11043 wordsAbout 37 min
Curl SDK - Chat 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
Use this method to record a log of moderation actions taken within a chat, which helps in maintaining a history of actions for accountability and future reference.
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 a request to challenge a moderation decision if you believe it was incorrect or unfair, helping to ensure accurate content moderation.
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 you have submitted, allowing you to track the status and outcome of the appeal process.
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 list submitted appeals based on specific criteria, enabling you to manage and review multiple appeals efficiently.
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
Use this method to prohibit a user from accessing your service due to violations, ensuring a safe and respectful environment.
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
Moderate multiple images at once to quickly assess and filter large volumes of visual content for adherence to guidelines.
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
This method allows you to override the moderation system for specific messages, ensuring that important content is delivered without delay or restriction.
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
Evaluate a piece of content to determine if it complies with established moderation policies, safeguarding your community 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
Utilize this method to verify if your application has the necessary permissions to access images stored in an S3 bucket, ensuring smooth media retrieval and 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 a new or update an existing moderation policy configuration to tailor content review processes to your specific needs.
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 the current moderation configuration settings to review or audit how content moderation is being conducted.
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 a specific moderation policy to discontinue its application, allowing for policy updates or changes in moderation strategy.
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 and retrieve a list of all moderation configurations, offering visibility into the rules and policies currently in effect.
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
Performs a custom moderation check on content, allowing users to apply specific rules or criteria. Use this method to evaluate content against bespoke moderation standards.
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
Retrieves a list of moderation templates for managing content feeds. Use this to view and select predefined moderation configurations for your content streams.
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
Creates or updates a feed moderation template, enabling users to maintain consistent moderation settings. Use this to ensure your feed templates are current or to introduce new moderation guidelines.
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
Removes a specific moderation template from the system. Use this method to clean up outdated or unnecessary templates from your moderation toolkit.
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
Marks content as needing moderation review, helping prioritize items that may violate guidelines. Use this method to alert moderators to potentially problematic content.
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
Use this method to retrieve the total number of flags associated with a user, which is useful for monitoring user activity and identifying potential issues or violations.
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
Provides a list of content items that have been flagged for moderation. Use this to review and manage content that requires attention due to potential guideline violations.
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
Accesses logs of past moderation actions, offering insights into historical moderation activities. Use this to audit, review, or analyze past moderation decisions and actions.
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
Creates or updates a moderation rule to apply specific guidelines to content evaluation. Use this to ensure your moderation policy is up-to-date or to introduce new criteria.
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
Retrieves the details of a specific moderation rule, allowing users to review current moderation criteria. Use this to understand existing rules or to verify their application.
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
Removes a specific moderation rule from the active set, aiding in policy refinement. Use this to eliminate outdated or irrelevant rules from your moderation framework.
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 a list of active moderation rules to understand the criteria used for content moderation. Use this method to stay informed about which rules are currently in effect within the chat environment.
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 in the chat, preventing them from sending messages. Use this method to maintain order during discussions or to prevent disruptive behavior.
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 a list of content items waiting for moderation review. Use this method to manage and prioritize pending moderation tasks efficiently.
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
Fetch detailed information about a specific item in the moderation review queue. Use this method to examine the content and context of an item before making a moderation decision.
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, such as approving or rejecting content, based on your review. Use this method to enforce moderation decisions and maintain community standards.
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 ban on a previously banned user, restoring their ability to participate in the chat. Use this method when a user's ban period has ended or if a ban was issued in error.
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 send messages in the chat. Use this method when the mute period has ended or if the mute was applied by mistake.
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
An attachment is a message object that represents a file uploaded by a user.
// 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 | Attachment type (e.g. image, video, url) |
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
{
"banned_by": UserResponse,
"channel": ChannelResponse,
"created_at": 0,
"expires": 0,
"reason": "string",
"shadow": false,
"user": UserResponse
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| created_at | number | Yes | |
| banned_by | UserResponse | No | |
| channel | ChannelResponse | No | |
| expires | number | No | |
| reason | string | No | |
| shadow | boolean | No | |
| user | UserResponse | No |
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 |
ChannelResponse
Represents channel in chat
// ChannelResponse
{
"auto_translation_enabled": false,
"auto_translation_language": "string",
"blocked": false,
"cid": "string",
"config": ChannelConfigWithInfo,
"cooldown": 0,
"created_at": 0,
"created_by": UserResponse,
"custom": {},
"deleted_at": 0,
"disabled": false,
"filter_tags": [],
"frozen": false,
"hidden": false,
"hide_messages_before": 0,
"id": "string",
"last_message_at": 0,
"member_count": 0,
"members": [],
"message_count": 0,
"mute_expires_at": 0,
"muted": false,
"own_capabilities": [],
"team": "string",
"truncated_at": 0,
"truncated_by": UserResponse,
"type": "string",
"updated_at": 0
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| cid | string | Yes | Channel CID (<type>:<id>) |
| created_at | number | Yes | Date/time of creation |
| custom | Record<string, any> | Yes | Custom data for this object |
| disabled | boolean | Yes | |
| frozen | boolean | Yes | Whether channel is frozen or not |
| id | string | Yes | Channel unique ID |
| type | string | Yes | Type of the channel |
| updated_at | number | Yes | Date/time of the last update |
| auto_translation_enabled | boolean | No | Whether auto translation is enabled or not |
| auto_translation_language | string | No | Language to translate to when auto translation is active |
| blocked | boolean | No | Whether this channel is blocked by current user or not |
| config | ChannelConfigWithInfo | No | Channel configuration |
| cooldown | number | No | Cooldown period after sending each message |
| created_by | UserResponse | No | Creator of the channel |
| deleted_at | number | No | Date/time of deletion |
| filter_tags | string[] | No | List of filter tags associated with the channel |
| hidden | boolean | No | Whether this channel is hidden by current user or not |
| hide_messages_before | number | No | Date since when the message history is accessible |
| last_message_at | number | No | Date of the last message sent |
| member_count | number | No | Number of members in the channel |
| members | ChannelMemberResponse[] | No | List of channel members (max 100) |
| message_count | number | No | Number of messages in the channel |
| mute_expires_at | number | No | Date of mute expiration |
| muted | boolean | No | Whether this channel is muted or not |
| own_capabilities | ChannelOwnCapability[] | No | List of channel capabilities of authenticated user |
| team | string | No | Team the channel belongs to (multi-tenant only) |
| truncated_at | number | No | Date of the latest truncation of the channel |
| truncated_by | UserResponse | 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 |
MessageRequest
Message data for creating or updating a message
// MessageRequest
{
"attachments": [],
"custom": {},
"html": "string",
"id": "string",
"mentioned_channel": false,
"mentioned_group_ids": [],
"mentioned_here": false,
"mentioned_roles": [],
"mentioned_users": [],
"mml": "string",
"parent_id": "string",
"pin_expires": 0,
"pinned": false,
"pinned_at": "string",
"poll_id": "string",
"quoted_message_id": "string",
"restricted_visibility": [],
"shared_location": SharedLocation,
"show_in_channel": false,
"silent": false,
"text": "string",
"type": "''",
"user": UserRequest,
"user_id": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| attachments | Attachment[] | No | Array of message attachments |
| custom | Record<string, any> | No | |
| html | string | No | Contains HTML markup of the message. Can only be set when using server-side API |
| id | string | No | Message ID is unique string identifier of the message |
| mentioned_channel | boolean | No | |
| mentioned_group_ids | string[] | No | List of user group IDs to mention. Group members who are also channel members... |
| mentioned_here | boolean | No | |
| mentioned_roles | string[] | No | |
| mentioned_users | string[] | No | Array of user IDs to mention |
| mml | string | No | Should be empty if text is provided. Can only be set when using server-side... |
| parent_id | string | No | ID of parent message (thread) |
| pin_expires | number | No | Date when pinned message expires |
| pinned | boolean | No | Whether message is pinned or not |
| pinned_at | string | No | Date when message got pinned |
| poll_id | string | No | Identifier of the poll to include in the message |
| quoted_message_id | string | No | |
| restricted_visibility | string[] | No | A list of user ids that have restricted visibility to the message |
| shared_location | SharedLocation | No | Contains shared location data |
| show_in_channel | boolean | No | Whether thread reply should be shown in the channel as well |
| silent | boolean | No | Whether message is silent or not |
| text | string | No | Text of the message. Should be empty if mml is provided |
| type | '''' | 'regular' | 'system' |
| user | UserRequest | No | |
| user_id | string | No |
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 |
ReactionRequest
Represents user reaction to a message
// ReactionRequest
{
"created_at": 0,
"custom": {},
"score": 0,
"type": "string",
"updated_at": 0,
"user": UserRequest,
"user_id": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| type | string | Yes | The type of reaction (e.g. 'like', 'laugh', 'wow') |
| created_at | number | No | Date/time of creation |
| custom | Record<string, any> | No | |
| score | number | No | Reaction score. If not specified reaction has score of 1 |
| updated_at | number | No | Date/time of the last update |
| user | UserRequest | No | |
| user_id | string | 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 |
SharedLocation
// SharedLocation
{
"created_by_device_id": "string",
"end_at": 0,
"latitude": 0,
"longitude": 0
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| latitude | number | Yes | |
| longitude | number | Yes | |
| created_by_device_id | string | No | |
| end_at | number | No |
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 |