Appearance
Moderation
About 5932 wordsAbout 20 min
Curl SDK - Feeds API
Table of Contents
- appeal
- get_appeal
- query_appeals
- ban
- upsert_config
- get_config
- delete_config
- query_moderation_configs
- flag
- mute
- query_review_queue
- submit_action
- Types Reference
appeal
Submit a request to review and potentially overturn a moderation decision; use this when you believe a moderation action was taken in error.
Example
curl -X POST "https://feeds.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)
get_appeal
Retrieve details about a specific appeal, allowing you to track the status and outcome of your request for review.
Example
curl -X GET "https://feeds.stream-io-api.com/api/v2/moderation/appeal/example-id" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt"Response: GetAppealResponse
Parameters
Path Parameters:
id(string) (required)
query_appeals
Search and filter through multiple appeals to manage and assess ongoing or past moderation challenges effectively.
Example
curl -X POST "https://feeds.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": {},
"limit": 1
}'Example: with sort and prev
curl -X POST "https://feeds.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",
"sort": [{ "direction": 1 }]
}'Example: with next
curl -X POST "https://feeds.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"
}'Response: QueryAppealsResponse
Parameters
Request Body:
filter(object): Filter conditions for appealslimit(int)next(string)prev(string)sort([]SortParamRequest): Sorting parameters for appeals
ban
Restrict a user from accessing services or content, useful when enforcing community guidelines and maintaining a safe environment.
Example
curl -X POST "https://feeds.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://feeds.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://feeds.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://feeds.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
upsert_config
Create or update rules for content moderation, enabling customization and refinement of moderation strategies to suit specific needs.
Example
curl -X POST "https://feeds.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_image_config": { "enabled": true, "ocr_rules": [{ "action": "example_value", "label": "example_value" }], "rules": [{ "action": "example_value", "label": "example_value", "min_confidence": 1.0, "subclassifications": {} }], "async": true },
"ai_text_config": { "enabled": true, "profile": "example_value", "rules": [{ "action": "example_value", "label": "example_value", "severity_rules": [{ "action": "example_value", "severity": "example_value" }] }], "severity_rules": [{ "action": "example_value", "severity": "example_value" }], "async": true }
}'Example: with ai_video_config and async
curl -X POST "https://feeds.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": { "enabled": true, "rules": [{ "action": "example_value", "label": "example_value", "min_confidence": 1.0, "subclassifications": {} }], "async": true },
"async": true
}'Example: with automod_platform_circumvention_config and automod_semantic_filters_config
curl -X POST "https://feeds.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": { "enabled": true, "rules": [{ "action": "example_value", "label": "example_value", "threshold": 1.0 }], "async": true },
"automod_semantic_filters_config": { "enabled": true, "rules": [{ "action": "example_value", "name": "Example Name", "threshold": 1.0 }], "async": true }
}'Example: with automod_toxicity_config and aws_rekognition_config
curl -X POST "https://feeds.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": { "enabled": true, "rules": [{ "action": "example_value", "label": "example_value", "threshold": 1.0 }], "async": true },
"aws_rekognition_config": { "enabled": true, "ocr_rules": [{ "action": "example_value", "label": "example_value" }], "rules": [{ "action": "example_value", "label": "example_value", "min_confidence": 1.0, "subclassifications": {} }], "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 configurationvelocity_filter_config(VelocityFilterConfig): Configuration for velocity-based filteringvideo_call_rule_config(VideoCallRuleConfig)
get_config
Access the current configuration settings for moderation, allowing you to review and understand the active rules and policies.
Example
curl -X GET "https://feeds.stream-io-api.com/api/v2/moderation/config/example_value?" \
-H "Authorization: Bearer $STREAM_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-H "stream-auth-type: jwt"Response: GetConfigResponse
Parameters
Path Parameters:
key(string) (required)
Query Parameters:
team(string)
delete_config
Remove an existing moderation policy, useful for retiring outdated rules or simplifying moderation strategies.
Example
curl -X DELETE "https://feeds.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)
query_moderation_configs
Search through various moderation configurations to compare, audit, or manage different policy setups efficiently.
Example
curl -X POST "https://feeds.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": {},
"limit": 1
}'Example: with sort and prev
curl -X POST "https://feeds.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",
"sort": [{ "direction": 1 }]
}'Example: with next
curl -X POST "https://feeds.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"
}'Response: QueryModerationConfigsResponse
Parameters
Request Body:
filter(object): Filter conditions for moderation configslimit(int)next(string)prev(string)sort([]SortParamRequest): Sorting parameters for the results
flag
Marks content for moderation review, allowing users to identify and address potentially inappropriate or harmful content within their feeds.
Example
curl -X POST "https://feeds.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": {},
"entity_creator_id": "example_value"
}'Example: with moderation_payload and reason
curl -X POST "https://feeds.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"
}'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 flagged
mute
Temporarily silence a user to prevent them from posting or interacting on the platform for a specific duration. Utilize this method to manage disruptive behavior without permanently banning the user.
Example
curl -X POST "https://feeds.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 minutes
query_review_queue
Access a list of content items pending review to manage and prioritize moderation tasks efficiently. Use this method to streamline the review process and address potential issues in a timely manner.
Example
curl -X POST "https://feeds.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": {},
"limit": 1
}'Example: with sort and lock_duration
curl -X POST "https://feeds.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_duration": 1,
"sort": [{ "direction": 1 }]
}'Example: with lock_items and next
curl -X POST "https://feeds.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://feeds.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 statistics
submit_action
Execute a moderation action, such as approving or rejecting content, based on the review outcome. Use this method to enforce moderation decisions and maintain community standards.
Example
curl -X POST "https://feeds.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",
"appeal_id": "example_value",
"ban": { "ban_from_future_channels": true }
}'Example: with block and bypass
curl -X POST "https://feeds.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://feeds.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://feeds.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 action
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 |
|---|---|---|---|
| enabled | boolean | Yes | |
| ocr_rules | OCRRule[] | Yes | |
| rules | AWSRekognitionRule[] | Yes | |
| async | boolean | No |
AITextConfig
// AITextConfig
{
"async": false,
"enabled": false,
"profile": "string",
"rules": [],
"severity_rules": []
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| enabled | boolean | Yes | |
| profile | string | Yes | |
| rules | BodyguardRule[] | Yes | |
| severity_rules | BodyguardSeverityRule[] | Yes | |
| async | boolean | No |
AIVideoConfig
// AIVideoConfig
{
"async": false,
"enabled": false,
"rules": []
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| enabled | boolean | Yes | |
| rules | AWSRekognitionRule[] | Yes | |
| async | boolean | 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 |
ActivityRequest
// ActivityRequest
{
"attachments": [],
"collection_refs": [],
"copy_custom_to_notification": false,
"create_notification_activity": false,
"custom": {},
"expires_at": "string",
"feeds": [],
"filter_tags": [],
"id": "string",
"interest_tags": [],
"location": Location,
"mentioned_user_ids": [],
"parent_id": "string",
"poll_id": "string",
"restrict_replies": "everyone",
"search_data": {},
"skip_enrich_url": false,
"skip_push": false,
"text": "string",
"type": "string",
"visibility": "public",
"visibility_tag": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| feeds | string[] | Yes | List of feeds to add the activity to with a default max limit of 25 feeds |
| type | string | Yes | Type of activity |
| attachments | Attachment[] | No | List of attachments for the activity |
| collection_refs | string[] | No | Collections that this activity references |
| copy_custom_to_notification | boolean | No | Whether to copy custom data to the notification activity (only applies when c... |
| create_notification_activity | boolean | No | Whether to create notification activities for mentioned users |
| custom | Record<string, any> | No | Custom data for the activity |
| expires_at | string | No | Expiration time for the activity |
| filter_tags | string[] | No | Tags for filtering activities |
| id | string | No | Optional ID for the activity |
| interest_tags | string[] | No | Tags for indicating user interests |
| location | Location | No | Geographic location related to the activity |
| mentioned_user_ids | string[] | No | List of users mentioned in the activity |
| parent_id | string | No | ID of parent activity for replies/comments |
| poll_id | string | No | ID of a poll to attach to activity |
| restrict_replies | 'everyone' | 'people_i_follow' | 'nobody' |
| search_data | Record<string, any> | No | Additional data for search indexing |
| skip_enrich_url | boolean | No | Whether to skip URL enrichment for the activity |
| skip_push | boolean | No | Whether to skip push notifications |
| text | string | No | Text content of the activity |
| visibility | 'public' | 'private' | 'tag' |
| visibility_tag | string | No | If visibility is 'tag', this is the tag name and is required |
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"
}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) |
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 |
|---|---|---|---|
| enabled | boolean | Yes | |
| rules | AutomodRule[] | Yes | |
| async | boolean | 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 |
|---|---|---|---|
| enabled | boolean | Yes | |
| rules | AutomodSemanticFiltersRule[] | Yes | |
| async | boolean | 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 |
|---|---|---|---|
| enabled | boolean | Yes | |
| rules | AutomodRule[] | Yes | |
| async | boolean | 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 |
BanResponse
// BanResponse
{
"duration": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | string | Yes |
BlockActionRequestPayload
Configuration for block action
// BlockActionRequestPayload
{
"reason": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| reason | string | No | Reason for blocking |
BlockListConfig
// BlockListConfig
{
"async": false,
"enabled": false,
"match_substring": false,
"rules": []
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| enabled | boolean | Yes | |
| rules | BlockListRule[] | Yes | |
| async | boolean | No | |
| match_substring | boolean | No |
BlockListRule
// BlockListRule
{
"action": "flag",
"name": "string",
"team": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| action | 'flag' | 'mask_flag' | 'shadow' |
| name | string | Yes | |
| team | string | Yes |
BodyguardRule
// BodyguardRule
{
"action": "flag",
"label": "string",
"severity_rules": []
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| action | 'flag' | 'shadow' | 'remove' |
| label | string | Yes | |
| severity_rules | BodyguardSeverityRule[] | Yes |
BodyguardSeverityRule
// BodyguardSeverityRule
{
"action": "flag",
"severity": "low"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| action | 'flag' | 'shadow' | 'remove' |
| severity | 'low' | 'medium' | 'high' |
BypassActionRequest
// BypassActionRequest
{
"enabled": false
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| enabled | boolean | 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 |
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 |
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 |
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) |
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 |
FlagRequest
// FlagRequest
{
"custom": {},
"entity_creator_id": "string",
"entity_id": "string",
"entity_type": "string",
"moderation_payload": ModerationPayload,
"reason": "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 |
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 |
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 |
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[] | Yes | |
| cooldown_period | number | Yes | |
| harm_types | string[] | Yes | |
| severity | number | Yes | |
| threshold | number | Yes |
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 |
LLMConfig
// LLMConfig
{
"app_context": "string",
"async": false,
"enabled": false,
"rules": [],
"severity_descriptions": {}
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| enabled | boolean | Yes | |
| rules | LLMRule[] | Yes | |
| app_context | string | No | |
| async | boolean | No | |
| severity_descriptions | Record<string, any> | No |
LLMRule
// LLMRule
{
"action": "flag",
"description": "string",
"label": "string",
"severity_rules": []
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| action | 'flag' | 'shadow' | 'remove' |
| description | string | Yes | |
| label | string | Yes | |
| severity_rules | BodyguardSeverityRule[] | Yes |
Location
// Location
{
"lat": 0,
"lng": 0
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| lat | number | Yes | Latitude coordinate |
| lng | number | Yes | Longitude coordinate |
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 |
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 |
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 |
PagerRequest
// PagerRequest
{
"limit": 0,
"next": "string",
"prev": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| limit | number | No | |
| next | string | No | |
| prev | string | 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 |
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 |
QueryReviewQueueResponse
// QueryReviewQueueResponse
{
"action_config": {},
"duration": "string",
"filter_config": FilterConfigResponse,
"items": [],
"next": "string",
"prev": "string",
"stats": {}
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| action_config | Record<string, any> | Yes | Configuration for moderation actions |
| duration | string | Yes | |
| items | ReviewQueueItemResponse[] | Yes | List of review queue items |
| stats | Record<string, any> | Yes | Statistics about the review queue |
| filter_config | FilterConfigResponse | No | Configuration for filters in moderation review queue |
| next | string | No | |
| prev | string | No |
Reaction
// Reaction
{
"activity_id": "string",
"children_counts": {},
"created_at": 0,
"data": {},
"deleted_at": 0,
"id": "string",
"kind": "string",
"latest_children": {},
"moderation": {},
"own_children": {},
"parent": "string",
"score": 0,
"target_feeds": [],
"target_feeds_extra_data": {},
"updated_at": 0,
"user": User,
"user_id": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| activity_id | string | Yes | |
| created_at | number | Yes | |
| kind | string | Yes | |
| updated_at | number | Yes | |
| user_id | string | Yes | |
| children_counts | Record<string, any> | No | |
| data | Record<string, any> | No | |
| deleted_at | number | No | |
| id | string | No | |
| latest_children | Record<string, any> | No | |
| moderation | Record<string, any> | No | |
| own_children | Record<string, any> | No | |
| parent | string | No | |
| score | number | No | |
| target_feeds | string[] | No | |
| target_feeds_extra_data | Record<string, any> | No | |
| user | User | No |
RejectAppealRequestPayload
Configuration for rejecting an appeal
// RejectAppealRequestPayload
{
"decision_reason": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| decision_reason | string | Yes | Reason for rejecting the appeal |
RestoreActionRequestPayload
Configuration for restore action
// RestoreActionRequestPayload
{
"decision_reason": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| decision_reason | string | No | Reason for the appeal decision |
ReviewQueueItemResponse
// ReviewQueueItemResponse
{
"actions": [],
"activity": EnrichedActivity,
"ai_text_severity": "string",
"appeal": AppealItemResponse,
"assigned_to": UserResponse,
"bans": [],
"call": CallResponse,
"completed_at": 0,
"config_key": "string",
"created_at": 0,
"entity_creator": EntityCreatorResponse,
"entity_creator_id": "string",
"entity_id": "string",
"entity_type": "string",
"escalated": false,
"escalated_at": 0,
"escalated_by": "string",
"escalation_metadata": EscalationMetadata,
"feeds_v2_activity": EnrichedActivity,
"feeds_v2_reaction": Reaction,
"feeds_v3_activity": FeedsV3ActivityResponse,
"feeds_v3_comment": FeedsV3CommentResponse,
"flags": [],
"flags_count": 0,
"id": "string",
"languages": [],
"latest_moderator_action": "string",
"message": MessageResponse,
"moderation_payload": ModerationPayloadResponse,
"reaction": Reaction,
"recommended_action": "string",
"reviewed_at": 0,
"reviewed_by": "string",
"severity": 0,
"status": "string",
"teams": [],
"updated_at": 0
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| actions | ActionLogResponse[] | Yes | Moderation actions taken |
| ai_text_severity | string | Yes | AI-determined text severity |
| bans | BanInfoResponse[] | Yes | Associated ban records |
| created_at | number | Yes | When the item was created |
| entity_id | string | Yes | ID of the entity being reviewed |
| entity_type | string | Yes | Type of entity being reviewed |
| escalated | boolean | Yes | Whether the item has been escalated |
| flags | ModerationFlagResponse[] | Yes | Associated flag records |
| flags_count | number | Yes | |
| id | string | Yes | Unique identifier of the review queue item |
| languages | string[] | Yes | Detected languages in the content |
| latest_moderator_action | string | Yes | |
| recommended_action | string | Yes | Suggested moderation action |
| reviewed_by | string | Yes | ID of the moderator who reviewed the item |
| severity | number | Yes | Severity level of the content |
| status | string | Yes | Current status of the review |
| updated_at | number | Yes | When the item was last updated |
| activity | EnrichedActivity | No | |
| appeal | AppealItemResponse | No | Appeal submitted for this item if it exists |
| assigned_to | UserResponse | No | Moderator assigned to review this item |
| call | CallResponse | No | |
| completed_at | number | No | When the review was completed |
| config_key | string | No | |
| entity_creator | EntityCreatorResponse | No | Details about who created the entity |
| entity_creator_id | string | No | ID of who created the entity |
| escalated_at | number | No | When the item was escalated |
| escalated_by | string | No | ID of the moderator who escalated the item |
| escalation_metadata | EscalationMetadata | No | Escalation details including reason, notes, and priority |
| feeds_v2_activity | EnrichedActivity | No | Associated feed activity |
| feeds_v2_reaction | Reaction | No | Associated feed reaction |
| feeds_v3_activity | FeedsV3ActivityResponse | No | |
| feeds_v3_comment | FeedsV3CommentResponse | No | |
| message | MessageResponse | No | Associated message details |
| moderation_payload | ModerationPayloadResponse | No | Content being moderated |
| reaction | Reaction | No | |
| reviewed_at | number | No | When the item was reviewed |
| teams | string[] | No | Teams associated with this item |
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 |
SortParam
// SortParam
{
"direction": 0,
"field": "string",
"type": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| direction | number | Yes | |
| field | string | Yes | |
| type | string | Yes |
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 |
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 |
UnblockActionRequestPayload
Configuration for unblock action
// UnblockActionRequestPayload
{
"decision_reason": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| decision_reason | string | No | Reason for the appeal decision |
UpsertConfigResponse
// UpsertConfigResponse
{
"config": ConfigResponse,
"duration": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | string | Yes | |
| config | ConfigResponse | No | The created or updated moderation configuration |
User
// User
{
"data": {},
"id": "string"
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| id | string | Yes | |
| data | Record<string, any> | 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
}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 |
UserResponse
User response object
// UserResponse
{
"avg_response_time": 0,
"banned": false,
"blocked_user_ids": [],
"created_at": 0,
"custom": {},
"deactivated_at": 0,
"deleted_at": 0,
"id": "string",
"image": "string",
"language": "string",
"last_active": 0,
"name": "string",
"online": false,
"revoke_tokens_issued_before": 0,
"role": "string",
"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 |
| 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 |
| 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 | |
| deactivated_at | number | No | Date of deactivation |
| deleted_at | number | No | Date/time of deletion |
| image | string | No | |
| last_active | number | No | Date of last activity |
| name | string | No | Optional name of user |
| revoke_tokens_issued_before | number | No | Revocation date for tokens |
| teams_role | Record<string, any> | 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 | Yes | |
| cascading_actions | boolean | Yes | |
| cids_per_user | number | Yes | |
| enabled | boolean | Yes | |
| first_message_only | boolean | Yes | |
| rules | VelocityFilterConfigRule[] | Yes | |
| async | boolean | 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 | Yes | |
| cascading_action | 'flag' | 'shadow' | 'remove' |
| cascading_threshold | number | Yes | |
| check_message_context | boolean | Yes | |
| fast_spam_threshold | number | Yes | |
| fast_spam_ttl | number | Yes | |
| ip_ban | boolean | Yes | |
| probation_period | number | Yes | |
| shadow_ban | boolean | Yes | |
| slow_spam_threshold | number | Yes | |
| slow_spam_ttl | number | Yes | |
| url_only | boolean | Yes | |
| slow_spam_ban_duration | number | No |
VideoCallRuleConfig
// VideoCallRuleConfig
{
"flag_all_labels": false,
"flagged_labels": [],
"rules": []
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| flag_all_labels | boolean | Yes | |
| flagged_labels | string[] | Yes | |
| rules | HarmConfig[] | Yes |