Appearance
Moderation
About 11774 wordsAbout 39 min
Ruby SDK - Feeds 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
- v2_query_templates
- v2_upsert_template
- v2_delete_template
- 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
Records a moderation action into the log, useful for tracking and auditing moderation activities performed on the platform.
Example
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Insert moderation action log
response = client.feeds.insert_action_log(
action_type: "value",
entity_creator_id: "value",
entity_id: "value",
entity_type: "value",
custom: {},
reason: "value"
)
puts responseResponse: InsertActionLogResponse
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| action_type | String | Yes | Type of moderation action taken |
| entity_creator_id | String | Yes | ID of the user who created the entity |
| entity_id | String | Yes | ID of the entity the action was taken on |
| entity_type | String | Yes | Type of entity the action was taken on |
| custom | Hash | No | Custom metadata for the action log |
| reason | String | No | Reason for the action |
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
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Appeal against the moderation decision
response = client.feeds.appeal(
appeal_reason: "value",
entity_id: "value",
entity_type: "value",
user_id: "john",
user: { id: "activity-123", custom: {} }
)
puts responseExample: with attachments
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Appeal against the moderation decision
response = client.feeds.appeal(
appeal_reason: "value",
entity_id: "value",
entity_type: "value",
attachments: []
)
puts responseResponse: AppealResponse
Parameters
| Parameter | 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 | - |
get_appeal
Retrieve details about a specific appeal, allowing you to track the status and outcome of your request for review.
Example
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Get appeal item
response = client.feeds.get_appeal(
id: "activity-123"
)
puts responseResponse: GetAppealResponse
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | String | Yes | - |
query_appeals
Search and filter through multiple appeals to manage and assess ongoing or past moderation challenges effectively.
Example
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Query Appeals
response = client.feeds.query_appeals(
user_id: "john",
limit: 25,
filter: {}
)
puts responseExample: with sort and next
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Query Appeals
response = client.feeds.query_appeals(
sort: [],
next: nil
)
puts responseExample: with user and prev
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Query Appeals
response = client.feeds.query_appeals(
user: { id: "activity-123", custom: {} },
prev: nil
)
puts responseResponse: QueryAppealsResponse
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| filter | Hash | No | Filter conditions for appeals |
| limit | Integer | No | - |
| next | String | No | - |
| prev | String | No | - |
| sort | []SortParamRequest | No | Sorting parameters for appeals |
| user | UserRequest | No | - |
| user_id | String | No | - |
ban
Restrict a user from accessing services or content, useful when enforcing community guidelines and maintaining a safe environment.
Example
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Ban
response = client.feeds.ban(
target_user_id: "value",
banned_by: { id: "activity-123", custom: {} },
banned_by_id: "value"
)
puts responseExample: with channel_cid and delete_messages
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Ban
response = client.feeds.ban(
target_user_id: "value",
channel_cid: "value",
delete_messages: "value"
)
puts responseExample: with ip_ban and reason
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Ban
response = client.feeds.ban(
target_user_id: "value",
ip_ban: false,
reason: "value"
)
puts responseExample: with shadow and timeout
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Ban
response = client.feeds.ban(
target_user_id: "value",
shadow: false,
timeout: 10
)
puts responseResponse: BanResponse
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| target_user_id | String | Yes | ID of the user to ban |
| banned_by | UserRequest | No | Details about the user performing the ban |
| banned_by_id | String | No | ID of the user performing the ban |
| channel_cid | String | No | Channel where the ban applies |
| delete_messages | String | No | - |
| ip_ban | Boolean | No | Whether to ban the user's IP address |
| reason | String | No | Optional explanation for the ban |
| shadow | Boolean | No | Whether this is a shadow ban |
| timeout | Integer | No | Duration of the ban in minutes |
bulk_image_moderation
Process multiple images simultaneously for content compliance, ideal for efficiently managing large batches of visual content.
Example
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Bulk image moderation
response = client.feeds.bulk_image_moderation(
csv_file: "value"
)
puts responseResponse: BulkImageModerationResponse
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| csv_file | String | Yes | URL to CSV file containing image URLs to moderate |
bypass
Allows a specific content or user to bypass moderation checks, typically used in scenarios where trusted entities need uninterrupted access.
Example
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Bypass Moderation
response = client.feeds.bypass(
enabled: false,
target_user_id: "value"
)
puts responseResponse: BypassResponse
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| enabled | Boolean | Yes | Whether to enable moderation bypass for this user |
| target_user_id | String | Yes | ID of the user to update |
check
Evaluate content against moderation policies to ensure compliance, used to verify that user-generated content adheres to community standards.
Example
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Check
response = client.feeds.check(
entity_creator_id: "value",
entity_id: "value",
entity_type: "value",
user_id: "john",
config_key: "value"
)
puts responseExample: with config_team and content_published_at
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Check
response = client.feeds.check(
entity_creator_id: "value",
entity_id: "value",
entity_type: "value",
config_team: "value",
content_published_at: 10
)
puts responseExample: with moderation_payload and options
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Check
response = client.feeds.check(
entity_creator_id: "value",
entity_id: "value",
entity_type: "value",
moderation_payload: { custom: {} },
options: {}
)
puts responseExample: with test_mode and user
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Check
response = client.feeds.check(
entity_creator_id: "value",
entity_id: "value",
entity_type: "value",
test_mode: false,
user: { id: "activity-123", custom: {} }
)
puts responseResponse: CheckResponse
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| entity_creator_id | String | Yes | ID of the user who created the entity |
| entity_id | String | Yes | Unique identifier of the entity to moderate |
| entity_type | String | Yes | Type of entity to moderate |
| config | ModerationConfig | No | Custom moderation configuration (test mode only) |
| config_key | String | No | Key of the moderation configuration to use |
| config_team | String | No | Team associated with the configuration |
| content_published_at | float | No | Original timestamp when the content was produced (for correlating flagged content with source vid... |
| moderation_payload | ModerationPayload | No | Content to be moderated |
| options | Hash | No | Additional moderation configuration options |
| test_mode | Boolean | No | Whether to run moderation in test mode |
| user | UserRequest | No | - |
| user_id | String | No | - |
check_s3_access
Verifies if an image stored in Amazon S3 is accessible, ensuring that media files are correctly permissioned and available for use.
Example
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Check S3 image access
response = client.feeds.check_s3_access(
s3_url: "value"
)
puts responseResponse: CheckS3AccessResponse
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| s3_url | String | No | Optional stream+s3:// reference to test access against |
upsert_config
Create or update rules for content moderation, enabling customization and refinement of moderation strategies to suit specific needs.
Example
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Create or update moderation configuration
response = client.feeds.upsert_config(
key: "value",
user_id: "john",
ai_text_config: { async: false }
)
puts responseExample: with ai_video_config and async
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Create or update moderation configuration
response = client.feeds.upsert_config(
key: "value",
ai_video_config: { async: false },
async: false
)
puts responseExample: with automod_platform_circumvention_config and automod_semantic_filters_config
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Create or update moderation configuration
response = client.feeds.upsert_config(
key: "value",
automod_platform_circumvention_config: { async: false },
automod_semantic_filters_config: { async: false }
)
puts responseExample: with automod_toxicity_config and aws_rekognition_config
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Create or update moderation configuration
response = client.feeds.upsert_config(
key: "value",
automod_toxicity_config: { async: false },
aws_rekognition_config: { async: false }
)
puts responseResponse: UpsertConfigResponse
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| key | String | Yes | Unique identifier for the moderation configuration |
| ai_image_config | AIImageConfig | No | Configuration for AI image analysis |
| ai_text_config | AITextConfig | No | Configuration for AI text analysis |
| ai_video_config | AIVideoConfig | No | Configuration for AI video analysis |
| async | Boolean | No | Whether moderation should be performed asynchronously |
| 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 |
| aws_rekognition_config | AIImageConfig | No | - |
| block_list_config | BlockListConfig | No | Configuration for block list filtering |
| bodyguard_config | AITextConfig | No | - |
| google_vision_config | GoogleVisionConfig | No | Configuration for Google Vision integration |
| llm_config | LLMConfig | No | Configuration for customer-configured LLM moderation |
| rule_builder_config | RuleBuilderConfig | No | Configuration for custom rule builder (max 3 rules, max 5 conditions per rule) |
| team | String | No | Team associated with the configuration |
| user | UserRequest | No | - |
| user_id | String | No | Optional user ID to associate with the audit log entry |
| velocity_filter_config | VelocityFilterConfig | No | Configuration for velocity-based filtering |
| video_call_rule_config | VideoCallRuleConfig | No | - |
get_config
Access the current configuration settings for moderation, allowing you to review and understand the active rules and policies.
Example
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Get moderation configuration
response = client.feeds.get_config(
key: "value",
team: "value"
)
puts responseResponse: GetConfigResponse
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| key | String | Yes | - |
| team | String | No | - |
delete_config
Remove an existing moderation policy, useful for retiring outdated rules or simplifying moderation strategies.
Example
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Delete a moderation policy
response = client.feeds.delete_config(
key: "value",
user_id: "john",
team: "value"
)
puts responseResponse: DeleteModerationConfigResponse
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| key | String | Yes | - |
| team | String | No | - |
| user_id | String | No | - |
query_moderation_configs
Search through various moderation configurations to compare, audit, or manage different policy setups efficiently.
Example
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Query moderation configurations
response = client.feeds.query_moderation_configs(
user_id: "john",
limit: 25,
filter: {}
)
puts responseExample: with sort and next
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Query moderation configurations
response = client.feeds.query_moderation_configs(
sort: [],
next: nil
)
puts responseExample: with user and prev
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Query moderation configurations
response = client.feeds.query_moderation_configs(
user: { id: "activity-123", custom: {} },
prev: nil
)
puts responseResponse: QueryModerationConfigsResponse
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| filter | Hash | No | Filter conditions for moderation configs |
| limit | Integer | No | - |
| next | String | No | - |
| prev | String | No | - |
| sort | []SortParamRequest | No | Sorting parameters for the results |
| user | UserRequest | No | - |
| user_id | String | No | - |
custom_check
Performs a custom check on content to determine if it adheres to specific moderation criteria, useful for applying tailored moderation rules to unique content types.
Example
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Custom check endpoint
response = client.feeds.custom_check(
entity_id: "value",
entity_type: "value",
flags: [],
user_id: "john",
moderation_payload: { custom: {} }
)
puts responseExample: with user and entity_creator_id
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Custom check endpoint
response = client.feeds.custom_check(
entity_id: "value",
entity_type: "value",
flags: [],
user: { id: "activity-123", custom: {} },
entity_creator_id: "value"
)
puts responseResponse: CustomCheckResponse
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| entity_id | String | Yes | Unique identifier of the entity |
| entity_type | String | Yes | Type of entity to perform custom check on |
| flags | []CustomCheckFlag | Yes | List of custom check flags (1-10 flags required) |
| entity_creator_id | String | No | ID of the user who created the entity (required for non-message entities) |
| moderation_payload | ModerationPayloadRequest | No | Content to be checked (required for non-message entities) |
| user | UserRequest | No | - |
| user_id | String | No | - |
v2_query_templates
Retrieves a list of available moderation templates, helping users to understand and select predefined moderation criteria that can be applied to their content.
Example
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Query feed moderation templates
response = client.feeds.v2_query_templates
puts responseResponse: QueryFeedModerationTemplatesResponse
v2_upsert_template
Creates or updates a moderation template, allowing users to define or modify the criteria used for evaluating content across feeds.
Example
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Upsert feeds template
response = client.feeds.v2_upsert_template(
config: { data_types: {}, config_key: "value" },
name: "My Feed"
)
puts responseResponse: UpsertModerationTemplateResponse
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| config | FeedsModerationTemplateConfigPayload | Yes | Configuration for the moderation template |
| name | String | Yes | Name of the moderation template |
v2_delete_template
Removes a specified moderation template, enabling users to manage and streamline the moderation criteria available for content evaluation.
Example
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Delete a moderation template
response = client.feeds.v2_delete_template
puts responseResponse: DeleteModerationTemplateResponse
flag
Marks content for moderation review, allowing users to identify and address potentially inappropriate or harmful content within their feeds.
Example
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Flag content for moderation
response = client.feeds.flag(
entity_id: "value",
entity_type: "value",
user_id: "john",
entity_creator_id: "value"
)
puts responseExample: with moderation_payload and reason
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Flag content for moderation
response = client.feeds.flag(
entity_id: "value",
entity_type: "value",
moderation_payload: { custom: {} },
reason: "value"
)
puts responseExample: with user and custom
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Flag content for moderation
response = client.feeds.flag(
entity_id: "value",
entity_type: "value",
user: { id: "activity-123", custom: {} },
custom: {}
)
puts responseResponse: FlagResponse
Parameters
| Parameter | 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 | Hash | 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 | - |
get_flag_count
Retrieves the total number of flags raised against a user, enabling moderation teams to assess user behavior and identify potential issues.
Example
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Get flag count for a user
response = client.feeds.get_flag_count(
entity_creator_id: "value",
entity_type: "value"
)
puts responseResponse: GetFlagCountResponse
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| entity_creator_id | String | Yes | ID of the user whose content was flagged |
| entity_type | String | No | Optional entity type filter (e.g., stream:chat:v1:message, stream:user) |
query_moderation_flags
Fetches a list of content that has been flagged for moderation, assisting users in monitoring and reviewing items that may breach community standards.
Example
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Query moderation flags
response = client.feeds.query_moderation_flags(
limit: 25,
filter: {},
sort: []
)
puts responseExample: with prev and next
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Query moderation flags
response = client.feeds.query_moderation_flags(
prev: nil,
next: nil
)
puts responseResponse: QueryModerationFlagsResponse
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| filter | Hash | No | - |
| limit | Integer | No | - |
| next | String | No | - |
| prev | String | No | - |
| sort | []SortParamRequest | No | - |
query_moderation_logs
Provides access to logs of moderation actions taken, offering users transparency and the ability to audit past moderation decisions and activities.
Example
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Query moderation action logs
response = client.feeds.query_moderation_logs(
user_id: "john",
limit: 25,
filter: {}
)
puts responseExample: with sort and next
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Query moderation action logs
response = client.feeds.query_moderation_logs(
sort: [],
next: nil
)
puts responseExample: with user and prev
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Query moderation action logs
response = client.feeds.query_moderation_logs(
user: { id: "activity-123", custom: {} },
prev: nil
)
puts responseResponse: QueryModerationLogsResponse
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| filter | Hash | No | Filter conditions for moderation logs |
| limit | Integer | No | - |
| next | String | No | - |
| prev | String | No | - |
| sort | []SortParamRequest | No | Sorting parameters for the results |
| user | UserRequest | No | - |
| user_id | String | No | - |
upsert_moderation_rule
Creates or updates a specific moderation rule, enabling users to customize the criteria used to assess and manage content within their platform.
Example
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Upsert moderation rule
response = client.feeds.upsert_moderation_rule(
name: "My Feed",
rule_type: "value",
user_id: "john",
action_sequences: []
)
puts responseExample: with conditions and config_keys
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Upsert moderation rule
response = client.feeds.upsert_moderation_rule(
name: "My Feed",
rule_type: "value",
conditions: [],
config_keys: []
)
puts responseExample: with cooldown_period and description
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Upsert moderation rule
response = client.feeds.upsert_moderation_rule(
name: "My Feed",
rule_type: "value",
cooldown_period: "value",
description: "A description"
)
puts responseExample: with enabled and groups
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Upsert moderation rule
response = client.feeds.upsert_moderation_rule(
name: "My Feed",
rule_type: "value",
enabled: false,
groups: []
)
puts responseResponse: UpsertModerationRuleResponse
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| name | String | Yes | Unique rule name |
| rule_type | String | Yes | Type of rule: user, content, or call |
| action | RuleBuilderAction | No | Action for user/content rules |
| action_sequences | []CallRuleActionSequence | No | Escalation sequences for call rules |
| conditions | []RuleBuilderCondition | No | Flat list of conditions (legacy) |
| config_keys | []string | No | List of config keys this rule applies to |
| cooldown_period | String | No | Duration before rule can trigger again (e.g. 24h, 7d) |
| description | String | No | Optional description of the rule |
| enabled | Boolean | No | Whether the rule is active |
| groups | []RuleBuilderConditionGroup | No | Nested condition groups |
| logic | String | No | Logical operator between conditions/groups: AND or OR |
| team | String | No | Team scope for the rule |
| user | UserRequest | No | - |
| user_id | String | No | Optional user ID to associate with the audit log entry |
get_moderation_rule
Retrieves details of a specified moderation rule, helping users to review and understand the criteria applied to content moderation processes.
Example
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Get moderation rule
response = client.feeds.get_moderation_rule
puts responseResponse: GetModerationRuleResponse
delete_moderation_rule
Removes a specified moderation rule, allowing users to adjust and refine the moderation criteria in use by eliminating obsolete or unnecessary rules.
Example
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Delete moderation rule
response = client.feeds.delete_moderation_rule(
user_id: "john"
)
puts responseResponse: DeleteModerationRuleResponse
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| user_id | String | No | - |
query_moderation_rules
Retrieve the current set of moderation rules to understand the guidelines and criteria used for moderating content. Use this method to ensure compliance with moderation standards or to inform users of the rules.
Example
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Query moderation rules
response = client.feeds.query_moderation_rules(
user_id: "john",
limit: 25,
filter: {}
)
puts responseExample: with sort and next
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Query moderation rules
response = client.feeds.query_moderation_rules(
sort: [],
next: nil
)
puts responseExample: with user and prev
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Query moderation rules
response = client.feeds.query_moderation_rules(
user: { id: "activity-123", custom: {} },
prev: nil
)
puts responseResponse: QueryModerationRulesResponse
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| filter | Hash | No | Filter conditions for moderation rules |
| limit | Integer | No | - |
| next | String | No | - |
| prev | String | No | - |
| sort | []SortParamRequest | No | Sorting parameters for the results |
| user | UserRequest | No | - |
| user_id | String | No | - |
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
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Mute
response = client.feeds.mute(
target_ids: [],
user_id: "john",
user: { id: "activity-123", custom: {} }
)
puts responseExample: with timeout
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Mute
response = client.feeds.mute(
target_ids: [],
timeout: 10
)
puts responseResponse: MuteResponse
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| target_ids | []string | Yes | User IDs to mute (if multiple users) |
| timeout | Integer | No | Duration of mute in minutes |
| user | UserRequest | No | - |
| user_id | String | No | - |
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
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Query review queue items
response = client.feeds.query_review_queue(
user_id: "john",
limit: 25,
filter: {}
)
puts responseExample: with sort and lock_items
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Query review queue items
response = client.feeds.query_review_queue(
sort: [],
lock_items: false
)
puts responseExample: with next and prev
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Query review queue items
response = client.feeds.query_review_queue(
next: nil,
prev: nil
)
puts responseExample: with lock_count and stats_only
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Query review queue items
response = client.feeds.query_review_queue(
lock_count: 10,
stats_only: false
)
puts responseResponse: QueryReviewQueueResponse
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| filter | Hash | No | Filter conditions for review queue items |
| limit | Integer | No | - |
| lock_count | Integer | No | Number of items to lock (1-25) |
| lock_duration | Integer | No | Duration for which items should be locked |
| lock_items | Boolean | No | Whether to lock items for review (true), unlock items (false), or just fetch (nil) |
| next | String | No | - |
| prev | String | No | - |
| sort | []SortParamRequest | No | Sorting parameters for the results |
| stats_only | Boolean | No | Whether to return only statistics |
| user | UserRequest | No | - |
| user_id | String | No | - |
get_review_queue_item
Retrieve detailed information about a specific item in the review queue to make informed moderation decisions. Employ this method when you need to assess an individual piece of content thoroughly.
Example
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Get review queue item
response = client.feeds.get_review_queue_item(
id: "activity-123"
)
puts responseResponse: GetReviewQueueItemResponse
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | String | Yes | - |
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
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Submit moderation action
response = client.feeds.submit_action(
action_type: "value",
user_id: "john",
ban: { ban_from_future_channels: false }
)
puts responseExample: with block and bypass
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Submit moderation action
response = client.feeds.submit_action(
action_type: "value",
block: { reason: "value" },
bypass: { enabled: false }
)
puts responseExample: with custom and delete_activity
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Submit moderation action
response = client.feeds.submit_action(
action_type: "value",
custom: { id: "activity-123" },
delete_activity: { entity_id: "value" }
)
puts responseExample: with delete_comment and delete_message
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Submit moderation action
response = client.feeds.submit_action(
action_type: "value",
delete_comment: { entity_id: "value" },
delete_message: { entity_id: "value" }
)
puts responseResponse: SubmitActionResponse
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| action_type | String | Yes | Type of moderation action to perform. One of: mark_reviewed, delete_message, delete_activity, del... |
| appeal_id | String | No | UUID of the appeal to act on (required for reject_appeal, optional for other actions) |
| ban | BanActionRequestPayload | No | Configuration for ban action |
| block | BlockActionRequestPayload | No | Configuration for block action |
| bypass | BypassActionRequest | No | Configuration for bypass moderation action |
| custom | CustomActionRequestPayload | No | Configuration for custom action |
| delete_activity | DeleteActivityRequestPayload | No | Configuration for activity deletion action |
| delete_comment | DeleteCommentRequestPayload | No | Configuration for comment deletion action |
| delete_message | DeleteMessageRequestPayload | No | Configuration for message deletion action |
| delete_reaction | DeleteReactionRequestPayload | No | Configuration for reaction deletion action |
| delete_user | DeleteUserRequestPayload | No | Configuration for user deletion action |
| escalate | EscalatePayload | No | Configuration for escalation action |
| flag | FlagRequest | No | Configuration for flag action |
| item_id | String | No | UUID of the review queue item to act on |
| mark_reviewed | MarkReviewedRequestPayload | No | Configuration for marking item as reviewed |
| reject_appeal | RejectAppealRequestPayload | No | Configuration for rejecting an appeal |
| restore | RestoreActionRequestPayload | No | Configuration for restore action |
| shadow_block | ShadowBlockActionRequestPayload | No | Configuration for shadow block action |
| unban | UnbanActionRequestPayload | No | Configuration for unban action |
| unblock | UnblockActionRequestPayload | No | Configuration for unblock action |
| user | UserRequest | No | - |
| user_id | String | No | - |
unban
Lift a ban on a user, restoring their ability to interact with the platform. Use this method to reinstate a previously banned user after determining that the ban is no longer necessary.
Example
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Unban
response = client.feeds.unban(
target_user_id: "value",
channel_cid: "value",
created_by: "value"
)
puts responseExample: with unbanned_by and unbanned_by_id
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Unban
response = client.feeds.unban(
target_user_id: "value",
unbanned_by: { id: "activity-123", custom: {} },
unbanned_by_id: "value"
)
puts responseResponse: UnbanResponse
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| target_user_id | String | Yes | - |
| channel_cid | String | No | - |
| created_by | String | No | - |
| unbanned_by | UserRequest | No | Details about the user performing the unban |
| unbanned_by_id | String | No | ID of the user performing the unban |
unmute
Remove a mute restriction from a user, allowing them to resume posting and interacting on the platform. Use this method to restore communication privileges to a user after a mute period has ended or is deemed unnecessary.
Example
require 'getstream_ruby'
client = GetStreamRuby.manual(api_key: api_key, api_secret: api_secret)
# Unmute a user
response = client.feeds.unmute(
target_ids: [],
user_id: "john",
user: { id: "activity-123", custom: {} }
)
puts responseResponse: UnmuteResponse
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| target_ids | []string | Yes | User IDs to unmute |
| user | UserRequest | No | - |
| user_id | String | No | - |
Types Reference
This section documents the types/interfaces used in this API. These types are extracted from the OpenAPI specification.
AIImageConfig
# AIImageConfig hash structure
{
async: Boolean, #
enabled: Boolean, #
ocr_rules: Array, #
rules: Array #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| async | Boolean | No | |
| enabled | Boolean | No | |
| ocr_rules | Array | No | |
| rules | Array | No |
AIImageLabelDefinition
# AIImageLabelDefinition hash structure
{
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 hash structure
{
async: Boolean, #
enabled: Boolean, #
profile: String, #
rules: Array, #
severity_rules: Array #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| async | Boolean | No | |
| enabled | Boolean | No | |
| profile | String | No | |
| rules | Array | No | |
| severity_rules | Array | No |
AIVideoConfig
# AIVideoConfig hash structure
{
async: Boolean, #
enabled: Boolean, #
rules: Array #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| async | Boolean | No | |
| enabled | Boolean | No | |
| rules | Array | No |
AWSRekognitionRule
# AWSRekognitionRule hash structure
{
action: String, #
label: String, #
min_confidence: Numeric, #
subclassifications: Hash #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| action | String | Yes | |
| label | String | Yes | |
| min_confidence | Numeric | Yes | |
| subclassifications | Hash | No |
Action
# Action hash structure
{
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 hash structure
{
ai_providers: Array, #
created_at: Numeric, # Timestamp when the action was taken
custom: Hash, # Additional metadata about the action
id: String, # Unique identifier of the action log
reason: String, # Reason for the moderation action
review_queue_item: ReviewQueueItemResponse, # Associated review queue item
target_user: UserResponse, # User who was the target of the action
target_user_id: String, # ID of the user who was the target of the action
type: String, # Type of moderation action
user: UserResponse, # User who performed the action
user_id: String # ID of the user who performed the action
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| ai_providers | Array | Yes | |
| created_at | Numeric | Yes | Timestamp when the action was taken |
| custom | Hash | 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 hash structure
{
action: String, #
blur: Boolean, #
cooldown_period: Numeric, #
threshold: Numeric, #
time_window: Numeric, #
warning: Boolean, #
warning_text: String #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| action | String | No | |
| blur | Boolean | No | |
| cooldown_period | Numeric | No | |
| threshold | Numeric | No | |
| time_window | Numeric | No | |
| warning | Boolean | No | |
| warning_text | String | No |
ActivityRequest
# ActivityRequest hash structure
{
attachments: Array, # List of attachments for the activity
collection_refs: Array, # Collections that this activity references
copy_custom_to_notification: Boolean, # Whether to copy custom data to the notification activity (only applies when create_notification_activity is true) Deprecated: use notification_context.trigger.custom and notification_context.target.custom instead
create_notification_activity: Boolean, # Whether to create notification activities for mentioned users
custom: Hash, # Custom data for the activity
expires_at: String, # Expiration time for the activity
feeds: Array, # List of feeds to add the activity to with a default max limit of 25 feeds
filter_tags: Array, # Tags for filtering activities
id: String, # Optional ID for the activity
interest_tags: Array, # Tags for indicating user interests
location: Location, # Geographic location related to the activity
mentioned_user_ids: Array, # List of users mentioned in the activity
parent_id: String, # ID of parent activity for replies/comments
poll_id: String, # ID of a poll to attach to activity
restrict_replies: String, # Controls who can add comments/replies to this activity. One of: everyone, people_i_follow, nobody
search_data: Hash, # Additional data for search indexing
skip_enrich_url: Boolean, # Whether to skip URL enrichment for the activity
skip_push: Boolean, # Whether to skip push notifications
text: String, # Text content of the activity
type: String, # Type of activity
user_id: String, # ID of the user creating the activity
visibility: String, # Visibility setting for the activity. One of: public, private, tag
visibility_tag: String # If visibility is 'tag', this is the tag name and is required
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| feeds | Array | Yes | List of feeds to add the activity to with a default max limit of 25 feeds |
| type | String | Yes | Type of activity |
| attachments | Array | No | List of attachments for the activity |
| collection_refs | Array | 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 | Hash | No | Custom data for the activity |
| expires_at | String | No | Expiration time for the activity |
| filter_tags | Array | No | Tags for filtering activities |
| id | String | No | Optional ID for the activity |
| interest_tags | Array | No | Tags for indicating user interests |
| location | Location | No | Geographic location related to the activity |
| mentioned_user_ids | Array | 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 | String | No | Controls who can add comments/replies to this activity. One of: everyone, peo... |
| search_data | Hash | 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 |
| user_id | String | No | ID of the user creating the activity |
| visibility | String | No | Visibility setting for the activity. One of: public, private, tag |
| visibility_tag | String | No | If visibility is 'tag', this is the tag name and is required |
AppealItemResponse
# AppealItemResponse hash structure
{
appeal_reason: String, # Reason Text of the Appeal Item
attachments: Array, # Attachments(e.g. Images) of the Appeal Item
created_at: Numeric, # When the flag was created
decision_reason: String, # Decision Reason of the Appeal Item
entity_content: ModerationPayload, #
entity_id: String, # ID of the entity
entity_type: String, # Type of entity
id: String, #
status: String, # Status of the Appeal Item
updated_at: Numeric, # When the flag was last updated
user: UserResponse # Details of the user who created the appeal
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| appeal_reason | String | Yes | Reason Text of the Appeal Item |
| created_at | Numeric | 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 | Numeric | Yes | When the flag was last updated |
| attachments | Array | 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 hash structure
{
appeal_reason: String, # Explanation for why the content is being appealed
attachments: Array, # Array of Attachment URLs(e.g., images)
entity_id: String, # Unique identifier of the entity being appealed
entity_type: String, # Type of entity being appealed (e.g., message, user)
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 | Array | No | Array of Attachment URLs(e.g., images) |
| user | UserRequest | No | |
| user_id | String | No |
AppealResponse
# AppealResponse hash structure
{
appeal_id: String, # Unique identifier of the created Appeal item
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 hash structure
{
actions: Array, #
asset_url: String, #
author_icon: String, #
author_link: String, #
author_name: String, #
color: String, #
custom: Hash, #
fallback: String, #
fields: Array, #
footer: String, #
footer_icon: String, #
giphy: Images, #
image_url: String, #
og_scrape_url: String, #
original_height: Numeric, #
original_width: Numeric, #
pretext: String, #
text: String, #
thumb_url: String, #
title: String, #
title_link: String, #
type: String # Attachment type (e.g. image, video, url)
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| custom | Hash | Yes | |
| actions | Array | No | |
| asset_url | String | No | |
| author_icon | String | No | |
| author_link | String | No | |
| author_name | String | No | |
| color | String | No | |
| fallback | String | No | |
| fields | Array | No | |
| footer | String | No | |
| footer_icon | String | No | |
| giphy | Images | No | |
| image_url | String | No | |
| og_scrape_url | String | No | |
| original_height | Numeric | No | |
| original_width | Numeric | 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 hash structure
{
async: Boolean, #
enabled: Boolean, #
rules: Array #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| async | Boolean | No | |
| enabled | Boolean | No | |
| rules | Array | No |
AutomodRule
# AutomodRule hash structure
{
action: String, #
label: String, #
threshold: Numeric #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| action | String | Yes | |
| label | String | Yes | |
| threshold | Numeric | Yes |
AutomodSemanticFiltersConfig
# AutomodSemanticFiltersConfig hash structure
{
async: Boolean, #
enabled: Boolean, #
rules: Array #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| async | Boolean | No | |
| enabled | Boolean | No | |
| rules | Array | No |
AutomodSemanticFiltersRule
# AutomodSemanticFiltersRule hash structure
{
action: String, #
name: String, #
threshold: Numeric #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| action | String | Yes | |
| name | String | Yes | |
| threshold | Numeric | Yes |
AutomodToxicityConfig
# AutomodToxicityConfig hash structure
{
async: Boolean, #
enabled: Boolean, #
rules: Array #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| async | Boolean | No | |
| enabled | Boolean | No | |
| rules | Array | No |
BanActionRequestPayload
Configuration for ban moderation action
# BanActionRequestPayload hash structure
{
ban_from_future_channels: Boolean, # Also ban user from all channels this moderator creates in the future
channel_ban_only: Boolean, # Ban only from specific channel
channel_cid: String, #
delete_messages: String, # Message deletion mode: soft, pruning, or hard
ip_ban: Boolean, # Whether to ban by IP address
reason: String, # Reason for the ban
shadow: Boolean, # Whether this is a shadow ban
target_user_id: String, # Optional: ban user directly without review item
timeout: Numeric # Duration of ban in minutes
}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 | String | No | Message deletion mode: soft, pruning, or 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 | Numeric | No | Duration of ban in minutes |
BanOptions
# BanOptions hash structure
{
delete_messages: String, #
duration: Numeric, #
ip_ban: Boolean, #
reason: String, #
shadow_ban: Boolean #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| delete_messages | String | No | |
| duration | Numeric | No | |
| ip_ban | Boolean | No | |
| reason | String | No | |
| shadow_ban | Boolean | No |
BanResponse
# BanResponse hash structure
{
duration: String #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | String | Yes |
BlockActionRequestPayload
Configuration for block action
# BlockActionRequestPayload hash structure
{
reason: String # Reason for blocking
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| reason | String | No | Reason for blocking |
BlockListConfig
# BlockListConfig hash structure
{
async: Boolean, #
enabled: Boolean, #
match_substring: Boolean, #
rules: Array #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| async | Boolean | No | |
| enabled | Boolean | No | |
| match_substring | Boolean | No | |
| rules | Array | No |
BlockListRule
# BlockListRule hash structure
{
action: String, #
name: String, #
team: String #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| action | String | Yes | |
| name | String | No | |
| team | String | No |
BodyguardImageAnalysisConfig
# BodyguardImageAnalysisConfig hash structure
{
rules: Array #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| rules | Array | No |
BodyguardRule
# BodyguardRule hash structure
{
action: String, #
label: String, #
severity_rules: Array #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| label | String | Yes | |
| action | String | No | |
| severity_rules | Array | No |
BodyguardSeverityRule
# BodyguardSeverityRule hash structure
{
action: String, #
severity: String #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| action | String | Yes | |
| severity | String | Yes |
BulkImageModerationResponse
# BulkImageModerationResponse hash structure
{
duration: String, #
task_id: String # ID of the task for processing the bulk image moderation
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | String | Yes | |
| task_id | String | Yes | ID of the task for processing the bulk image moderation |
BypassActionRequest
# BypassActionRequest hash structure
{
enabled: Boolean #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| enabled | Boolean | No |
BypassResponse
# BypassResponse hash structure
{
duration: String #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | String | Yes |
CallActionOptions
# CallActionOptions hash structure
{
duration: Numeric, #
flag_reason: String, #
kick_reason: String, #
mute_audio: Boolean, #
mute_video: Boolean, #
reason: String, #
warning_text: String #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | Numeric | 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 hash structure
{
operator: String, #
property_key: String #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| operator | String | No | |
| property_key | String | No |
CallRuleActionSequence
# CallRuleActionSequence hash structure
{
actions: Array, #
call_options: CallActionOptions, #
violation_number: Numeric #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| actions | Array | No | |
| call_options | CallActionOptions | No | |
| violation_number | Numeric | No |
CallTypeRuleParameters
# CallTypeRuleParameters hash structure
{
call_type: String #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| call_type | String | No |
CallViolationCountParameters
# CallViolationCountParameters hash structure
{
threshold: Numeric, #
time_window: String #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| threshold | Numeric | No | |
| time_window | String | No |
CheckResponse
# CheckResponse hash structure
{
duration: String, #
item: ReviewQueueItemResponse, # Review queue item (present if action != keep)
recommended_action: String, # Suggested action based on moderation results
status: String, # Status of the moderation check (completed or pending)
task_id: String, # ID of the running moderation task
triggered_rule: TriggeredRuleResponse # Rule triggered by evaluation, with resolved actions and escalation details
}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 hash structure
{
duration: String, #
message: String, # Descriptive message about the check result
success: Boolean # Whether the S3 access check succeeded
}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 hash structure
{
harm_labels: Array, #
llm_harm_labels: Hash, #
threshold: Numeric #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| harm_labels | Array | No | |
| llm_harm_labels | Hash | No | |
| threshold | Numeric | No |
ConfigResponse
# ConfigResponse hash structure
{
ai_image_config: AIImageConfig, # Configuration for AI image analysis
ai_image_label_definitions: Array, # Configurable image moderation label definitions for dashboard rendering
ai_image_subclassifications: Hash, # Available L2 subclassifications per L1 image moderation label, based on the active provider
ai_text_config: AITextConfig, # Configuration for AI text analysis
ai_video_config: AIVideoConfig, # Configuration for AI video analysis
async: Boolean, # Whether moderation should be performed asynchronously
automod_platform_circumvention_config: AutomodPlatformCircumventionConfig, # Configuration for platform circumvention detection
automod_semantic_filters_config: AutomodSemanticFiltersConfig, # Configuration for semantic filtering
automod_toxicity_config: AutomodToxicityConfig, # Configuration for toxicity detection
block_list_config: BlockListConfig, # Configuration for block list filtering
created_at: Numeric, # When the configuration was created
key: String, # Unique identifier for the moderation configuration
llm_config: LLMConfig, # Configuration for customer-configured LLM moderation
supported_video_call_harm_types: Array, #
team: String, # Team associated with the configuration
updated_at: Numeric, # When the configuration was last updated
velocity_filter_config: VelocityFilterConfig, # Configuration for velocity-based filtering
video_call_rule_config: VideoCallRuleConfig #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| async | Boolean | Yes | Whether moderation should be performed asynchronously |
| created_at | Numeric | Yes | When the configuration was created |
| key | String | Yes | Unique identifier for the moderation configuration |
| supported_video_call_harm_types | Array | Yes | |
| team | String | Yes | Team associated with the configuration |
| updated_at | Numeric | Yes | When the configuration was last updated |
| ai_image_config | AIImageConfig | No | Configuration for AI image analysis |
| ai_image_label_definitions | Array | No | Configurable image moderation label definitions for dashboard rendering |
| ai_image_subclassifications | Hash | 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 hash structure
{
threshold: Numeric, #
time_window: String #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| threshold | Numeric | No | |
| time_window | String | No |
CustomActionRequestPayload
Configuration for custom moderation action
# CustomActionRequestPayload hash structure
{
id: String, # Custom action identifier
options: Hash # Custom action options
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| id | String | No | Custom action identifier |
| options | Hash | No | Custom action options |
CustomCheckFlag
# CustomCheckFlag hash structure
{
custom: Hash, # Additional metadata for the flag
labels: Array, # Labels from various moderation sources
reason: String, # Optional explanation for the flag
type: String # Type of check (custom_check_text, custom_check_image, custom_check_video)
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| type | String | Yes | Type of check (custom_check_text, custom_check_image, custom_check_video) |
| custom | Hash | No | Additional metadata for the flag |
| labels | Array | No | Labels from various moderation sources |
| reason | String | No | Optional explanation for the flag |
CustomCheckResponse
# CustomCheckResponse hash structure
{
duration: String, #
id: String, # Unique identifier of the custom check
item: ReviewQueueItemResponse, # Review queue item details
status: String # Status of the custom check
}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 hash structure
{
entity_id: String, # ID of the activity to delete (alternative to item_id)
entity_type: String, # Type of the entity (required for delete_activity to distinguish v2 vs v3)
hard_delete: Boolean, # Whether to permanently delete the activity
reason: String # Reason for deletion
}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 hash structure
{
entity_id: String, # ID of the comment to delete (alternative to item_id)
entity_type: String, # Type of the entity
hard_delete: Boolean, # Whether to permanently delete the comment
reason: String # Reason for deletion
}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 hash structure
{
entity_id: String, # ID of the message to delete (alternative to item_id)
entity_type: String, # Type of the entity
hard_delete: Boolean, # Whether to permanently delete the message
reason: String # Reason for deletion
}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 hash structure
{
duration: String #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | String | Yes |
DeleteModerationRuleResponse
Basic response information
# DeleteModerationRuleResponse hash structure
{
duration: String # Duration of the request in milliseconds
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | String | Yes | Duration of the request in milliseconds |
DeleteModerationTemplateResponse
# DeleteModerationTemplateResponse hash structure
{
duration: String #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | String | Yes |
DeleteReactionRequestPayload
Configuration for reaction deletion action
# DeleteReactionRequestPayload hash structure
{
entity_id: String, # ID of the reaction to delete (alternative to item_id)
entity_type: String, # Type of the entity
hard_delete: Boolean, # Whether to permanently delete the reaction
reason: String # Reason for deletion
}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 hash structure
{
delete_conversation_channels: Boolean, # Also delete all user conversations
delete_feeds_content: Boolean, # Delete flagged feeds content
entity_id: String, # ID of the user to delete (alternative to item_id)
entity_type: String, # Type of the entity
hard_delete: Boolean, # Whether to permanently delete the user
mark_messages_deleted: Boolean, # Also delete all user messages
reason: String # Reason for deletion
}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 hash structure
{
notes: String, # Additional context for the reviewer
priority: String, # Priority of the escalation (low, medium, high)
reason: String # Reason for the escalation (from configured escalation_reasons)
}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 hash structure
{
config_key: String, # Key of the moderation configuration to use
data_types: Hash # Map of data type names to their content types
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| data_types | Hash | Yes | Map of data type names to their content types |
| config_key | String | No | Key of the moderation configuration to use |
Field
# Field hash structure
{
short: Boolean, #
title: String, #
value: String #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| short | Boolean | Yes | |
| title | String | Yes | |
| value | String | Yes |
FilterConfigResponse
# FilterConfigResponse hash structure
{
ai_text_labels: Array, #
config_keys: Array, #
llm_labels: Array #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| llm_labels | Array | Yes | |
| ai_text_labels | Array | No | |
| config_keys | Array | No |
FlagCountRuleParameters
# FlagCountRuleParameters hash structure
{
threshold: Numeric #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| threshold | Numeric | No |
FlagRequest
# FlagRequest hash structure
{
custom: Hash, # Additional metadata about the flag
entity_creator_id: String, # ID of the user who created the flagged entity
entity_id: String, # Unique identifier of the entity being flagged
entity_type: String, # Type of entity being flagged (e.g., message, user)
moderation_payload: ModerationPayload, # Content being flagged
reason: String, # Optional explanation for why the content is being flagged
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 | Hash | 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 hash structure
{
duration: String, #
item_id: String # Unique identifier of the created moderation item
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | String | Yes | |
| item_id | String | Yes | Unique identifier of the created moderation item |
FlagUserOptions
# FlagUserOptions hash structure
{
reason: String #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| reason | String | No |
GetAppealResponse
# GetAppealResponse hash structure
{
duration: String, #
item: AppealItemResponse # Current state of the appeal
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | String | Yes | |
| item | AppealItemResponse | No | Current state of the appeal |
GetConfigResponse
# GetConfigResponse hash structure
{
config: ConfigResponse, # The retrieved moderation configuration
duration: String #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | String | Yes | |
| config | ConfigResponse | No | The retrieved moderation configuration |
GetFlagCountResponse
# GetFlagCountResponse hash structure
{
count: Numeric, # Total number of flags against the specified user's content
duration: String #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| count | Numeric | Yes | Total number of flags against the specified user's content |
| duration | String | Yes |
GetModerationRuleResponse
Basic response information
# GetModerationRuleResponse hash structure
{
duration: String, # Duration of the request in milliseconds
rule: ModerationRuleV2Response #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | String | Yes | Duration of the request in milliseconds |
| rule | ModerationRuleV2Response | No |
GetReviewQueueItemResponse
# GetReviewQueueItemResponse hash structure
{
duration: String, #
item: ReviewQueueItemResponse # Current state of the review queue item
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | String | Yes | |
| item | ReviewQueueItemResponse | No | Current state of the review queue item |
GoogleVisionConfig
# GoogleVisionConfig hash structure
{
enabled: Boolean #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| enabled | Boolean | No |
HarmConfig
# HarmConfig hash structure
{
action_sequences: Array, #
cooldown_period: Numeric, #
harm_types: Array, #
severity: Numeric, #
threshold: Numeric #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| action_sequences | Array | No | |
| cooldown_period | Numeric | No | |
| harm_types | Array | No | |
| severity | Numeric | No | |
| threshold | Numeric | No |
ImageContentParameters
# ImageContentParameters hash structure
{
harm_labels: Array, #
label_operator: String, #
min_confidence: Numeric #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| harm_labels | Array | No | |
| label_operator | String | No | |
| min_confidence | Numeric | No |
ImageRuleParameters
# ImageRuleParameters hash structure
{
harm_labels: Array, #
min_confidence: Numeric, #
threshold: Numeric, #
time_window: String #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| harm_labels | Array | No | |
| min_confidence | Numeric | No | |
| threshold | Numeric | No | |
| time_window | String | No |
Images
# Images hash structure
{
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 hash structure
{
duration: String #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | String | Yes |
KeyframeRuleParameters
# KeyframeRuleParameters hash structure
{
harm_labels: Array, #
min_confidence: Numeric, #
threshold: Numeric #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| harm_labels | Array | No | |
| min_confidence | Numeric | No | |
| threshold | Numeric | No |
LLMConfig
# LLMConfig hash structure
{
app_context: String, #
async: Boolean, #
enabled: Boolean, #
rules: Array, #
severity_descriptions: Hash #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| app_context | String | No | |
| async | Boolean | No | |
| enabled | Boolean | No | |
| rules | Array | No | |
| severity_descriptions | Hash | No |
LLMRule
# LLMRule hash structure
{
action: String, #
description: String, #
label: String, #
severity_rules: Array #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| description | String | Yes | |
| label | String | Yes | |
| action | String | No | |
| severity_rules | Array | No |
Location
# Location hash structure
{
lat: Numeric, # Latitude coordinate
lng: Numeric # Longitude coordinate
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| lat | Numeric | Yes | Latitude coordinate |
| lng | Numeric | Yes | Longitude coordinate |
MarkReviewedRequestPayload
Configuration for mark reviewed action
# MarkReviewedRequestPayload hash structure
{
content_to_mark_as_reviewed_limit: Numeric, # Maximum content items to mark as reviewed
decision_reason: String, # Reason for the appeal decision
disable_marking_content_as_reviewed: Boolean # Skip marking content as reviewed
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| content_to_mark_as_reviewed_limit | Numeric | No | Maximum content items to mark as reviewed |
| decision_reason | String | No | Reason for the appeal decision |
| disable_marking_content_as_reviewed | Boolean | No | Skip marking content as reviewed |
ModerationConfig
# ModerationConfig hash structure
{
ai_image_config: AIImageConfig, #
ai_image_lite_config: BodyguardImageAnalysisConfig, #
ai_text_config: AITextConfig, #
ai_video_config: AIVideoConfig, #
async: Boolean, #
automod_platform_circumvention_config: AutomodPlatformCircumventionConfig, #
automod_semantic_filters_config: AutomodSemanticFiltersConfig, #
automod_toxicity_config: AutomodToxicityConfig, #
block_list_config: BlockListConfig, #
created_at: Numeric, #
google_vision_config: GoogleVisionConfig, #
key: String, #
llm_config: LLMConfig, #
supported_video_call_harm_types: Array, #
team: String, #
updated_at: Numeric, #
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 | Numeric | No | |
| google_vision_config | GoogleVisionConfig | No | |
| key | String | No | |
| llm_config | LLMConfig | No | |
| supported_video_call_harm_types | Array | No | |
| team | String | No | |
| updated_at | Numeric | No | |
| velocity_filter_config | VelocityFilterConfig | No | |
| video_call_rule_config | VideoCallRuleConfig | No |
ModerationFlagResponse
# ModerationFlagResponse hash structure
{
created_at: Numeric, #
custom: Hash, #
entity_creator_id: String, #
entity_id: String, #
entity_type: String, #
labels: Array, #
moderation_payload: ModerationPayloadResponse, #
reason: String, #
result: Array, #
review_queue_item: ReviewQueueItemResponse, #
review_queue_item_id: String, #
type: String, #
updated_at: Numeric, #
user: UserResponse, #
user_id: String #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| created_at | Numeric | Yes | |
| entity_id | String | Yes | |
| entity_type | String | Yes | |
| result | Array | Yes | |
| type | String | Yes | |
| updated_at | Numeric | Yes | |
| user_id | String | Yes | |
| custom | Hash | No | |
| entity_creator_id | String | No | |
| labels | Array | No | |
| moderation_payload | ModerationPayloadResponse | No | |
| reason | String | No | |
| review_queue_item | ReviewQueueItemResponse | No | |
| review_queue_item_id | String | No | |
| user | UserResponse | No |
ModerationPayload
# ModerationPayload hash structure
{
custom: Hash, #
images: Array, #
texts: Array, #
videos: Array #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| custom | Hash | No | |
| images | Array | No | |
| texts | Array | No | |
| videos | Array | No |
ModerationPayloadRequest
Content payload for moderation
# ModerationPayloadRequest hash structure
{
custom: Hash, # Custom data for moderation
images: Array, # Image URLs to moderate (max 30)
texts: Array, # Text content to moderate
videos: Array # Video URLs to moderate
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| custom | Hash | No | Custom data for moderation |
| images | Array | No | Image URLs to moderate (max 30) |
| texts | Array | No | Text content to moderate |
| videos | Array | No | Video URLs to moderate |
ModerationRuleV2Response
# ModerationRuleV2Response hash structure
{
action: RuleBuilderAction, #
action_sequences: Array, #
conditions: Array, #
config_keys: Array, #
cooldown_period: String, #
created_at: Numeric, #
description: String, #
enabled: Boolean, #
groups: Array, #
id: String, #
logic: String, #
name: String, #
rule_type: String, #
team: String, #
updated_at: Numeric #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| config_keys | Array | Yes | |
| created_at | Numeric | Yes | |
| description | String | Yes | |
| enabled | Boolean | Yes | |
| id | String | Yes | |
| name | String | Yes | |
| rule_type | String | Yes | |
| team | String | Yes | |
| updated_at | Numeric | Yes | |
| action | RuleBuilderAction | No | |
| action_sequences | Array | No | |
| conditions | Array | No | |
| cooldown_period | String | No | |
| groups | Array | No | |
| logic | String | No |
MuteResponse
# MuteResponse hash structure
{
duration: String, #
mutes: Array, # Object with mutes (if multiple users were muted)
non_existing_users: Array, # A list of users that can't be found. Common cause for this is deleted users
own_user: OwnUserResponse # Authorized user object with fresh mutes information
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | String | Yes | |
| mutes | Array | No | Object with mutes (if multiple users were muted) |
| non_existing_users | Array | 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 hash structure
{
action: String, #
label: String #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| action | String | Yes | |
| label | String | Yes |
OwnUserResponse
# OwnUserResponse hash structure
{
avg_response_time: Numeric, #
banned: Boolean, #
blocked_user_ids: Array, #
channel_mutes: Array, #
created_at: Numeric, #
custom: Hash, #
deactivated_at: Numeric, #
deleted_at: Numeric, #
devices: Array, #
id: String, #
image: String, #
invisible: Boolean, #
language: String, #
last_active: Numeric, #
latest_hidden_channels: Array, #
mutes: Array, #
name: String, #
online: Boolean, #
privacy_settings: PrivacySettingsResponse, #
push_preferences: PushPreferencesResponse, #
revoke_tokens_issued_before: Numeric, #
role: String, #
teams: Array, #
teams_role: Hash, #
total_unread_count: Numeric, #
total_unread_count_by_team: Hash, #
unread_channels: Numeric, #
unread_count: Numeric, #
unread_threads: Numeric, #
updated_at: Numeric #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| banned | Boolean | Yes | |
| channel_mutes | Array | Yes | |
| created_at | Numeric | Yes | |
| custom | Hash | Yes | |
| devices | Array | Yes | |
| id | String | Yes | |
| invisible | Boolean | Yes | |
| language | String | Yes | |
| mutes | Array | Yes | |
| online | Boolean | Yes | |
| role | String | Yes | |
| teams | Array | Yes | |
| total_unread_count | Numeric | Yes | |
| unread_channels | Numeric | Yes | |
| unread_count | Numeric | Yes | |
| unread_threads | Numeric | Yes | |
| updated_at | Numeric | Yes | |
| avg_response_time | Numeric | No | |
| blocked_user_ids | Array | No | |
| deactivated_at | Numeric | No | |
| deleted_at | Numeric | No | |
| image | String | No | |
| last_active | Numeric | No | |
| latest_hidden_channels | Array | No | |
| name | String | No | |
| privacy_settings | PrivacySettingsResponse | No | |
| push_preferences | PushPreferencesResponse | No | |
| revoke_tokens_issued_before | Numeric | No | |
| teams_role | Hash | No | |
| total_unread_count_by_team | Hash | No |
PagerRequest
# PagerRequest hash structure
{
limit: Numeric, #
next: String, #
prev: String #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| limit | Numeric | No | |
| next | String | No | |
| prev | String | No |
PrivacySettingsResponse
# PrivacySettingsResponse hash structure
{
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 hash structure
{
duration: String, #
items: Array, # List of Appeal Items
next: String, #
prev: String #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | String | Yes | |
| items | Array | Yes | List of Appeal Items |
| next | String | No | |
| prev | String | No |
QueryFeedModerationTemplate
# QueryFeedModerationTemplate hash structure
{
config: FeedsModerationTemplateConfigPayload, # Configuration for the moderation template
created_at: Numeric, # When the template was created
name: String, # Name of the moderation template
updated_at: Numeric # When the template was last updated
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| created_at | Numeric | Yes | When the template was created |
| name | String | Yes | Name of the moderation template |
| updated_at | Numeric | Yes | When the template was last updated |
| config | FeedsModerationTemplateConfigPayload | No | Configuration for the moderation template |
QueryFeedModerationTemplatesResponse
# QueryFeedModerationTemplatesResponse hash structure
{
duration: String, #
templates: Array # List of moderation templates
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | String | Yes | |
| templates | Array | Yes | List of moderation templates |
QueryModerationConfigsResponse
# QueryModerationConfigsResponse hash structure
{
configs: Array, # List of moderation configurations
duration: String, #
next: String, #
prev: String #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| configs | Array | Yes | List of moderation configurations |
| duration | String | Yes | |
| next | String | No | |
| prev | String | No |
QueryModerationFlagsResponse
Basic response information
# QueryModerationFlagsResponse hash structure
{
duration: String, # Duration of the request in milliseconds
flags: Array, #
next: String, #
prev: String #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | String | Yes | Duration of the request in milliseconds |
| flags | Array | Yes | |
| next | String | No | |
| prev | String | No |
QueryModerationLogsResponse
# QueryModerationLogsResponse hash structure
{
duration: String, #
logs: Array, # List of moderation action logs
next: String, #
prev: String #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | String | Yes | |
| logs | Array | Yes | List of moderation action logs |
| next | String | No | |
| prev | String | No |
QueryModerationRulesResponse
# QueryModerationRulesResponse hash structure
{
ai_image_label_definitions: Array, # AI image label definitions with metadata for dashboard rendering
ai_image_subclassifications: Hash, # Stream L1 to leaf-level label name mapping for AI image rules
closed_caption_labels: Array, # Available harm labels for closed caption rules
default_llm_labels: Hash, # Default LLM label descriptions
duration: String, #
keyframe_label_classifications: Hash, # L1 to L2 mapping of keyframe harm label classifications
keyframe_labels: Array, # Deprecated: use keyframe_label_classifications instead. Available L1 harm labels for keyframe rules
next: String, #
prev: String, #
rules: Array # List of moderation rules
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| ai_image_label_definitions | Array | Yes | AI image label definitions with metadata for dashboard rendering |
| ai_image_subclassifications | Hash | Yes | Stream L1 to leaf-level label name mapping for AI image rules |
| closed_caption_labels | Array | Yes | Available harm labels for closed caption rules |
| default_llm_labels | Hash | Yes | Default LLM label descriptions |
| duration | String | Yes | |
| keyframe_label_classifications | Hash | Yes | L1 to L2 mapping of keyframe harm label classifications |
| keyframe_labels | Array | Yes | Deprecated: use keyframe_label_classifications instead. Available L1 harm lab... |
| rules | Array | Yes | List of moderation rules |
| next | String | No | |
| prev | String | No |
QueryReviewQueueResponse
# QueryReviewQueueResponse hash structure
{
action_config: Hash, # Configuration for moderation actions
duration: String, #
filter_config: FilterConfigResponse, # Configuration for filters in moderation review queue
items: Array, # List of review queue items
next: String, #
prev: String, #
stats: Hash # Statistics about the review queue
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| action_config | Hash | Yes | Configuration for moderation actions |
| duration | String | Yes | |
| items | Array | Yes | List of review queue items |
| stats | Hash | 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 hash structure
{
activity_id: String, #
children_counts: Hash, #
created_at: Numeric, #
data: Hash, #
deleted_at: Numeric, #
id: String, #
kind: String, #
latest_children: Hash, #
moderation: Hash, #
own_children: Hash, #
parent: String, #
score: Numeric, #
target_feeds: Array, #
target_feeds_extra_data: Hash, #
updated_at: Numeric, #
user: User, #
user_id: String #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| activity_id | String | Yes | |
| created_at | Numeric | Yes | |
| kind | String | Yes | |
| updated_at | Numeric | Yes | |
| user_id | String | Yes | |
| children_counts | Hash | No | |
| data | Hash | No | |
| deleted_at | Numeric | No | |
| id | String | No | |
| latest_children | Hash | No | |
| moderation | Hash | No | |
| own_children | Hash | No | |
| parent | String | No | |
| score | Numeric | No | |
| target_feeds | Array | No | |
| target_feeds_extra_data | Hash | No | |
| user | User | No |
RejectAppealRequestPayload
Configuration for rejecting an appeal
# RejectAppealRequestPayload hash structure
{
decision_reason: String # Reason for rejecting the appeal
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| decision_reason | String | Yes | Reason for rejecting the appeal |
RestoreActionRequestPayload
Configuration for restore action
# RestoreActionRequestPayload hash structure
{
decision_reason: String # Reason for the appeal decision
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| decision_reason | String | No | Reason for the appeal decision |
ReviewQueueItemResponse
# ReviewQueueItemResponse hash structure
{
actions: Array, # Moderation actions taken
activity: EnrichedActivity, #
ai_text_severity: String, # AI-determined text severity
appeal: AppealItemResponse, # Appeal submitted for this item if it exists
assigned_to: UserResponse, # Moderator assigned to review this item
bans: Array, # Associated ban records
call: CallResponse, #
completed_at: Numeric, # When the review was completed
config_key: String, #
created_at: Numeric, # When the item was created
entity_creator: EntityCreatorResponse, # Details about who created the entity
entity_creator_id: String, # ID of who created the entity
entity_id: String, # ID of the entity being reviewed
entity_type: String, # Type of entity being reviewed
escalated: Boolean, # Whether the item has been escalated
escalated_at: Numeric, # When the item was escalated
escalated_by: String, # ID of the moderator who escalated the item
escalation_metadata: EscalationMetadata, # Escalation details including reason, notes, and priority
feeds_v2_activity: EnrichedActivity, # Associated feed activity
feeds_v2_reaction: Reaction, # Associated feed reaction
feeds_v3_activity: FeedsV3ActivityResponse, #
feeds_v3_comment: FeedsV3CommentResponse, #
flags: Array, # Associated flag records
flags_count: Numeric, #
id: String, # Unique identifier of the review queue item
languages: Array, # Detected languages in the content
latest_moderator_action: String, #
message: MessageResponse, # Associated message details
moderation_payload: ModerationPayloadResponse, # Content being moderated
reaction: Reaction, #
recommended_action: String, # Suggested moderation action
reviewed_at: Numeric, # When the item was reviewed
reviewed_by: String, # ID of the moderator who reviewed the item
severity: Numeric, # Severity level of the content
status: String, # Current status of the review
teams: Array, # Teams associated with this item
updated_at: Numeric # When the item was last updated
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| actions | Array | Yes | Moderation actions taken |
| ai_text_severity | String | Yes | AI-determined text severity |
| bans | Array | Yes | Associated ban records |
| created_at | Numeric | 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 | Array | Yes | Associated flag records |
| flags_count | Numeric | Yes | |
| id | String | Yes | Unique identifier of the review queue item |
| languages | Array | 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 | Numeric | Yes | Severity level of the content |
| status | String | Yes | Current status of the review |
| updated_at | Numeric | 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 | Numeric | 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 | Numeric | 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 | Numeric | No | When the item was reviewed |
| teams | Array | No | Teams associated with this item |
RuleBuilderAction
# RuleBuilderAction hash structure
{
ban_options: BanOptions, #
call_options: CallActionOptions, #
flag_user_options: FlagUserOptions, #
skip_inbox: Boolean, #
type: String #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| ban_options | BanOptions | No | |
| call_options | CallActionOptions | No | |
| flag_user_options | FlagUserOptions | No | |
| skip_inbox | Boolean | No | |
| type | String | No |
RuleBuilderCondition
# RuleBuilderCondition hash structure
{
call_custom_property_params: CallCustomPropertyParameters, #
call_type_rule_params: CallTypeRuleParameters, #
call_violation_count_params: CallViolationCountParameters, #
closed_caption_rule_params: ClosedCaptionRuleParameters, #
confidence: Numeric, #
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 | Numeric | 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 hash structure
{
conditions: Array, #
logic: String #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| conditions | Array | No | |
| logic | String | No |
RuleBuilderConfig
# RuleBuilderConfig hash structure
{
async: Boolean, #
rules: Array #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| async | Boolean | No | |
| rules | Array | No |
RuleBuilderRule
# RuleBuilderRule hash structure
{
action: RuleBuilderAction, #
action_sequences: Array, #
conditions: Array, #
cooldown_period: String, #
groups: Array, #
id: String, #
logic: String, #
rule_type: String #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| rule_type | String | Yes | |
| action | RuleBuilderAction | No | |
| action_sequences | Array | No | |
| conditions | Array | No | |
| cooldown_period | String | No | |
| groups | Array | No | |
| id | String | No | |
| logic | String | No |
ShadowBlockActionRequestPayload
Configuration for shadow block action
# ShadowBlockActionRequestPayload hash structure
{
reason: String # Reason for shadow blocking
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| reason | String | No | Reason for shadow blocking |
SortParamRequest
# SortParamRequest hash structure
{
direction: Numeric, # Direction of sorting, 1 for Ascending, -1 for Descending, default is 1. One of: -1, 1
field: String, # Name of field to sort by
type: String # Type of field to sort by. Empty string or omitted means string type (default). One of: number, boolean
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| direction | Numeric | 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 hash structure
{
appeal_item: AppealItemResponse, # Updated Appeal item after action was performed
duration: String, #
item: ReviewQueueItemResponse # Updated review queue item after action was performed
}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 hash structure
{
blocklist_match: Array, #
contains_url: Boolean, #
harm_labels: Array, #
label_operator: String, #
llm_harm_labels: Hash, #
severity: String #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| blocklist_match | Array | No | |
| contains_url | Boolean | No | |
| harm_labels | Array | No | |
| label_operator | String | No | |
| llm_harm_labels | Hash | No | |
| severity | String | No |
TextRuleParameters
# TextRuleParameters hash structure
{
blocklist_match: Array, #
contains_url: Boolean, #
harm_labels: Array, #
llm_harm_labels: Hash, #
semantic_filter_min_threshold: Numeric, #
semantic_filter_names: Array, #
severity: String, #
threshold: Numeric, #
time_window: String #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| blocklist_match | Array | No | |
| contains_url | Boolean | No | |
| harm_labels | Array | No | |
| llm_harm_labels | Hash | No | |
| semantic_filter_min_threshold | Numeric | No | |
| semantic_filter_names | Array | No | |
| severity | String | No | |
| threshold | Numeric | No | |
| time_window | String | No |
TriggeredRuleResponse
# TriggeredRuleResponse hash structure
{
actions: Array, # Action types resolved from the rule's action sequence
call_options: CallActionOptions, # Options for call actions (mute settings, warning text, kick reason)
rule_id: String, # ID of the moderation rule that triggered
rule_name: String, # Name of the moderation rule that triggered
violation_number: Numeric # Violation count for action sequence rules (1-based)
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| actions | Array | 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 | Numeric | No | Violation count for action sequence rules (1-based) |
UnbanActionRequestPayload
Configuration for unban moderation action
# UnbanActionRequestPayload hash structure
{
channel_cid: String, # Channel CID for channel-specific unban
decision_reason: String, # Reason for the appeal decision
remove_future_channels_ban: Boolean # Also remove the future channels ban for this user
}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 hash structure
{
duration: String #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | String | Yes |
UnblockActionRequestPayload
Configuration for unblock action
# UnblockActionRequestPayload hash structure
{
decision_reason: String # Reason for the appeal decision
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| decision_reason | String | No | Reason for the appeal decision |
UnmuteResponse
# UnmuteResponse hash structure
{
duration: String, #
non_existing_users: Array # A list of users that can't be found. Common cause for this is deleted users
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | String | Yes | |
| non_existing_users | Array | No | A list of users that can't be found. Common cause for this is deleted users |
UpsertConfigResponse
# UpsertConfigResponse hash structure
{
config: ConfigResponse, # The created or updated moderation configuration
duration: String #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | String | Yes | |
| config | ConfigResponse | No | The created or updated moderation configuration |
UpsertModerationRuleResponse
Basic response information
# UpsertModerationRuleResponse hash structure
{
duration: String, # Duration of the request in milliseconds
rule: ModerationRuleV2Response #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | String | Yes | Duration of the request in milliseconds |
| rule | ModerationRuleV2Response | No |
UpsertModerationTemplateResponse
# UpsertModerationTemplateResponse hash structure
{
config: FeedsModerationTemplateConfigPayload, # Configuration for the moderation template
created_at: Numeric, # When the template was created
duration: String, #
name: String, # Name of the moderation template
updated_at: Numeric # When the template was last updated
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| created_at | Numeric | Yes | When the template was created |
| duration | String | Yes | |
| name | String | Yes | Name of the moderation template |
| updated_at | Numeric | Yes | When the template was last updated |
| config | FeedsModerationTemplateConfigPayload | No | Configuration for the moderation template |
User
# User hash structure
{
data: Hash, #
id: String #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| id | String | Yes | |
| data | Hash | No |
UserCreatedWithinParameters
# UserCreatedWithinParameters hash structure
{
max_age: String #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| max_age | String | No |
UserCustomPropertyParameters
# UserCustomPropertyParameters hash structure
{
operator: String, #
property_key: String #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| operator | String | No | |
| property_key | String | No |
UserIdenticalContentCountParameters
# UserIdenticalContentCountParameters hash structure
{
threshold: Numeric, #
time_window: String #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| threshold | Numeric | No | |
| time_window | String | No |
UserMuteResponse
# UserMuteResponse hash structure
{
created_at: Numeric, #
expires: Numeric, #
target: UserResponse, #
updated_at: Numeric, #
user: UserResponse #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| created_at | Numeric | Yes | |
| updated_at | Numeric | Yes | |
| expires | Numeric | No | |
| target | UserResponse | No | |
| user | UserResponse | No |
UserRequest
User request object
# UserRequest hash structure
{
custom: Hash, # Custom user data
id: String, # User ID
image: String, # User's profile image URL
invisible: Boolean, #
language: String, #
name: String, # Optional name of user
privacy_settings: PrivacySettingsResponse, #
role: String, # User's global role
teams: Array, # List of teams the user belongs to
teams_role: Hash # Map of team-specific roles for the user
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| id | String | Yes | User ID |
| custom | Hash | 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 | Array | No | List of teams the user belongs to |
| teams_role | Hash | No | Map of team-specific roles for the user |
UserResponse
User response object
# UserResponse hash structure
{
avg_response_time: Numeric, #
ban_expires: Numeric, # Date when ban expires
banned: Boolean, # Whether a user is banned or not
blocked_user_ids: Array, #
bypass_moderation: Boolean, #
created_at: Numeric, # Date/time of creation
custom: Hash, # Custom data for this object
deactivated_at: Numeric, # Date of deactivation
deleted_at: Numeric, # Date/time of deletion
devices: Array, # List of devices user is using
id: String, # Unique user identifier
image: String, #
invisible: Boolean, #
language: String, # Preferred language of a user
last_active: Numeric, # Date of last activity
name: String, # Optional name of user
online: Boolean, # Whether a user online or not
privacy_settings: PrivacySettingsResponse, # User privacy settings
push_notifications: PushNotificationSettingsResponse, # User push notification settings
revoke_tokens_issued_before: Numeric, # Revocation date for tokens
role: String, # Determines the set of user permissions
shadow_banned: Boolean, # Whether a user is shadow banned
teams: Array, # List of teams user is a part of
teams_role: Hash, #
updated_at: Numeric # Date/time of the last update
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| banned | Boolean | Yes | Whether a user is banned or not |
| blocked_user_ids | Array | Yes | |
| created_at | Numeric | Yes | Date/time of creation |
| custom | Hash | 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 | Array | Yes | List of teams user is a part of |
| updated_at | Numeric | Yes | Date/time of the last update |
| avg_response_time | Numeric | No | |
| ban_expires | Numeric | No | Date when ban expires |
| bypass_moderation | Boolean | No | |
| deactivated_at | Numeric | No | Date of deactivation |
| deleted_at | Numeric | No | Date/time of deletion |
| devices | Array | No | List of devices user is using |
| image | String | No | |
| last_active | Numeric | 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 | Numeric | No | Revocation date for tokens |
| teams_role | Hash | No |
UserRoleParameters
# UserRoleParameters hash structure
{
operator: String, #
role: String #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| operator | String | No | |
| role | String | No |
UserRuleParameters
# UserRuleParameters hash structure
{
max_age: String #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| max_age | String | No |
VelocityFilterConfig
# VelocityFilterConfig hash structure
{
advanced_filters: Boolean, #
async: Boolean, #
cascading_actions: Boolean, #
cids_per_user: Numeric, #
enabled: Boolean, #
first_message_only: Boolean, #
rules: Array #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| advanced_filters | Boolean | No | |
| async | Boolean | No | |
| cascading_actions | Boolean | No | |
| cids_per_user | Numeric | No | |
| enabled | Boolean | No | |
| first_message_only | Boolean | No | |
| rules | Array | No |
VelocityFilterConfigRule
# VelocityFilterConfigRule hash structure
{
action: String, #
ban_duration: Numeric, #
cascading_action: String, #
cascading_threshold: Numeric, #
check_message_context: Boolean, #
fast_spam_threshold: Numeric, #
fast_spam_ttl: Numeric, #
ip_ban: Boolean, #
probation_period: Numeric, #
shadow_ban: Boolean, #
slow_spam_ban_duration: Numeric, #
slow_spam_threshold: Numeric, #
slow_spam_ttl: Numeric, #
url_only: Boolean #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| action | String | Yes | |
| ban_duration | Numeric | No | |
| cascading_action | String | No | |
| cascading_threshold | Numeric | No | |
| check_message_context | Boolean | No | |
| fast_spam_threshold | Numeric | No | |
| fast_spam_ttl | Numeric | No | |
| ip_ban | Boolean | No | |
| probation_period | Numeric | No | |
| shadow_ban | Boolean | No | |
| slow_spam_ban_duration | Numeric | No | |
| slow_spam_threshold | Numeric | No | |
| slow_spam_ttl | Numeric | No | |
| url_only | Boolean | No |
VideoCallRuleConfig
# VideoCallRuleConfig hash structure
{
flag_all_labels: Boolean, #
flagged_labels: Array, #
rules: Array #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| flag_all_labels | Boolean | No | |
| flagged_labels | Array | No | |
| rules | Array | No |
VideoContentParameters
# VideoContentParameters hash structure
{
harm_labels: Array, #
label_operator: String #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| harm_labels | Array | No | |
| label_operator | String | No |
VideoRuleParameters
# VideoRuleParameters hash structure
{
harm_labels: Array, #
threshold: Numeric, #
time_window: String #
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| harm_labels | Array | No | |
| threshold | Numeric | No | |
| time_window | String | No |