openapi: 3.0.3 info: title: Stream product:chat product:moderation API version: v228.3.0 servers: - description: Stream API url: https://chat.stream-io-api.com security: - JWT: [] api_key: [] stream-auth-type: [] - api_key: [] stream-auth-type: [] tags: - name: product:moderation paths: /api/v1/moderation/chat_message_tasks: post: description: 'Submits a chat message task ' operationId: SubmitChatMessageTask requestBody: content: application/json: schema: $ref: '#/components/schemas/SubmitChatMessageTaskRequest' description: SubmitChatMessageTaskRequest required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/SubmitChatMessageTaskResponse' description: SubmitChatMessageTaskResponse '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Submit Chat Message Task tags: - product:moderation /api/v1/moderation/dashboard/blocked_messages: get: description: 'TODO ' operationId: ListBlockedMessages responses: '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests tags: - product:moderation /api/v1/moderation/dashboard/flag_feedback: post: description: 'TODO ' operationId: FlagFeedback responses: '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests tags: - product:moderation /api/v1/moderation/dashboard/moderation_log: get: description: 'TODO ' operationId: ListModerationLogs responses: '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests tags: - product:moderation /api/v1/moderation/dashboard/update_flags: post: description: 'TODO ' operationId: UpdateFlags responses: '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests tags: - product:moderation /api/v1/moderation/moderation/blocked_messages: get: description: 'TODO ' operationId: ListBlockedMessages responses: '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests tags: - product:moderation /api/v1/moderation/moderation/flag_feedback: post: description: 'TODO ' operationId: FlagFeedback responses: '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests tags: - product:moderation /api/v1/moderation/moderation/moderation_log: get: description: 'TODO ' operationId: ListModerationLogs responses: '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests tags: - product:moderation /api/v1/moderation/moderation/update_flags: post: description: 'TODO ' operationId: UpdateFlags responses: '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests tags: - product:moderation /api/v1/moderation/tasks: get: description: 'Lists all tasks ' operationId: ListTasks responses: '200': content: application/json: schema: $ref: '#/components/schemas/ListTasksResponse' description: ListTasksResponse '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: List Tasks tags: - product:moderation post: description: 'Submits a task ' operationId: SubmitTask requestBody: content: application/json: schema: $ref: '#/components/schemas/SubmitTaskRequest' description: SubmitTaskRequest required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/SubmitTaskResponse' description: SubmitTaskResponse '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Submit Task tags: - product:moderation /api/v1/moderation/tasks/{id}: get: description: 'Fetches moderation task ' operationId: GetTask parameters: - in: path name: id required: true schema: description: 'Task ID ' title: ID type: string writeOnly: true x-stream-index: '001' responses: '200': content: application/json: schema: $ref: '#/components/schemas/GetTaskResponse' description: GetTaskResponse '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Get Task tags: - product:moderation post: description: 'Updates a task ' operationId: UpdateTask parameters: - in: path name: id required: true schema: description: 'Task ID ' title: ID type: string writeOnly: true x-stream-index: '001' requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateTaskRequest' description: UpdateTaskRequest required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/UpdateTaskResponse' description: UpdateTaskResponse '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Update Task tags: - product:moderation /automod/v1/chat_message_tasks: post: description: 'Submits a chat message task ' operationId: SubmitChatMessageTask requestBody: content: application/json: schema: $ref: '#/components/schemas/SubmitChatMessageTaskRequest' description: SubmitChatMessageTaskRequest required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/SubmitChatMessageTaskResponse' description: SubmitChatMessageTaskResponse '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Submit Chat Message Task tags: - product:moderation /automod/v1/dashboard/blocked_messages: get: description: 'TODO ' operationId: ListBlockedMessages responses: '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests tags: - product:moderation /automod/v1/dashboard/flag_feedback: post: description: 'TODO ' operationId: FlagFeedback responses: '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests tags: - product:moderation /automod/v1/dashboard/moderation_log: get: description: 'TODO ' operationId: ListModerationLogs responses: '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests tags: - product:moderation /automod/v1/dashboard/update_flags: post: description: 'TODO ' operationId: UpdateFlags responses: '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests tags: - product:moderation /automod/v1/moderation/blocked_messages: get: description: 'TODO ' operationId: ListBlockedMessages responses: '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests tags: - product:moderation /automod/v1/moderation/flag_feedback: post: description: 'TODO ' operationId: FlagFeedback responses: '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests tags: - product:moderation /automod/v1/moderation/moderation_log: get: description: 'TODO ' operationId: ListModerationLogs responses: '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests tags: - product:moderation /automod/v1/moderation/update_flags: post: description: 'TODO ' operationId: UpdateFlags responses: '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests tags: - product:moderation /automod/v1/tasks: get: description: 'Lists all tasks ' operationId: ListTasks responses: '200': content: application/json: schema: $ref: '#/components/schemas/ListTasksResponse' description: ListTasksResponse '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: List Tasks tags: - product:moderation post: description: 'Submits a task ' operationId: SubmitTask requestBody: content: application/json: schema: $ref: '#/components/schemas/SubmitTaskRequest' description: SubmitTaskRequest required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/SubmitTaskResponse' description: SubmitTaskResponse '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Submit Task tags: - product:moderation /automod/v1/tasks/{id}: get: description: 'Fetches moderation task ' operationId: GetTask parameters: - in: path name: id required: true schema: description: 'Task ID ' title: ID type: string writeOnly: true x-stream-index: '001' responses: '200': content: application/json: schema: $ref: '#/components/schemas/GetTaskResponse' description: GetTaskResponse '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Get Task tags: - product:moderation post: description: 'Updates a task ' operationId: UpdateTask parameters: - in: path name: id required: true schema: description: 'Task ID ' title: ID type: string writeOnly: true x-stream-index: '001' requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateTaskRequest' description: UpdateTaskRequest required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/UpdateTaskResponse' description: UpdateTaskResponse '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Update Task tags: - product:moderation /api/v2/moderation/action_config: get: description: 'Returns moderation action configs grouped by entity type, sorted by order ascending. Supports fetching DB-configured actions, hardcoded defaults, or both. ' operationId: get_action_config parameters: - in: query name: queue_type schema: description: Filter configs by queue type; empty returns the default queue title: Queue Type type: string writeOnly: true x-stream-index: '001' - in: query name: entity_type schema: description: Filter to a single entity type; empty returns all title: Entity Type type: string writeOnly: true x-stream-index: '002' - in: query name: exclude_defaults schema: description: Return only DB-configured actions; empty object if none exist title: Exclude Defaults type: boolean writeOnly: true x-stream-index: '003' - in: query name: only_defaults schema: description: Return hardcoded default configs without a DB query title: Only Defaults type: boolean writeOnly: true x-stream-index: '004' - in: query name: user_id schema: type: string writeOnly: true x-stream-index: '005.001' responses: '200': content: application/json: schema: $ref: '#/components/schemas/GetActionConfigResponse' description: Successful response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Get moderation action configs tags: - product:moderation post: description: 'Create a new moderation action config entry or update an existing one. Action configs control the action buttons displayed in the moderation dashboard for each entity type. ' operationId: upsert_action_config requestBody: content: application/json: schema: $ref: '#/components/schemas/UpsertActionConfigRequest' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/UpsertActionConfigResponse' description: Successful response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Create or update a moderation action config tags: - product:moderation /api/v2/moderation/action_config/{id}: delete: description: 'Delete a specific moderation action config entry by its UUID. ' operationId: delete_action_config parameters: - in: path name: id required: true schema: description: UUID of the action config to delete title: ID type: string writeOnly: true x-stream-index: '001' - in: query name: user_id schema: description: Optional user ID to associate with the audit log entry title: User ID type: string writeOnly: true x-stream-index: '002.001' responses: '200': content: application/json: schema: $ref: '#/components/schemas/DeleteActionConfigResponse' description: Successful response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Delete a moderation action config tags: - product:moderation /api/v2/moderation/action_config/bulk: post: description: 'Create or update multiple moderation action config entries in a single request. Omit the ID field to create; provide an ID to update. ' operationId: bulk_upsert_action_config requestBody: content: application/json: schema: $ref: '#/components/schemas/BulkUpsertActionConfigRequest' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/BulkUpsertActionConfigResponse' description: Successful response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Bulk create or update moderation action configs tags: - product:moderation /api/v2/moderation/action_config/bulk_delete: post: description: 'Delete multiple moderation action config entries by UUID in a single request. ' operationId: bulk_delete_action_config requestBody: content: application/json: schema: $ref: '#/components/schemas/BulkDeleteActionConfigRequest' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/BulkDeleteActionConfigResponse' description: Successful response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Bulk delete moderation action configs tags: - product:moderation /api/v2/moderation/action_logs: post: description: 'Insert a moderation action log entry. Server-side only. Used by product services to log moderation-related actions. ' operationId: insert_action_log requestBody: content: application/json: schema: $ref: '#/components/schemas/InsertActionLogRequest' description: Insert Action Log Request required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/InsertActionLogResponse' description: Insert Action Log Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Insert moderation action log tags: - product:moderation /api/v2/moderation/appeal: post: description: 'Appeal against the moderation decision ' operationId: appeal requestBody: content: application/json: schema: $ref: '#/components/schemas/AppealRequest' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/AppealResponse' description: Successful response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Appeal against the moderation decision tags: - product:moderation /api/v2/moderation/appeal/{id}: get: description: 'Retrieve a specific appeal item by its ID ' operationId: get_appeal parameters: - in: path name: id required: true schema: description: Unique identifier of the appeal item to retrieve title: ID type: string writeOnly: true x-stream-index: '001' responses: '200': content: application/json: schema: $ref: '#/components/schemas/GetAppealResponse' description: Successful response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Get appeal item tags: - product:moderation /api/v2/moderation/appeals: post: description: 'Query Appeals ' operationId: query_appeals requestBody: content: application/json: schema: $ref: '#/components/schemas/QueryAppealsRequest' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/QueryAppealsResponse' description: Successful response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Query Appeals tags: - product:moderation /api/v2/moderation/ban: post: description: 'Ban a user from a channel or the entire app ' operationId: ban requestBody: content: application/json: schema: $ref: '#/components/schemas/BanRequest' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/BanResponse' description: Successful response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Ban tags: - product:moderation /api/v2/moderation/bulk_image_moderation: post: description: 'Moderate multiple images in bulk using a CSV file ' operationId: bulk_image_moderation requestBody: content: application/json: schema: $ref: '#/components/schemas/BulkImageModerationRequest' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/BulkImageModerationResponse' description: Successful response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Bulk image moderation tags: - product:moderation /api/v2/moderation/bypass: post: description: 'Enable or disable moderation bypass for a user. This endpoint is server-side only. ' operationId: bypass requestBody: content: application/json: schema: $ref: '#/components/schemas/BypassRequest' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/BypassResponse' description: Successful response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Bypass Moderation tags: - product:moderation /api/v2/moderation/check: post: description: 'Run moderation checks on the provided content ' operationId: check requestBody: content: application/json: schema: $ref: '#/components/schemas/CheckRequest' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/CheckResponse' description: Successful response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Check tags: - product:moderation /api/v2/moderation/check_s3_access: post: description: 'Verifies that the configured IAM role ARN can access private S3 images for moderation. Optionally accepts a stream+s3:// URL to check access to a specific object. ' operationId: check_s3_access requestBody: content: application/json: schema: $ref: '#/components/schemas/CheckS3AccessRequest' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/CheckS3AccessResponse' description: Successful response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Check S3 image access tags: - product:moderation /api/v2/moderation/config: post: description: 'Create a new moderation configuration or update an existing one. Configure settings for content filtering, AI analysis, toxicity detection, and other moderation features. ' operationId: upsert_config requestBody: content: application/json: schema: $ref: '#/components/schemas/UpsertConfigRequest' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/UpsertConfigResponse' description: Successful response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Create or update moderation configuration tags: - product:moderation /api/v2/moderation/config/{key}: delete: description: 'Delete a specific moderation policy by its name ' operationId: delete_config parameters: - in: path name: key required: true schema: description: Key of the moderation configuration to delete title: Key type: string x-stream-index: '001' - in: query name: team schema: description: Team associated with the configuration title: Team type: string x-stream-index: '002' - in: query name: user_id schema: description: Optional user ID to associate with the audit log entry title: User ID type: string writeOnly: true x-stream-index: '003.001' responses: '200': content: application/json: schema: $ref: '#/components/schemas/DeleteModerationConfigResponse' description: Successful response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Delete a moderation policy tags: - product:moderation get: description: 'Retrieve a specific moderation configuration by its key and team. This configuration contains settings for various moderation features like toxicity detection, AI analysis, and filtering rules. ' operationId: get_config parameters: - in: path name: key required: true schema: description: Key of the moderation configuration to retrieve title: Key type: string x-stream-index: '001' - in: query name: team schema: description: Team associated with the configuration title: Team type: string x-stream-index: '002' responses: '200': content: application/json: schema: $ref: '#/components/schemas/GetConfigResponse' description: Successful response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Get moderation configuration tags: - product:moderation /api/v2/moderation/configs: post: description: 'Search and filter moderation configurations across your application. This endpoint is designed for building moderation dashboards and managing multiple configuration sets. ' operationId: query_moderation_configs requestBody: content: application/json: schema: $ref: '#/components/schemas/QueryModerationConfigsRequest' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/QueryModerationConfigsResponse' description: Successful response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Query moderation configurations tags: - product:moderation /api/v2/moderation/custom_check: post: description: 'Custom check, add your own AI model reports to the review queue ' operationId: custom_check requestBody: content: application/json: schema: $ref: '#/components/schemas/CustomCheckRequest' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/CustomCheckResponse' description: Successful response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Custom check endpoint tags: - product:moderation /api/v2/moderation/feeds_moderation_template: delete: description: 'Delete a specific moderation template by its name ' operationId: V2DeleteTemplate responses: '200': content: application/json: schema: $ref: '#/components/schemas/DeleteModerationTemplateResponse' description: Successful response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Delete a moderation template tags: - product:moderation get: description: 'Retrieve a list of feed moderation templates that define preset moderation rules and configurations. Limited to 100 templates per request. ' operationId: V2QueryTemplates responses: '200': content: application/json: schema: $ref: '#/components/schemas/QueryFeedModerationTemplatesResponse' description: Successful response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Query feed moderation templates tags: - product:moderation post: description: 'Upsert feeds template for moderation ' operationId: V2UpsertTemplate requestBody: content: application/json: schema: $ref: '#/components/schemas/UpsertModerationTemplateRequest' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/UpsertModerationTemplateResponse' description: Successful response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Upsert feeds template tags: - product:moderation /api/v2/moderation/flag: post: description: 'Flag any type of content (messages, users, channels, activities) for moderation review. Supports custom content types and additional metadata for flagged content. ' operationId: flag requestBody: content: application/json: schema: $ref: '#/components/schemas/FlagRequest' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/FlagResponse' description: Successful response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Flag content for moderation tags: - product:moderation /api/v2/moderation/flag_count: post: description: 'Returns the number of moderation flags created against a specific user''s content. Optionally filter by entity type. ' operationId: get_flag_count requestBody: content: application/json: schema: $ref: '#/components/schemas/GetFlagCountRequest' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/GetFlagCountResponse' description: Successful response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Get flag count for a user tags: - product:moderation /api/v2/moderation/flags: post: description: 'Query flags associated with moderation items. This is used for building a moderation dashboard. ' operationId: query_moderation_flags requestBody: content: application/json: schema: $ref: '#/components/schemas/QueryModerationFlagsRequest' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/QueryModerationFlagsResponse' description: Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Query moderation flags tags: - product:moderation /api/v2/moderation/labels: post: description: 'Run moderation on text and return labels ' operationId: labels requestBody: content: application/json: schema: $ref: '#/components/schemas/LabelsRequest' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/LabelsResponse' description: Successful response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Labels tags: - product:moderation /api/v2/moderation/labels/results: post: description: 'Search and filter moderation label results with support for pagination and sorting. View the history of moderation labels applied to content. ' operationId: query_label_results requestBody: content: application/json: schema: $ref: '#/components/schemas/QueryLabelResultsRequest' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/QueryLabelResultsResponse' description: Successful response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Query label results tags: - product:moderation /api/v2/moderation/logs: post: description: 'Search and filter moderation action logs with support for pagination. View the history of moderation actions taken, including who performed them and when. ' operationId: query_moderation_logs requestBody: content: application/json: schema: $ref: '#/components/schemas/QueryModerationLogsRequest' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/QueryModerationLogsResponse' description: Successful response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Query moderation action logs tags: - product:moderation /api/v2/moderation/moderation_rule: post: description: 'Create or update a moderation rule that can apply app-wide or to specific moderation configs ' operationId: upsert_moderation_rule requestBody: content: application/json: schema: $ref: '#/components/schemas/UpsertModerationRuleRequest' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/UpsertModerationRuleResponse' description: Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Upsert moderation rule tags: - product:moderation /api/v2/moderation/moderation_rule/{id}: delete: description: 'Delete an existing moderation rule ' operationId: delete_moderation_rule parameters: - in: query name: user_id schema: description: Optional user ID to associate with the audit log entry title: User ID type: string writeOnly: true x-stream-index: '001.001' responses: '200': content: application/json: schema: $ref: '#/components/schemas/DeleteModerationRuleResponse' description: Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Delete moderation rule tags: - product:moderation get: description: 'Get a specific moderation rule by ID ' operationId: get_moderation_rule responses: '200': content: application/json: schema: $ref: '#/components/schemas/GetModerationRuleResponse' description: Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Get moderation rule tags: - product:moderation /api/v2/moderation/moderation_rules: post: description: 'Search and filter moderation rules across your application. This endpoint is designed for building moderation dashboards and managing multiple rule sets. ' operationId: query_moderation_rules requestBody: content: application/json: schema: $ref: '#/components/schemas/QueryModerationRulesRequest' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/QueryModerationRulesResponse' description: Successful response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Query moderation rules tags: - product:moderation /api/v2/moderation/mute: post: description: 'Mute a user. Mutes are generally not visible to the user you mute, while block is something you notice. ' operationId: mute requestBody: content: application/json: schema: $ref: '#/components/schemas/MuteRequest' description: MuteRequest required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/MuteResponse' description: MuteResponse '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Mute tags: - product:moderation /api/v2/moderation/review_queue: post: description: 'Query review queue items allows you to filter the review queue items. This is used for building a moderation dashboard. ' operationId: query_review_queue requestBody: content: application/json: schema: $ref: '#/components/schemas/QueryReviewQueueRequest' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/QueryReviewQueueResponse' description: Successful response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Query review queue items tags: - product:moderation /api/v2/moderation/review_queue/{id}: get: description: 'Retrieve a specific review queue item by its ID ' operationId: get_review_queue_item parameters: - in: path name: id required: true schema: description: Unique identifier of the review queue item to retrieve title: ID type: string writeOnly: true x-stream-index: '001' responses: '200': content: application/json: schema: $ref: '#/components/schemas/GetReviewQueueItemResponse' description: Successful response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Get review queue item tags: - product:moderation /api/v2/moderation/submit_action: post: description: 'Take action on flagged content, such as marking content as safe, deleting content, banning users, or executing custom moderation actions. Supports various action types with configurable parameters. ' operationId: submit_action requestBody: content: application/json: schema: $ref: '#/components/schemas/SubmitActionRequest' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/SubmitActionResponse' description: Successful response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Submit moderation action tags: - product:moderation /api/v2/moderation/submit_moderation_feedback: post: description: 'Forward a moderator-supplied correction to the moderation feedback pipeline. Server-side only. ' operationId: submit_moderation_feedback requestBody: content: application/json: schema: $ref: '#/components/schemas/SubmitModerationFeedbackRequest' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/SubmitModerationFeedbackResponse' description: Successful response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Submit moderation feedback tags: - product:moderation /api/v2/moderation/unban: post: description: 'Unban a user from a channel or globally. ' operationId: unban parameters: - in: query name: target_user_id required: true schema: description: ID of the user to unban title: Target User ID type: string writeOnly: true x-stream-index: '001' - in: query name: channel_cid schema: description: Channel where the unban applies title: Channel CID type: string writeOnly: true x-stream-index: '002' - in: query name: created_by schema: description: ID of the user who created the ban title: Created By type: string writeOnly: true x-stream-index: '003' requestBody: content: application/json: schema: $ref: '#/components/schemas/UnbanRequest' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/UnbanResponse' description: Successful response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Unban tags: - product:moderation /api/v2/moderation/unmute: post: description: 'Unmute a user ' operationId: unmute requestBody: content: application/json: schema: $ref: '#/components/schemas/UnmuteRequest' description: UnmuteRequest required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/UnmuteResponse' description: UnmuteResponse '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Unmute a user tags: - product:moderation components: schemas: QueryModerationFlagsResponse: description: Basic response information nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: '003.001' flags: items: $ref: '#/components/schemas/ModerationFlagResponse' type: array x-stream-index: '001' next: type: string x-stream-index: '002.001' prev: type: string x-stream-index: '002.002' required: - flags - duration title: Response type: object FlagResponse: nullable: true properties: duration: type: string x-stream-index: '002.001' item_id: description: Unique identifier of the created moderation item title: Item ID type: string x-stream-index: '001' required: - item_id - duration type: object UnbanActionRequestPayload: description: Configuration for unban moderation action properties: channel_cid: description: Channel CID for channel-specific unban title: Channel CID type: string x-stream-index: '001' decision_reason: description: Reason for the appeal decision title: Decision Reason type: string x-stream-index: '002' remove_future_channels_ban: description: Also remove the future channels ban for this user title: Remove Future Channels Ban type: boolean x-stream-index: '003' title: UnbanActionRequest type: object ChatReactionGroupUserResponse: properties: created_at: format: date-time type: number x-stream-index: '003' user: $ref: '#/components/schemas/UserResponse' x-stream-index: '002' user_id: type: string x-stream-index: '001' required: - user_id - created_at type: object IngressSourceResponse: properties: fps: type: integer x-stream-index: '003' height: type: integer x-stream-index: '002' width: type: integer x-stream-index: '001' required: - width - height - fps type: object TriggerResponse: properties: options: additionalProperties: {} description: Trigger options title: Options type: object x-stream-index: '002' type: description: Trigger type title: Type type: string x-stream-index: '001' required: - type title: TriggerResponse type: object BulkUpsertActionConfigResponse: nullable: true properties: action_configs: description: The created or updated action configs in the same order as the request items: $ref: '#/components/schemas/ModerationActionConfigResponse' title: Action Configs type: array x-stream-index: '001' duration: type: string x-stream-index: '002.001' required: - action_configs - duration type: object ThumbnailResponse: properties: image_url: type: string x-stream-index: '001' required: - image_url type: object Data: properties: id: type: string x-stream-index: '001' required: - id type: object CallActionOptions: properties: duration: format: int32 type: integer x-stream-index: '003' flag_reason: type: string x-stream-index: '006' kick_reason: type: string x-stream-index: '005' mute_audio: type: boolean x-stream-index: '001' mute_video: type: boolean x-stream-index: '002' reason: type: string x-stream-index: '004' warning_text: type: string x-stream-index: '007' type: object BypassActionRequest: properties: enabled: type: boolean x-stream-index: '001' type: object BodyguardImageAnalysisConfig: properties: rules: items: $ref: '#/components/schemas/BodyguardRule' type: array x-stream-index: '001' type: object RuleResponse: properties: condition: additionalProperties: {} description: MongoDB expression that determines if the defined actions should be executed title: Condition type: object x-stream-index: '004' created_at: description: Date/time of creation format: date-time title: Created at type: string x-stream-index: '006' evaluations: items: $ref: '#/components/schemas/EvaluationResponse' type: array x-stream-index: '003' filter: additionalProperties: {} description: Filter object that selects a task based on its attributes, eg. content-type or channel type. title: Filter type: object x-stream-index: '002' id: description: Rule ID title: ID type: string x-stream-index: '001' triggers: description: List of triggers items: $ref: '#/components/schemas/TriggerResponse' title: Triggers type: array x-stream-index: '005' updated_at: format: date-time type: string x-stream-index: '007' required: - id - filter - evaluations - condition - triggers - created_at - updated_at title: RuleResponse type: object CallResponse: description: Represents a call properties: backstage: type: boolean x-stream-index: '017' blocked_user_ids: items: type: string type: array x-stream-index: 019 captioning: type: boolean x-stream-index: '013' channel_cid: type: string x-stream-index: '025' cid: description: The unique identifier for a call (:) title: CID type: string x-stream-index: '004' created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: 009 created_by: $ref: '#/components/schemas/UserResponse' description: The user that created the call title: Created By x-stream-index: '007' current_session_id: type: string x-stream-index: '005' custom: additionalProperties: {} description: Custom data for this object title: Custom data type: object x-stream-index: 008 egress: $ref: '#/components/schemas/EgressResponse' x-stream-index: '022' ended_at: description: Date/time when the call ended format: date-time title: Ended At type: number x-stream-index: '015' id: description: Call ID title: ID type: string x-stream-index: '003' ingress: $ref: '#/components/schemas/CallIngressResponse' x-stream-index: '020' join_ahead_time_seconds: format: int32 type: integer x-stream-index: '024' recording: type: boolean x-stream-index: '011' routing_number: description: 10-digit routing number for SIP routing title: Routing Number type: string x-stream-index: '026' session: $ref: '#/components/schemas/CallSessionResponse' x-stream-index: '021' settings: $ref: '#/components/schemas/CallSettingsResponse' x-stream-index: 018 starts_at: description: Date/time when the call will start format: date-time title: Starts At type: number x-stream-index: '016' team: type: string x-stream-index: '006' thumbnails: $ref: '#/components/schemas/ThumbnailResponse' x-stream-index: '023' transcribing: type: boolean x-stream-index: '012' translating: type: boolean x-stream-index: '014' type: description: The type of call title: Type type: string x-stream-index: '002' updated_at: description: Date/time of the last update format: date-time title: Updated at type: number x-stream-index: '010' required: - type - id - cid - current_session_id - created_by - custom - created_at - updated_at - recording - transcribing - captioning - translating - backstage - settings - blocked_user_ids - ingress - egress title: CallResponse type: object UnbanResponse: nullable: true properties: duration: type: string x-stream-index: '001.001' required: - duration type: object QueryModerationLogsRequest: nullable: true properties: filter: additionalProperties: {} description: Filter conditions for moderation logs title: Filter type: object x-stream-index: '001' limit: format: int32 maximum: 100 minimum: 0 type: integer x-stream-index: '003.001' next: type: string x-stream-index: '003.002' prev: type: string x-stream-index: '003.003' sort: description: Sorting parameters for the results items: $ref: '#/components/schemas/SortParamRequest' title: Sort type: array x-stream-index: '002' user: $ref: '#/components/schemas/UserRequest' x-stream-index: '004.002' user_id: type: string x-stream-index: '004.001' type: object BanResponse: nullable: true properties: banned_by: $ref: '#/components/schemas/UserResponse' x-stream-index: '006' channel: $ref: '#/components/schemas/ChannelResponse' x-stream-index: '001' created_at: format: date-time type: number x-stream-index: '007' expires: format: date-time type: number x-stream-index: '003' reason: type: string x-stream-index: '004' shadow: type: boolean x-stream-index: '005' user: $ref: '#/components/schemas/UserResponse' x-stream-index: '002' required: - created_at type: object UpsertModerationTemplateResponse: nullable: true properties: config: $ref: '#/components/schemas/FeedsModerationTemplateConfigPayload' description: Configuration for the moderation template title: Config x-stream-index: '002' created_at: description: When the template was created format: date-time title: Created At type: number x-stream-index: '003' duration: type: string x-stream-index: '005.001' name: description: Name of the moderation template title: Name type: string x-stream-index: '001' updated_at: description: When the template was last updated format: date-time title: Updated At type: number x-stream-index: '004' required: - name - created_at - updated_at - duration type: object AIImageConfig: properties: async: type: boolean x-stream-index: '001' enabled: type: boolean x-stream-index: '002' ocr_rules: items: $ref: '#/components/schemas/OCRRule' type: array x-stream-index: '004' rules: items: $ref: '#/components/schemas/AWSRekognitionRule' type: array x-stream-index: '003' type: object GoogleVisionConfig: properties: enabled: type: boolean x-stream-index: '001' type: object SubmitModerationFeedbackResponse: nullable: true properties: duration: type: string x-stream-index: '001.001' required: - duration type: object APIError: nullable: true properties: StatusCode: description: Response HTTP status code format: int32 title: Status code type: integer x-stream-index: '004' code: description: API error code format: int32 title: Code type: integer x-stream-index: '001' details: description: Additional error-specific information items: type: integer title: Details type: array x-stream-index: '007' duration: description: Request duration title: Duration type: string x-stream-index: '005' exception_fields: additionalProperties: type: string description: Additional error info title: Exception fields type: object x-stream-index: '003' message: description: Message describing an error title: Message type: string x-stream-index: '002' more_info: description: URL with additional information title: More info type: string x-stream-index: '006' unrecoverable: description: Flag that indicates if the error is unrecoverable, requests that return unrecoverable errors should not be retried, this error only applies to the request that caused it title: Unrecoverable type: boolean x-stream-index: 008 required: - code - message - StatusCode - duration - more_info - details title: Error response type: object UnblockActionRequestPayload: description: Configuration for unblock action properties: decision_reason: description: Reason for the appeal decision title: Decision Reason type: string x-stream-index: '001' title: UnblockActionRequest type: object QueryModerationConfigsResponse: nullable: true properties: configs: description: List of moderation configurations items: $ref: '#/components/schemas/ConfigResponse' title: Configs type: array x-stream-index: '001' duration: type: string x-stream-index: '003.001' next: type: string x-stream-index: '002.001' prev: type: string x-stream-index: '002.002' required: - configs - duration type: object PollResponseData: properties: allow_answers: type: boolean x-stream-index: 008 allow_user_suggested_options: type: boolean x-stream-index: '007' answers_count: format: int32 type: integer x-stream-index: '012' created_at: format: date-time type: number x-stream-index: 019 created_by: $ref: '#/components/schemas/UserResponse' x-stream-index: 018 created_by_id: type: string x-stream-index: '017' custom: additionalProperties: {} type: object x-stream-index: '021' description: type: string x-stream-index: '003' enforce_unique_vote: type: boolean x-stream-index: '005' id: type: string x-stream-index: '001' is_closed: type: boolean x-stream-index: 009 latest_answers: items: $ref: '#/components/schemas/PollVoteResponseData' type: array x-stream-index: '015' latest_votes_by_option: additionalProperties: items: $ref: '#/components/schemas/PollVoteResponseData' type: array type: object x-stream-index: '014' max_votes_allowed: format: int32 type: integer x-stream-index: '006' name: type: string x-stream-index: '002' options: items: $ref: '#/components/schemas/PollOptionResponseData' type: array x-stream-index: '011' own_votes: items: $ref: '#/components/schemas/PollVoteResponseData' type: array x-stream-index: '016' updated_at: format: date-time type: number x-stream-index: '020' vote_count: format: int32 type: integer x-stream-index: '010' vote_counts_by_option: additionalProperties: format: int32 type: integer type: object x-stream-index: '013' voting_visibility: type: string x-stream-index: '004' required: - id - name - description - voting_visibility - enforce_unique_vote - allow_user_suggested_options - allow_answers - vote_count - options - answers_count - vote_counts_by_option - latest_votes_by_option - latest_answers - own_votes - created_by_id - created_at - updated_at - custom type: object ChatReminderResponseData: properties: channel_cid: type: string x-stream-index: '002' created_at: format: date-time type: number x-stream-index: '007' message: $ref: '#/components/schemas/ChatMessageResponse' x-stream-index: '004' message_id: type: string x-stream-index: '003' remind_at: format: date-time type: number x-stream-index: '001' updated_at: format: date-time type: number x-stream-index: 008 user: $ref: '#/components/schemas/UserResponse' x-stream-index: '006' user_id: type: string x-stream-index: '005' required: - channel_cid - message_id - user_id - created_at - updated_at type: object UpsertModerationTemplateRequest: nullable: true properties: config: $ref: '#/components/schemas/FeedsModerationTemplateConfigPayload' description: Configuration for the moderation template title: Config x-stream-index: '002' name: description: Name of the moderation template title: Name type: string x-stream-index: '001' required: - name - config type: object ChatMessageResponse: properties: attachments: items: $ref: '#/components/schemas/Attachment' type: array x-stream-index: 009 cid: type: string x-stream-index: '022' command: type: string x-stream-index: '004' created_at: format: date-time type: number x-stream-index: '023' custom: additionalProperties: {} type: object x-stream-index: '026' deleted_at: format: date-time type: number x-stream-index: '025' deleted_for_me: type: boolean x-stream-index: 048 deleted_reply_count: format: int32 type: integer x-stream-index: 018 draft: $ref: '#/components/schemas/ChatDraftResponse' x-stream-index: '045' html: type: string x-stream-index: '005' i18n: additionalProperties: type: string type: object x-stream-index: '034' id: type: string x-stream-index: '001' image_labels: additionalProperties: items: type: string type: array type: object x-stream-index: 028 latest_reactions: items: $ref: '#/components/schemas/ChatReactionResponse' type: array x-stream-index: '010' member: $ref: '#/components/schemas/ChannelMemberResponse' x-stream-index: 008 mentioned_channel: type: boolean x-stream-index: '032' mentioned_group_ids: items: type: string type: array x-stream-index: '031' mentioned_here: type: boolean x-stream-index: '033' mentioned_roles: items: type: string type: array x-stream-index: '030' mentioned_users: items: $ref: '#/components/schemas/UserResponse' type: array x-stream-index: 029 message_text_updated_at: format: date-time type: number x-stream-index: '040' mml: type: string x-stream-index: '003' moderation: $ref: '#/components/schemas/ChatModerationV2Response' x-stream-index: '043' own_reactions: items: $ref: '#/components/schemas/ChatReactionResponse' type: array x-stream-index: '011' parent_id: type: string x-stream-index: '015' pin_expires: format: date-time type: number x-stream-index: 039 pinned: type: boolean x-stream-index: '036' pinned_at: format: date-time type: number x-stream-index: '037' pinned_by: $ref: '#/components/schemas/UserResponse' x-stream-index: 038 poll: $ref: '#/components/schemas/PollResponseData' x-stream-index: '042' poll_id: type: string x-stream-index: '041' quoted_message: $ref: '#/components/schemas/ChatMessageResponse' x-stream-index: '020' quoted_message_id: type: string x-stream-index: 019 reaction_counts: additionalProperties: format: int32 type: integer type: object x-stream-index: '012' reaction_groups: additionalProperties: $ref: '#/components/schemas/ChatReactionGroupResponse' type: object x-stream-index: '014' reaction_scores: additionalProperties: format: int32 type: integer type: object x-stream-index: '013' reminder: $ref: '#/components/schemas/ChatReminderResponseData' x-stream-index: '046' reply_count: format: int32 type: integer x-stream-index: '017' restricted_visibility: items: type: string type: array x-stream-index: '044' shadowed: type: boolean x-stream-index: '027' shared_location: $ref: '#/components/schemas/ChatSharedLocationResponseData' x-stream-index: '047' show_in_channel: type: boolean x-stream-index: '016' silent: type: boolean x-stream-index: '035' text: type: string x-stream-index: '002' thread_participants: items: $ref: '#/components/schemas/UserResponse' type: array x-stream-index: '021' type: type: string x-stream-index: '006' updated_at: format: date-time type: number x-stream-index: '024' user: $ref: '#/components/schemas/UserResponse' x-stream-index: '007' required: - id - text - html - type - user - attachments - latest_reactions - own_reactions - reaction_counts - reaction_scores - reply_count - deleted_reply_count - cid - created_at - updated_at - custom - shadowed - mentioned_users - mentioned_channel - mentioned_here - silent - pinned - restricted_visibility type: object EscalationMetadata: properties: notes: type: string x-stream-index: '002' priority: type: string x-stream-index: '003' reason: type: string x-stream-index: '001' type: object ChannelConfigWithInfo: properties: allowed_flag_reasons: items: type: string type: array x-stream-index: 001.002.028 automod: enum: - disabled - simple - AI type: string x-stream-index: 001.002.023 automod_behavior: enum: - flag - block - shadow_block type: string x-stream-index: 001.002.024 automod_thresholds: $ref: '#/components/schemas/Thresholds' x-stream-index: 001.002.029 blocklist: type: string x-stream-index: 001.002.025 blocklist_behavior: enum: - flag - block - shadow_block type: string x-stream-index: 001.002.026 blocklists: items: $ref: '#/components/schemas/BlockListOptions' type: array x-stream-index: 001.002.027 chat_preferences: $ref: '#/components/schemas/ChatPreferences' x-stream-index: 001.002.034 commands: items: $ref: '#/components/schemas/Command' type: array x-stream-index: '001.003' connect_events: type: boolean x-stream-index: 001.002.004 count_messages: type: boolean x-stream-index: 001.002.020 created_at: format: date-time type: number x-stream-index: 001.001.003 custom_events: type: boolean x-stream-index: 001.002.013 delivery_events: type: boolean x-stream-index: 001.002.005 grants: additionalProperties: items: type: string type: array type: object x-stream-index: '002' mark_messages_pending: type: boolean x-stream-index: 001.002.016 max_message_length: format: int32 maximum: 20000 type: integer x-stream-index: 001.002.022 mutes: type: boolean x-stream-index: 001.002.010 name: type: string x-stream-index: 001.002.001 partition_size: format: int32 type: integer x-stream-index: 001.002.030 partition_ttl: example: 24h format: duration nullable: true type: string x-stream-index: 001.002.031 polls: type: boolean x-stream-index: 001.002.017 push_level: enum: - all - all_mentions - mentions - direct_mentions - none type: string x-stream-index: 001.002.033 push_notifications: type: boolean x-stream-index: 001.002.014 quotes: type: boolean x-stream-index: 001.002.009 reactions: type: boolean x-stream-index: 001.002.007 read_events: type: boolean x-stream-index: 001.002.003 reminders: type: boolean x-stream-index: 001.002.015 replies: type: boolean x-stream-index: 001.002.008 search: type: boolean x-stream-index: 001.002.006 shared_locations: type: boolean x-stream-index: 001.002.019 skip_last_msg_update_for_system_msgs: type: boolean x-stream-index: 001.002.032 typing_events: type: boolean x-stream-index: 001.002.002 updated_at: format: date-time type: number x-stream-index: 001.001.004 uploads: type: boolean x-stream-index: 001.002.011 url_enrichment: type: boolean x-stream-index: 001.002.012 user_message_reminders: type: boolean x-stream-index: 001.002.018 required: - created_at - updated_at - name - typing_events - read_events - connect_events - delivery_events - search - reactions - replies - quotes - mutes - uploads - url_enrichment - custom_events - push_notifications - reminders - mark_messages_pending - polls - user_message_reminders - shared_locations - count_messages - message_retention - max_message_length - automod - automod_behavior - skip_last_msg_update_for_system_msgs - commands type: object CallParticipantResponse: properties: joined_at: format: date-time type: number x-stream-index: '004' role: type: string x-stream-index: '003' user: $ref: '#/components/schemas/UserResponse' x-stream-index: '001' user_session_id: type: string x-stream-index: '002' required: - user - user_session_id - role - joined_at type: object GetReviewQueueItemResponse: nullable: true properties: duration: type: string x-stream-index: '002.001' item: $ref: '#/components/schemas/ReviewQueueItemResponse' description: Current state of the review queue item title: Item x-stream-index: '001' required: - duration type: object CompositeRecordingResponse: properties: status: type: string x-stream-index: '001' required: - status type: object BlockListConfig: properties: async: type: boolean x-stream-index: '001' enabled: type: boolean x-stream-index: '003' match_substring: type: boolean x-stream-index: '002' rules: items: $ref: '#/components/schemas/BlockListRule' type: array x-stream-index: '004' type: object ChatModerationV2Response: properties: action: type: string x-stream-index: '001' blocklist_matched: type: string x-stream-index: '005' blocklists_matched: items: type: string type: array x-stream-index: '006' image_harms: items: type: string type: array x-stream-index: '004' original_text: type: string x-stream-index: '002' platform_circumvented: type: boolean x-stream-index: 008 semantic_filter_matched: type: string x-stream-index: '007' text_harms: items: type: string type: array x-stream-index: '003' required: - action - original_text type: object UpsertConfigResponse: nullable: true properties: config: $ref: '#/components/schemas/ConfigResponse' description: The created or updated moderation configuration title: Config x-stream-index: '001' duration: type: string x-stream-index: '002.001' required: - duration type: object CallSettingsResponse: properties: audio: $ref: '#/components/schemas/AudioSettingsResponse' x-stream-index: '001' backstage: $ref: '#/components/schemas/BackstageSettingsResponse' x-stream-index: '002' broadcasting: $ref: '#/components/schemas/BroadcastSettingsResponse' x-stream-index: '003' frame_recording: $ref: '#/components/schemas/FrameRecordingSettingsResponse' x-stream-index: 008 geofencing: $ref: '#/components/schemas/GeofenceSettingsResponse' x-stream-index: '004' individual_recording: $ref: '#/components/schemas/IndividualRecordingSettingsResponse' x-stream-index: '006' ingress: $ref: '#/components/schemas/IngressSettingsResponse' x-stream-index: '016' limits: $ref: '#/components/schemas/LimitsSettingsResponse' x-stream-index: '014' raw_recording: $ref: '#/components/schemas/RawRecordingSettingsResponse' x-stream-index: '007' recording: $ref: '#/components/schemas/RecordSettingsResponse' x-stream-index: '005' ring: $ref: '#/components/schemas/RingSettingsResponse' x-stream-index: 009 screensharing: $ref: '#/components/schemas/ScreensharingSettingsResponse' x-stream-index: '010' session: $ref: '#/components/schemas/SessionSettingsResponse' x-stream-index: '015' thumbnails: $ref: '#/components/schemas/ThumbnailsSettingsResponse' x-stream-index: '013' transcription: $ref: '#/components/schemas/TranscriptionSettingsResponse' x-stream-index: '011' video: $ref: '#/components/schemas/VideoSettingsResponse' x-stream-index: '012' required: - audio - backstage - broadcasting - geofencing - recording - individual_recording - raw_recording - frame_recording - ring - screensharing - transcription - video - thumbnails - limits - session type: object EnrichedActivity: properties: actor: $ref: '#/components/schemas/Data' x-stream-index: '002' foreign_id: type: string x-stream-index: '005' id: type: string x-stream-index: '001' latest_reactions: additionalProperties: items: $ref: '#/components/schemas/EnrichedReaction' type: array type: object x-stream-index: '013' object: $ref: '#/components/schemas/Data' x-stream-index: '004' origin: $ref: '#/components/schemas/Data' x-stream-index: 008 own_reactions: additionalProperties: items: $ref: '#/components/schemas/EnrichedReaction' type: array type: object x-stream-index: '012' reaction_counts: additionalProperties: format: int32 type: integer type: object x-stream-index: '011' score: format: float type: number x-stream-index: '010' target: $ref: '#/components/schemas/Data' x-stream-index: '006' to: items: type: string type: array x-stream-index: 009 verb: type: string x-stream-index: '003' type: object AutomodPlatformCircumventionConfig: properties: async: type: boolean x-stream-index: '001' enabled: type: boolean x-stream-index: '002' rules: items: $ref: '#/components/schemas/AutomodRule' type: array x-stream-index: '003' type: object FeedsBookmarkResponse: properties: activity_id: type: string x-stream-index: '007' created_at: format: date-time type: number x-stream-index: '005' custom: additionalProperties: {} type: object x-stream-index: '004' object_id: type: string x-stream-index: '002' object_type: type: string x-stream-index: '001' updated_at: format: date-time type: number x-stream-index: '006' user: $ref: '#/components/schemas/UserResponse' x-stream-index: '003' required: - object_type - object_id - user - created_at - updated_at type: object UserRuleParameters: properties: max_age: type: string x-stream-index: '001' type: object AutomodRule: properties: action: enum: - flag - shadow - remove - bounce - bounce_flag - bounce_remove type: string x-stream-index: '003' label: type: string x-stream-index: '001' threshold: format: float maximum: 1 minimum: 0 type: number x-stream-index: '002' required: - label - threshold - action type: object AutomodSemanticFiltersRule: properties: action: enum: - flag - shadow - remove - bounce - bounce_flag - bounce_remove type: string x-stream-index: '003' name: type: string x-stream-index: '001' threshold: format: float maximum: 1 minimum: 0 type: number x-stream-index: '002' required: - name - threshold - action type: object CustomActionRequestPayload: description: Configuration for custom moderation action properties: id: description: Custom action identifier title: ID type: string x-stream-index: '001' options: additionalProperties: {} description: Custom action options title: Options type: object x-stream-index: '002' title: CustomActionRequest type: object PollVoteResponseData: nullable: true properties: answer_text: type: string x-stream-index: '005' created_at: format: date-time type: number x-stream-index: 008 id: type: string x-stream-index: '002' is_answer: type: boolean x-stream-index: '004' option_id: type: string x-stream-index: '003' poll_id: type: string x-stream-index: '001' updated_at: format: date-time type: number x-stream-index: 009 user: $ref: '#/components/schemas/UserResponse' x-stream-index: '007' user_id: type: string x-stream-index: '006' required: - poll_id - id - option_id - created_at - updated_at type: object CallViolationCountParameters: properties: threshold: format: int32 type: integer x-stream-index: '001' time_window: type: string x-stream-index: '002' type: object IngressSettingsResponse: properties: audio_encoding_options: $ref: '#/components/schemas/IngressAudioEncodingResponse' x-stream-index: '002' enabled: type: boolean x-stream-index: '001' video_encoding_options: additionalProperties: $ref: '#/components/schemas/IngressVideoEncodingResponse' type: object x-stream-index: '003' required: - enabled type: object QueryModerationRulesRequest: nullable: true properties: filter: additionalProperties: {} description: Filter conditions for moderation rules title: Filter type: object x-stream-index: '001' limit: format: int32 maximum: 100 minimum: 0 type: integer x-stream-index: '003.001' next: type: string x-stream-index: '003.002' prev: type: string x-stream-index: '003.003' sort: description: Sorting parameters for the results items: $ref: '#/components/schemas/SortParamRequest' title: Sort type: array x-stream-index: '002' user: $ref: '#/components/schemas/UserRequest' x-stream-index: '004.002' user_id: type: string x-stream-index: '004.001' type: object AIVideoConfig: properties: async: type: boolean x-stream-index: '001' enabled: type: boolean x-stream-index: '002' rules: items: $ref: '#/components/schemas/AWSRekognitionRule' type: array x-stream-index: '003' type: object TargetResolution: properties: bitrate: format: int32 maximum: 6000000 type: integer x-stream-index: '003' height: format: int32 maximum: 3840 minimum: 240 type: integer x-stream-index: '002' width: format: int32 maximum: 3840 minimum: 240 type: integer x-stream-index: '001' required: - width - height - bitrate type: object UpdateTaskResponse: nullable: true properties: duration: type: string x-stream-index: '002.001' task: $ref: '#/components/schemas/TaskResponse' title: Task x-stream-index: '001' required: - task - duration title: UpdateTaskResponse type: object FeedsEnrichedCollectionResponse: properties: created_at: format: date-time type: number x-stream-index: '001.005' custom: additionalProperties: {} type: object x-stream-index: '001.003' id: type: string x-stream-index: '001.002' name: type: string x-stream-index: '001.001' status: type: string x-stream-index: '002' updated_at: format: date-time type: number x-stream-index: '001.006' user_id: type: string x-stream-index: '001.004' required: - name - id - custom - user_id - created_at - updated_at - status type: object Reaction: properties: activity_id: type: string x-stream-index: '001.003' children_counts: additionalProperties: {} type: object x-stream-index: '005' created_at: format: date-time type: number x-stream-index: '006' data: additionalProperties: {} type: object x-stream-index: '001.005' deleted_at: format: date-time type: number x-stream-index: 008 id: type: string x-stream-index: '001.001' kind: type: string x-stream-index: '001.002' latest_children: additionalProperties: items: $ref: '#/components/schemas/Reaction' type: array type: object x-stream-index: '003' moderation: additionalProperties: {} type: object x-stream-index: '010' own_children: additionalProperties: items: $ref: '#/components/schemas/Reaction' type: array type: object x-stream-index: '004' parent: type: string x-stream-index: '001.008' score: format: float type: number x-stream-index: 009 target_feeds: items: type: string type: array x-stream-index: '001.006' target_feeds_extra_data: additionalProperties: {} type: object x-stream-index: '001.007' updated_at: format: date-time type: number x-stream-index: '007' user: $ref: '#/components/schemas/User' x-stream-index: '002' user_id: type: string x-stream-index: '001.004' required: - kind - activity_id - user_id - created_at - updated_at type: object UpsertConfigRequest: nullable: true properties: ai_image_config: $ref: '#/components/schemas/AIImageConfig' description: Configuration for AI image analysis title: AI Image Config x-stream-index: '011' ai_text_config: $ref: '#/components/schemas/AITextConfig' description: Configuration for AI text analysis title: AI Text Config x-stream-index: 008 ai_video_config: $ref: '#/components/schemas/AIVideoConfig' description: Configuration for AI video analysis title: AI Video Config x-stream-index: '012' async: description: Whether moderation should be performed asynchronously title: Async type: boolean x-stream-index: '003' automod_platform_circumvention_config: $ref: '#/components/schemas/AutomodPlatformCircumventionConfig' description: Configuration for platform circumvention detection title: Automod Platform Circumvention Config x-stream-index: '005' automod_semantic_filters_config: $ref: '#/components/schemas/AutomodSemanticFiltersConfig' description: Configuration for semantic filtering title: Automod Semantic Filters Config x-stream-index: '006' automod_toxicity_config: $ref: '#/components/schemas/AutomodToxicityConfig' description: Configuration for toxicity detection title: Automod Toxicity Config x-stream-index: '004' aws_rekognition_config: $ref: '#/components/schemas/AIImageConfig' x-stream-index: '016' block_list_config: $ref: '#/components/schemas/BlockListConfig' description: Configuration for block list filtering title: Block List Config x-stream-index: '007' bodyguard_config: $ref: '#/components/schemas/AITextConfig' x-stream-index: '015' google_vision_config: $ref: '#/components/schemas/GoogleVisionConfig' description: Configuration for Google Vision integration title: Google Vision Config x-stream-index: '010' key: description: Unique identifier for the moderation configuration title: Key type: string x-stream-index: '001' llm_config: $ref: '#/components/schemas/LLMConfig' description: Configuration for customer-configured LLM moderation title: LLM Config x-stream-index: 009 rule_builder_config: $ref: '#/components/schemas/RuleBuilderConfig' description: Configuration for custom rule builder (max 3 rules, max 5 conditions per rule) title: Rule Builder Config x-stream-index: '014' team: description: Team associated with the configuration maxLength: 128 minLength: 1 title: Team type: string x-stream-index: '002' user: $ref: '#/components/schemas/UserRequest' x-stream-index: '018.002' user_id: description: Optional user ID to associate with the audit log entry title: User ID type: string x-stream-index: '018.001' velocity_filter_config: $ref: '#/components/schemas/VelocityFilterConfig' description: Configuration for velocity-based filtering title: Velocity Filter Config x-stream-index: '013' video_call_rule_config: $ref: '#/components/schemas/VideoCallRuleConfig' x-stream-index: '017' required: - key type: object SubmitChatMessageTaskResponse: nullable: true properties: duration: type: string x-stream-index: '002.001' task: $ref: '#/components/schemas/ChatMessageTaskResponse' title: Task x-stream-index: '001' required: - task - duration title: SubmitChatMessageTaskResponse type: object GetModerationRuleResponse: description: Basic response information nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: '001.001' rule: $ref: '#/components/schemas/ModerationRuleV2Response' x-stream-index: '002' required: - duration title: Response type: object LabelResultResponse: properties: category: description: Category title: Category type: string x-stream-index: 008 content: description: The moderated content title: Content type: string x-stream-index: '005' content_id: description: Customer-supplied identifier for the moderated content title: Content ID type: string x-stream-index: '014' content_type: type: string x-stream-index: '004' created_at: description: Timestamp format: date-time title: Created At type: number x-stream-index: '002' directed_at: description: Who the content is directed at (USER, GROUP, EVERYONE, NONE, etc.) title: Directed At type: string x-stream-index: '011' harm_type: description: High-level harm category title: Harm Type type: string x-stream-index: '010' id: description: Unique identifier title: ID type: string x-stream-index: '001' labels: description: Moderation labels items: type: string title: Labels type: array x-stream-index: 009 language: description: Detected language title: Language type: string x-stream-index: '007' masked_content: description: Content with blocklisted tokens masked (when a blocklist rule with action=mask rewrote the original) title: Masked Content type: string x-stream-index: '006' policy: type: string x-stream-index: '003' recommended_action: description: Provider recommended action title: Recommended Action type: string x-stream-index: '012' severity: description: Severity level title: Severity type: string x-stream-index: '013' user_id: description: Customer-supplied user identifier for the content author title: User ID type: string x-stream-index: '015' required: - id - created_at - content_type - content - language - category - labels - harm_type - recommended_action - severity type: object GetAppealResponse: nullable: true properties: duration: type: string x-stream-index: '002.001' item: $ref: '#/components/schemas/AppealItemResponse' description: Current state of the appeal title: Item x-stream-index: '001' required: - duration type: object AutomodSemanticFiltersConfig: properties: async: type: boolean x-stream-index: '001' enabled: type: boolean x-stream-index: '002' rules: items: $ref: '#/components/schemas/AutomodSemanticFiltersRule' type: array x-stream-index: '003' type: object ImageContentParameters: properties: harm_labels: items: type: string type: array x-stream-index: '001' label_operator: type: string x-stream-index: '002' min_confidence: format: float type: number x-stream-index: '003' type: object GetActionConfigResponse: nullable: true properties: action_config: additionalProperties: items: $ref: '#/components/schemas/ModerationActionConfigResponse' type: array description: Moderation action configs grouped by entity type, sorted by order ascending title: Action Config type: object x-stream-index: '001' duration: type: string x-stream-index: '002.001' required: - action_config - duration type: object ClosedCaptionRuleParameters: properties: harm_labels: items: type: string type: array x-stream-index: '001' llm_harm_labels: additionalProperties: type: string type: object x-stream-index: '002' threshold: format: int32 type: integer x-stream-index: '003' type: object CustomCheckRequest: nullable: true properties: entity_creator_id: description: ID of the user who created the entity (required for non-message entities) title: Entity Creator ID type: string x-stream-index: '003' entity_id: description: Unique identifier of the entity title: Entity ID type: string x-stream-index: '002' entity_type: description: Type of entity to perform custom check on title: Entity Type type: string x-stream-index: '001' flags: description: List of custom check flags (1-10 flags required) items: $ref: '#/components/schemas/CustomCheckFlag' maxItems: 10 minItems: 1 title: Flags type: array x-stream-index: '005' moderation_payload: $ref: '#/components/schemas/ModerationPayloadRequest' description: Content to be checked (required for non-message entities) title: Moderation Payload x-stream-index: '004' user: $ref: '#/components/schemas/UserRequest' x-stream-index: '006.002' user_id: type: string x-stream-index: '006.001' required: - entity_type - entity_id - flags type: object ModerationFlagResponse: nullable: true properties: created_at: format: date-time type: number x-stream-index: '015' custom: additionalProperties: {} type: object x-stream-index: '010' entity_creator_id: type: string x-stream-index: '007' entity_id: type: string x-stream-index: '006' entity_type: type: string x-stream-index: '005' labels: items: type: string type: array x-stream-index: '011' moderation_payload: $ref: '#/components/schemas/ModerationPayloadResponse' x-stream-index: 008 reason: type: string x-stream-index: 009 result: items: additionalProperties: {} type: object type: array x-stream-index: '012' review_queue_item: $ref: '#/components/schemas/ReviewQueueItemResponse' x-stream-index: '014' review_queue_item_id: type: string x-stream-index: '013' type: type: string x-stream-index: '002' updated_at: format: date-time type: number x-stream-index: '016' user: $ref: '#/components/schemas/UserResponse' x-stream-index: '004' user_id: type: string x-stream-index: '003' required: - type - user_id - entity_type - entity_id - result - created_at - updated_at type: object DeleteCommentRequestPayload: description: Configuration for comment deletion action properties: entity_id: description: ID of the comment to delete (alternative to item_id) title: Entity ID type: string x-stream-index: '003' entity_type: description: Type of the entity title: Entity Type type: string x-stream-index: '004' hard_delete: description: Whether to permanently delete the comment title: Hard Delete type: boolean x-stream-index: '001' reason: description: Reason for deletion title: Reason type: string x-stream-index: '002' title: DeleteCommentRequest type: object QueryAppealsRequest: nullable: true properties: filter: additionalProperties: {} description: Filter conditions for appeals title: Filter type: object x-stream-index: '001' limit: format: int32 maximum: 100 minimum: 0 type: integer x-stream-index: '003.001' next: type: string x-stream-index: '003.002' prev: type: string x-stream-index: '003.003' sort: description: Sorting parameters for appeals items: $ref: '#/components/schemas/SortParamRequest' title: Sort type: array x-stream-index: '002' user: $ref: '#/components/schemas/UserRequest' x-stream-index: '004.002' user_id: type: string x-stream-index: '004.001' type: object LabelsResponse: nullable: true properties: content_id: description: Customer-supplied identifier for the moderated content, for tracing title: Content ID type: string x-stream-index: '001' directed_at: description: Who the content is directed at (USER, GROUP, EVERYONE, NONE, etc.), when the provider exposes it title: Directed At type: string x-stream-index: '004' duration: type: string x-stream-index: '009.001' harm_type: description: High-level harm category title: Harm Type type: string x-stream-index: '003' labels: description: Moderation labels detected items: type: string title: Labels type: array x-stream-index: '002' language: description: Detected language title: Language type: string x-stream-index: '007' masked_content: description: Content with blocklisted tokens masked or substituted. Present only when a blocklist rewrote the original content. title: Masked Content type: string x-stream-index: 008 recommended_action: description: Provider recommended action title: Recommended Action type: string x-stream-index: '005' severity: description: Severity level title: Severity type: string x-stream-index: '006' required: - recommended_action - duration type: object GetFlagCountResponse: nullable: true properties: count: description: Total number of flags against the specified user's content format: int32 title: Count type: integer x-stream-index: '001' duration: type: string x-stream-index: '002.001' required: - count - duration type: object ShadowBlockActionRequestPayload: description: Configuration for shadow block action properties: reason: description: Reason for shadow blocking title: Reason type: string x-stream-index: '001' title: ShadowBlockActionRequest type: object ThumbnailsSettingsResponse: properties: enabled: type: boolean x-stream-index: '001' required: - enabled type: object BulkDeleteActionConfigRequest: nullable: true properties: ids: description: UUIDs of the action configs to delete items: type: string minItems: 1 title: IDs type: array x-stream-index: '001' user: $ref: '#/components/schemas/UserRequest' x-stream-index: '002.002' user_id: type: string x-stream-index: '002.001' required: - ids type: object RuleBuilderCondition: properties: call_custom_property_params: $ref: '#/components/schemas/CallCustomPropertyParameters' x-stream-index: '021' call_type_rule_params: $ref: '#/components/schemas/CallTypeRuleParameters' x-stream-index: '020' call_violation_count_params: $ref: '#/components/schemas/CallViolationCountParameters' x-stream-index: '022' channel_message_count_rule_params: $ref: '#/components/schemas/ChannelMessageCountRuleParameters' x-stream-index: 008 closed_caption_rule_params: $ref: '#/components/schemas/ClosedCaptionRuleParameters' x-stream-index: 019 confidence: format: float type: number x-stream-index: '002' content_count_rule_params: $ref: '#/components/schemas/ContentCountRuleParameters' x-stream-index: '007' content_flag_count_rule_params: $ref: '#/components/schemas/FlagCountRuleParameters' x-stream-index: '010' image_content_params: $ref: '#/components/schemas/ImageContentParameters' x-stream-index: '013' image_rule_params: $ref: '#/components/schemas/ImageRuleParameters' x-stream-index: '004' keyframe_rule_params: $ref: '#/components/schemas/KeyframeRuleParameters' x-stream-index: 018 text_content_params: $ref: '#/components/schemas/TextContentParameters' x-stream-index: '012' text_rule_params: $ref: '#/components/schemas/TextRuleParameters' x-stream-index: '003' type: type: string x-stream-index: '001' user_created_within_params: $ref: '#/components/schemas/UserCreatedWithinParameters' x-stream-index: '015' user_custom_property_params: $ref: '#/components/schemas/UserCustomPropertyParameters' x-stream-index: '016' user_flag_count_rule_params: $ref: '#/components/schemas/FlagCountRuleParameters' x-stream-index: 009 user_identical_content_count_params: $ref: '#/components/schemas/UserIdenticalContentCountParameters' x-stream-index: '011' user_role_params: $ref: '#/components/schemas/UserRoleParameters' x-stream-index: '017' user_rule_params: $ref: '#/components/schemas/UserRuleParameters' x-stream-index: '006' video_content_params: $ref: '#/components/schemas/VideoContentParameters' x-stream-index: '014' video_rule_params: $ref: '#/components/schemas/VideoRuleParameters' x-stream-index: '005' type: object RuleBuilderRule: properties: action: $ref: '#/components/schemas/RuleBuilderAction' x-stream-index: '006' action_sequences: items: $ref: '#/components/schemas/CallRuleActionSequence' type: array x-stream-index: '007' conditions: items: $ref: '#/components/schemas/RuleBuilderCondition' type: array x-stream-index: '003' cooldown_period: type: string x-stream-index: 008 groups: items: $ref: '#/components/schemas/RuleBuilderConditionGroup' type: array x-stream-index: '005' id: type: string x-stream-index: '001' logic: type: string x-stream-index: '004' rule_type: type: string x-stream-index: '002' required: - rule_type type: object VideoContentParameters: properties: harm_labels: items: type: string type: array x-stream-index: '001' label_operator: type: string x-stream-index: '002' type: object BodyguardSeverityRule: properties: action: enum: - flag - shadow - remove - bounce - bounce_flag - bounce_remove type: string x-stream-index: '002' severity: enum: - low - medium - high - critical type: string x-stream-index: '001' required: - severity - action type: object EscalatePayload: description: Configuration for escalation action properties: notes: description: Additional context for the reviewer title: Notes type: string x-stream-index: '002' priority: description: Priority of the escalation (low, medium, high) title: Priority type: string x-stream-index: '003' reason: description: Reason for the escalation (from configured escalation_reasons) title: Reason type: string x-stream-index: '001' title: EscalatePayload type: object BlockActionRequestPayload: description: Configuration for block action properties: reason: description: Reason for blocking title: Reason type: string x-stream-index: '001' title: BlockActionRequest type: object FeedsFeedResponse: properties: activity_count: format: int32 type: integer x-stream-index: '014' created_at: format: date-time type: number x-stream-index: '016' created_by: $ref: '#/components/schemas/UserResponse' x-stream-index: '010' custom: additionalProperties: {} type: object x-stream-index: '006' deleted_at: format: date-time type: number x-stream-index: 018 description: type: string x-stream-index: '005' feed: type: string x-stream-index: '003' filter_tags: items: type: string type: array x-stream-index: 008 follower_count: format: int32 type: integer x-stream-index: '012' following_count: format: int32 type: integer x-stream-index: '013' group_id: type: string x-stream-index: '001' id: type: string x-stream-index: '002' location: $ref: '#/components/schemas/FeedsActivityLocation' x-stream-index: '007' member_count: format: int32 type: integer x-stream-index: '011' name: type: string x-stream-index: '004' pin_count: format: int32 type: integer x-stream-index: '015' updated_at: format: date-time type: number x-stream-index: '017' visibility: type: string x-stream-index: 009 required: - group_id - id - feed - name - description - created_by - member_count - follower_count - following_count - activity_count - pin_count - created_at - updated_at type: object BypassResponse: nullable: true properties: duration: type: string x-stream-index: '001.001' required: - duration type: object VideoCallRuleConfig: properties: flag_all_labels: type: boolean x-stream-index: '002' flagged_labels: items: type: string type: array x-stream-index: '003' rules: items: $ref: '#/components/schemas/HarmConfig' type: array x-stream-index: '001' type: object RTMPIngress: description: RTMP input settings properties: address: title: Address type: string x-stream-index: '001' required: - address title: RTMPIngress type: object ModerationPayloadRequest: description: Content payload for moderation properties: custom: additionalProperties: {} description: Custom data for moderation title: Custom type: object x-stream-index: '004' images: description: Image URLs to moderate (max 30) items: type: string maxItems: 30 title: Images type: array x-stream-index: '002' texts: description: Text content to moderate items: type: string title: Texts type: array x-stream-index: '001' videos: description: Video URLs to moderate items: type: string title: Videos type: array x-stream-index: '003' title: ModerationPayload type: object SpeechSegmentConfig: properties: max_speech_caption_ms: format: int32 type: integer x-stream-index: '001' silence_duration_ms: format: int32 type: integer x-stream-index: '002' type: object ActionLogResponse: nullable: true properties: ai_providers: items: type: string type: array x-stream-index: '012' created_at: description: Timestamp when the action was taken format: date-time title: Created At type: number x-stream-index: '002' custom: additionalProperties: {} description: Additional metadata about the action title: Custom type: object x-stream-index: 008 id: description: Unique identifier of the action log title: ID type: string x-stream-index: '001' reason: description: Reason for the moderation action title: Reason type: string x-stream-index: '007' reporter_type: description: Classification of who triggered the action (e.g. user, moderator, automod, api_integration) title: Reporter Type type: string x-stream-index: '006' review_queue_item: $ref: '#/components/schemas/ReviewQueueItemResponse' description: Associated review queue item title: Review Queue Item x-stream-index: 009 target_user: $ref: '#/components/schemas/UserResponse' description: User who was the target of the action title: Target User x-stream-index: '010' target_user_id: description: ID of the user who was the target of the action title: Target User ID type: string x-stream-index: '011' type: description: Type of moderation action title: Type type: string x-stream-index: '003' user: $ref: '#/components/schemas/UserResponse' description: User who performed the action title: User x-stream-index: '004' user_id: description: ID of the user who performed the action title: User ID type: string x-stream-index: '005' required: - id - created_at - type - user_id - reporter_type - reason - custom - target_user_id - ai_providers type: object RawRecordingSettingsResponse: properties: audio_only: type: boolean x-stream-index: '002' mode: enum: - available - disabled - auto-on type: string x-stream-index: '001' required: - mode type: object NoiseCancellationSettings: properties: mode: enum: - available - disabled - auto-on type: string x-stream-index: '001' required: - mode type: object RejectAppealRequestPayload: description: Configuration for rejecting an appeal properties: decision_reason: description: Reason for rejecting the appeal title: Decision Reason type: string x-stream-index: '001' required: - decision_reason title: RejectAppealRequest type: object VelocityFilterConfigRule: properties: action: enum: - flag - shadow - remove - ban type: string x-stream-index: '001' ban_duration: format: int32 type: integer x-stream-index: '002' cascading_action: enum: - flag - shadow - remove - ban type: string x-stream-index: '006' cascading_threshold: format: int64 type: integer x-stream-index: '005' check_message_context: type: boolean x-stream-index: 009 fast_spam_threshold: format: int32 type: integer x-stream-index: '007' fast_spam_ttl: format: int32 type: integer x-stream-index: '010' ip_ban: type: boolean x-stream-index: '004' probation_period: format: int32 type: integer x-stream-index: '014' shadow_ban: type: boolean x-stream-index: '003' slow_spam_ban_duration: format: int32 type: integer x-stream-index: '012' slow_spam_threshold: format: int32 type: integer x-stream-index: 008 slow_spam_ttl: format: int32 type: integer x-stream-index: '011' url_only: type: boolean x-stream-index: '013' required: - action type: object ChannelOwnCapability: description: All possibility of string to use enum: - ban-channel-members - cast-poll-vote - connect-events - create-attachment - delete-any-message - delete-channel - delete-own-message - delivery-events - flag-message - freeze-channel - join-channel - leave-channel - mute-channel - pin-message - query-poll-votes - quote-message - read-events - search-messages - send-custom-events - send-links - send-message - send-poll - send-reaction - send-reply - send-restricted-visibility-message - send-typing-events - set-channel-cooldown - share-location - skip-slow-mode - slow-mode - typing-events - update-any-message - update-channel - update-channel-members - update-own-message - update-thread - upload-file title: ChannelOwnCapability type: string FilterConfigResponse: properties: ai_text_labels: items: type: string type: array x-stream-index: '002' config_keys: items: type: string type: array x-stream-index: '003' llm_labels: items: type: string type: array x-stream-index: '001' required: - llm_labels type: object LayoutSettingsResponse: properties: detect_orientation: type: boolean x-stream-index: '005' external_app_url: type: string x-stream-index: '003' external_css_url: type: string x-stream-index: '004' name: enum: - spotlight - grid - single-participant - mobile - custom type: string x-stream-index: '001' options: additionalProperties: {} type: object x-stream-index: '002' required: - name - external_app_url - external_css_url type: object EgressResponse: properties: broadcasting: type: boolean x-stream-index: '001' composite_recording: $ref: '#/components/schemas/CompositeRecordingResponse' x-stream-index: '005' frame_recording: $ref: '#/components/schemas/FrameRecordingResponse' x-stream-index: '004' hls: $ref: '#/components/schemas/EgressHLSResponse' x-stream-index: '002' individual_recording: $ref: '#/components/schemas/IndividualRecordingResponse' x-stream-index: '006' raw_recording: $ref: '#/components/schemas/RawRecordingResponse' x-stream-index: '007' rtmps: items: $ref: '#/components/schemas/EgressRTMPResponse' type: array x-stream-index: '003' required: - broadcasting - rtmps type: object UpsertModerationRuleRequest: nullable: true properties: action: $ref: '#/components/schemas/RuleBuilderAction' description: Action for user/content rules title: Action x-stream-index: '010' action_sequences: description: Escalation sequences for call rules items: $ref: '#/components/schemas/CallRuleActionSequence' title: Action Sequences type: array x-stream-index: '011' conditions: description: Flat list of conditions (legacy) items: $ref: '#/components/schemas/RuleBuilderCondition' title: Conditions type: array x-stream-index: '007' config_keys: description: List of config keys this rule applies to items: type: string title: Config Keys type: array x-stream-index: '004' cooldown_period: description: Duration before rule can trigger again (e.g. 24h, 7d) title: Cooldown Period type: string x-stream-index: '012' description: description: Optional description of the rule title: Description type: string x-stream-index: '003' enabled: description: Whether the rule is active title: Enabled type: boolean x-stream-index: '013' groups: description: Nested condition groups items: $ref: '#/components/schemas/RuleBuilderConditionGroup' title: Groups type: array x-stream-index: 009 logic: description: 'Logical operator between conditions/groups: AND or OR' title: Logic type: string x-stream-index: 008 name: description: Unique rule name title: Name type: string x-stream-index: '001' rule_type: description: 'Type of rule: user, content, or call' title: Rule Type type: string x-stream-index: '006' team: description: Team scope for the rule title: Team type: string x-stream-index: '005' user: $ref: '#/components/schemas/UserRequest' x-stream-index: '002.002' user_id: description: Optional user ID to associate with the audit log entry title: User ID type: string x-stream-index: '002.001' required: - name - rule_type type: object TaskResponse: properties: assigned_to: description: The person that this task is assigned to title: Assigned To type: string x-stream-index: 009 content_type: description: Type of payload for this task title: Content Type type: string x-stream-index: '003' created_at: description: Date/time of creation format: date-time title: Created at type: string x-stream-index: '012' evaluations: description: a list of harm engines / models to be evaluated items: $ref: '#/components/schemas/EvaluationResponse' title: Evaluations type: array x-stream-index: '006' extra: additionalProperties: {} description: Extra data that needs to be stored for this task title: Extra type: object x-stream-index: '005' id: description: 'Task ID ' title: ID type: string x-stream-index: '001' reviewed_at: description: The time when the review happened format: date-time title: Reviewed At type: string x-stream-index: '010' reviewed_by: description: The person who did the review title: Reviewed By type: string x-stream-index: '011' rule: $ref: '#/components/schemas/RuleResponse' title: Rule x-stream-index: '007' status: description: Status of the task. Sync tasks can be completed or error, async tasks can be in pending state title: Status type: string x-stream-index: '002' triggers: description: A list of harm engines / models to be evaluated items: $ref: '#/components/schemas/TriggerResponse' title: Triggers type: array x-stream-index: 008 updated_at: format: date-time type: string x-stream-index: '013' required: - id - status - content_type - payload - evaluations - created_at - updated_at title: TaskResponse type: object KeyframeRuleParameters: properties: harm_labels: items: type: string type: array x-stream-index: '001' min_confidence: format: float type: number x-stream-index: '003' threshold: format: int32 type: integer x-stream-index: '002' type: object FeedsActivityLocation: properties: lat: format: float type: number x-stream-index: '001' lng: format: float type: number x-stream-index: '002' required: - lat - lng type: object FeedsPreferencesResponse: properties: comment: type: string x-stream-index: '002' comment_mention: type: string x-stream-index: '006' comment_reaction: type: string x-stream-index: '004' comment_reply: type: string x-stream-index: '005' custom_activity_types: additionalProperties: type: string type: object x-stream-index: 008 follow: type: string x-stream-index: '001' mention: type: string x-stream-index: '007' reaction: type: string x-stream-index: '003' type: object GeofenceSettingsResponse: properties: names: items: type: string type: array x-stream-index: '001' required: - names type: object PollOptionResponseData: nullable: true properties: custom: additionalProperties: {} type: object x-stream-index: '003' id: type: string x-stream-index: '001' text: type: string x-stream-index: '002' required: - id - text - custom type: object UserMuteResponse: nullable: true properties: created_at: format: date-time type: number x-stream-index: '004' expires: format: date-time type: number x-stream-index: '003' target: $ref: '#/components/schemas/UserResponse' x-stream-index: '002' updated_at: format: date-time type: number x-stream-index: '005' user: $ref: '#/components/schemas/UserResponse' x-stream-index: '001' required: - created_at - updated_at type: object UnmuteRequest: nullable: true properties: target_ids: description: User IDs to unmute items: type: string title: Target IDs type: array x-stream-index: '001' user: $ref: '#/components/schemas/UserRequest' x-stream-index: '002.002' user_id: type: string x-stream-index: '002.001' required: - target_ids title: UnmuteRequest type: object InsertActionLogRequest: description: Request to insert a moderation action log entry nullable: true properties: action_type: description: Type of moderation action taken title: Action Type type: string x-stream-index: '004' custom: additionalProperties: {} description: Custom metadata for the action log title: Custom type: object x-stream-index: '005' entity_creator_id: description: ID of the user who created the entity title: Entity Creator ID type: string x-stream-index: '003' entity_id: description: ID of the entity the action was taken on title: Entity ID type: string x-stream-index: '002' entity_type: description: Type of entity the action was taken on title: Entity Type type: string x-stream-index: '001' reason: description: Reason for the action title: Reason type: string x-stream-index: '006' reporter_type: description: Type of reporter; 'api_integration' when the action was triggered by an API integration call with no authenticated user title: Reporter Type type: string x-stream-index: 008 reporter_user_id: description: ID of the user who triggered the action; empty for automated actions title: Reporter User ID type: string x-stream-index: '007' required: - entity_type - entity_id - entity_creator_id - action_type title: Insert Action Log Request type: object QueryModerationRulesResponse: nullable: true properties: ai_image_label_definitions: description: AI image label definitions with metadata for dashboard rendering items: $ref: '#/components/schemas/AIImageLabelDefinition' title: AIImageLabelDefinitions type: array x-stream-index: '006' ai_image_subclassifications: additionalProperties: items: type: string type: array description: Stream L1 to leaf-level label name mapping for AI image rules title: AIImageSubclassifications type: object x-stream-index: '007' closed_caption_labels: description: Available harm labels for closed caption rules items: type: string title: ClosedCaptionLabels type: array x-stream-index: '005' default_llm_labels: additionalProperties: type: string description: Default LLM label descriptions title: DefaultLLMLabels type: object x-stream-index: '002' duration: type: string x-stream-index: '009.001' keyframe_label_classifications: additionalProperties: items: type: string type: array description: L1 to L2 mapping of keyframe harm label classifications title: KeyframeLabelClassifications type: object x-stream-index: '004' keyframe_labels: description: 'Deprecated: use keyframe_label_classifications instead. Available L1 harm labels for keyframe rules' items: type: string title: KeyframeLabels type: array x-stream-index: '003' next: type: string x-stream-index: '008.001' prev: type: string x-stream-index: '008.002' rules: description: List of moderation rules items: $ref: '#/components/schemas/ModerationRuleV2Response' title: Rules type: array x-stream-index: '001' required: - rules - default_llm_labels - keyframe_labels - keyframe_label_classifications - closed_caption_labels - ai_image_label_definitions - ai_image_subclassifications - duration type: object GetTaskResponse: nullable: true properties: duration: type: string x-stream-index: '002.001' task: $ref: '#/components/schemas/TaskResponse' title: Task x-stream-index: '001' required: - task - duration title: GetTaskResponse type: object LimitsSettingsResponse: properties: max_duration_seconds: format: int32 type: integer x-stream-index: '004' max_participants: format: int32 type: integer x-stream-index: '001' max_participants_exclude_owner: type: boolean x-stream-index: '003' max_participants_exclude_roles: items: type: string type: array x-stream-index: '002' required: - max_participants_exclude_roles type: object ChannelMemberResponse: nullable: true properties: archived_at: format: date-time type: number x-stream-index: '016' ban_expires: description: Expiration date of the ban format: date-time title: Ban expires type: number x-stream-index: '013' banned: description: Whether member is banned this channel or not title: Banned type: boolean x-stream-index: '012' channel_role: description: Role of the member in the channel title: Channel Role type: string x-stream-index: 018 created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: 009 custom: additionalProperties: {} type: object x-stream-index: '004' deleted_at: format: date-time type: number x-stream-index: '011' deleted_messages: items: type: string type: array x-stream-index: '020' invite_accepted_at: description: Date when invite was accepted format: date-time title: Invited accepted at type: number x-stream-index: '006' invite_rejected_at: description: Date when invite was rejected format: date-time title: Invited rejected at type: number x-stream-index: '007' invited: description: Whether member was invited or not title: Invited type: boolean x-stream-index: '005' is_moderator: description: Whether member is channel moderator or not title: Is moderator type: boolean x-stream-index: '003' notifications_muted: type: boolean x-stream-index: 019 pinned_at: format: date-time type: number x-stream-index: '015' role: description: 'Permission level of the member in the channel (DEPRECATED: use channel_role instead). One of: member, moderator, admin, owner' title: Role type: string x-stream-index: '017' shadow_banned: description: Whether member is shadow banned in this channel or not title: Shadow banned type: boolean x-stream-index: '014' status: type: string x-stream-index: 008 updated_at: description: Date/time of the last update format: date-time title: Updated at type: number x-stream-index: '010' user: $ref: '#/components/schemas/UserResponse' x-stream-index: '002' user_id: title: User ID type: string x-stream-index: '001' required: - custom - created_at - updated_at - banned - shadow_banned - channel_role - notifications_muted title: Channel member type: object ModerationActionConfigResponse: description: Configuration for a moderation action nullable: true properties: action: description: The action to take title: Action type: string x-stream-index: '004' custom: additionalProperties: {} description: Custom data for the action title: Custom type: object x-stream-index: '007' description: description: Description of what this action does title: Description type: string x-stream-index: '006' entity_type: description: Type of entity this action applies to title: Entity Type type: string x-stream-index: '002' icon: description: Icon for the dashboard title: Icon type: string x-stream-index: '005' id: type: string x-stream-index: '001' order: description: Display order (lower numbers shown first) format: int32 title: Order type: integer x-stream-index: '003' queue_type: description: Queue type this action config belongs to title: QueueType type: string x-stream-index: 008 required: - entity_type - order - action - icon - description title: ModerationActionConfig type: object UpsertActionConfigRequest: nullable: true properties: action: description: The action to perform (e.g. ban, delete_message, custom) maxLength: 255 title: Action type: string x-stream-index: '001.004' custom: additionalProperties: {} description: Action-specific parameters passed to the action handler title: Custom type: object x-stream-index: '001.007' description: description: Human-readable label for the dashboard button maxLength: 1024 title: Description type: string x-stream-index: '001.006' entity_type: description: Type of entity this action applies to (e.g. stream:chat:v1:message) maxLength: 255 title: Entity Type type: string x-stream-index: '001.002' icon: description: Icon identifier for the dashboard button maxLength: 255 title: Icon type: string x-stream-index: '001.005' id: description: UUID of an existing action config to update; omit to create a new record title: ID type: string x-stream-index: '001.001' order: description: Display order in the dashboard (0–100, lower numbers shown first) format: int32 maximum: 100 minimum: 0 title: Order type: integer x-stream-index: '001.003' queue_type: description: Queue this config belongs to; null means the default queue maxLength: 255 title: Queue Type type: string x-stream-index: '001.008' user: $ref: '#/components/schemas/UserRequest' x-stream-index: '002.002' user_id: description: Optional user ID to associate with the audit log entry title: User ID type: string x-stream-index: '002.001' required: - entity_type - order - action type: object Thresholds: description: Sets thresholds for AI moderation properties: explicit: $ref: '#/components/schemas/LabelThresholds' description: Thresholds for explicit messages title: LabelThresholds x-stream-index: '001' spam: $ref: '#/components/schemas/LabelThresholds' description: Thresholds for spam title: LabelThresholds x-stream-index: '002' toxic: $ref: '#/components/schemas/LabelThresholds' description: Thresholds for toxic messages title: LabelThresholds x-stream-index: '003' title: Auto moderation thresholds type: object ChannelMessageCountRuleParameters: properties: operator: type: string x-stream-index: '002' threshold: format: int32 type: integer x-stream-index: '001' type: object FrameRecordingResponse: properties: status: type: string x-stream-index: '001' required: - status type: object OwnUserResponse: properties: avg_response_time: format: int32 type: integer x-stream-index: '001.018' banned: type: boolean x-stream-index: '001.012' blocked_user_ids: items: type: string type: array x-stream-index: '016' channel_mutes: items: $ref: '#/components/schemas/ChannelMute' type: array x-stream-index: '007' created_at: format: date-time type: number x-stream-index: '001.009' custom: additionalProperties: {} type: object x-stream-index: '001.004' deactivated_at: format: date-time type: number x-stream-index: '001.016' deleted_at: format: date-time type: number x-stream-index: '001.011' devices: items: $ref: '#/components/schemas/DeviceResponse' title: Devices type: array x-stream-index: '004' id: type: string x-stream-index: '001.001' image: type: string x-stream-index: '001.003' invisible: type: boolean x-stream-index: '005' language: type: string x-stream-index: '001.005' last_active: format: date-time type: number x-stream-index: '001.014' latest_hidden_channels: items: type: string type: array x-stream-index: '013' mutes: items: $ref: '#/components/schemas/UserMuteResponse' type: array x-stream-index: '006' name: type: string x-stream-index: '001.002' online: type: boolean x-stream-index: '001.013' privacy_settings: $ref: '#/components/schemas/PrivacySettingsResponse' x-stream-index: '003' push_preferences: $ref: '#/components/schemas/PushPreferencesResponse' x-stream-index: '002' revoke_tokens_issued_before: format: date-time type: number x-stream-index: '001.015' role: type: string x-stream-index: '001.006' teams: items: type: string type: array x-stream-index: '001.007' teams_role: additionalProperties: type: string type: object x-stream-index: '001.008' total_unread_count: format: int32 type: integer x-stream-index: 009 total_unread_count_by_team: additionalProperties: format: int32 type: integer type: object x-stream-index: '010' unread_channels: format: int32 type: integer x-stream-index: '011' unread_count: format: int32 type: integer x-stream-index: 008 unread_threads: format: int32 type: integer x-stream-index: '012' updated_at: format: date-time type: number x-stream-index: '001.010' required: - id - custom - language - role - teams - created_at - updated_at - banned - online - devices - invisible - mutes - channel_mutes - unread_count - total_unread_count - unread_channels - unread_threads type: object UserRoleParameters: properties: operator: type: string x-stream-index: '001' role: type: string x-stream-index: '002' type: object BackstageSettingsResponse: properties: enabled: type: boolean x-stream-index: '001' join_ahead_time_seconds: format: int32 type: integer x-stream-index: '002' required: - enabled type: object OCRRule: properties: action: enum: - flag - shadow - remove - bounce - bounce_flag - bounce_remove type: string x-stream-index: '002' label: type: string x-stream-index: '001' required: - label - action type: object BulkUpsertActionConfigRequest: nullable: true properties: action_configs: description: List of action configs to create or update items: $ref: '#/components/schemas/UpsertActionConfigItem' minItems: 1 title: Action Configs type: array x-stream-index: '001' user: $ref: '#/components/schemas/UserRequest' x-stream-index: '002.002' user_id: type: string x-stream-index: '002.001' required: - action_configs type: object SubmitActionResponse: nullable: true properties: appeal_item: $ref: '#/components/schemas/AppealItemResponse' description: Updated Appeal item after action was performed title: Appeal Item x-stream-index: '002' duration: type: string x-stream-index: '003.001' item: $ref: '#/components/schemas/ReviewQueueItemResponse' description: Updated review queue item after action was performed title: Item x-stream-index: '001' required: - duration type: object CallRuleActionSequence: properties: actions: items: type: string type: array x-stream-index: '002' call_options: $ref: '#/components/schemas/CallActionOptions' x-stream-index: '003' violation_number: format: int32 type: integer x-stream-index: '001' type: object EnrichedReaction: nullable: true properties: activity_id: type: string x-stream-index: '003' children_counts: additionalProperties: format: int32 type: integer type: object x-stream-index: '010' created_at: $ref: '#/components/schemas/Time' x-stream-index: '012' data: additionalProperties: {} type: object x-stream-index: '005' id: type: string x-stream-index: '001' kind: type: string x-stream-index: '002' latest_children: additionalProperties: items: $ref: '#/components/schemas/EnrichedReaction' type: array type: object x-stream-index: 008 own_children: additionalProperties: items: $ref: '#/components/schemas/EnrichedReaction' type: array type: object x-stream-index: 009 parent: type: string x-stream-index: '007' target_feeds: items: type: string type: array x-stream-index: '006' updated_at: $ref: '#/components/schemas/Time' x-stream-index: '013' user: $ref: '#/components/schemas/Data' x-stream-index: '011' user_id: type: string x-stream-index: '004' required: - kind - activity_id - user_id type: object IngressVideoLayerResponse: nullable: true properties: bitrate: type: integer x-stream-index: '002' codec: type: string x-stream-index: '001' frame_rate_limit: type: integer x-stream-index: '005' max_dimension: type: integer x-stream-index: '004' min_dimension: type: integer x-stream-index: '003' required: - codec - bitrate - min_dimension - max_dimension - frame_rate_limit type: object ImageRuleParameters: properties: harm_labels: items: type: string type: array x-stream-index: '003' min_confidence: format: float type: number x-stream-index: '004' threshold: format: int32 type: integer x-stream-index: '001' time_window: type: string x-stream-index: '002' type: object WHIPIngress: properties: address: description: URL for a new whip input, every time a new link is created title: Address type: string x-stream-index: '001' required: - address title: WHIPIngress type: object MatchPayload: nullable: true properties: text: description: Matched text title: Text type: string x-stream-index: '002' type: description: Match type title: Type type: string x-stream-index: '001' title: MatchPayload type: object FeedsNotificationTarget: properties: attachments: items: $ref: '#/components/schemas/Attachment' type: array x-stream-index: '005' comment: $ref: '#/components/schemas/FeedsNotificationComment' x-stream-index: '007' custom: additionalProperties: {} type: object x-stream-index: 009 id: type: string x-stream-index: '001' name: type: string x-stream-index: '006' parent_activity: $ref: '#/components/schemas/FeedsNotificationParentActivity' x-stream-index: 008 text: type: string x-stream-index: '004' type: type: string x-stream-index: '003' user_id: type: string x-stream-index: '002' required: - id type: object IngressAudioEncodingResponse: properties: bitrate: format: int32 type: integer x-stream-index: '003' channels: format: int32 type: integer x-stream-index: '001' enable_dtx: type: boolean x-stream-index: '002' required: - channels - enable_dtx - bitrate type: object Action: nullable: true properties: name: type: string x-stream-index: '001' style: type: string x-stream-index: '003' text: type: string x-stream-index: '002' type: type: string x-stream-index: '004' value: type: string x-stream-index: '005' required: - name - text - type type: object FeedsNotificationTrigger: properties: comment: $ref: '#/components/schemas/FeedsNotificationComment' x-stream-index: '003' custom: additionalProperties: {} type: object x-stream-index: '004' text: type: string x-stream-index: '002' type: type: string x-stream-index: '001' required: - type - text type: object ModerationRuleV2Response: properties: action: $ref: '#/components/schemas/RuleBuilderAction' x-stream-index: '010' action_sequences: items: $ref: '#/components/schemas/CallRuleActionSequence' type: array x-stream-index: '011' conditions: items: $ref: '#/components/schemas/RuleBuilderCondition' type: array x-stream-index: '007' config_keys: items: type: string type: array x-stream-index: '004' cooldown_period: type: string x-stream-index: '012' created_at: format: date-time type: number x-stream-index: '014' description: type: string x-stream-index: '003' enabled: type: boolean x-stream-index: '013' groups: items: $ref: '#/components/schemas/RuleBuilderConditionGroup' type: array x-stream-index: 009 id: type: string x-stream-index: '001' logic: type: string x-stream-index: 008 name: type: string x-stream-index: '002' rule_type: type: string x-stream-index: '006' team: type: string x-stream-index: '005' updated_at: format: date-time type: number x-stream-index: '015' required: - id - name - description - config_keys - team - rule_type - enabled - created_at - updated_at type: object FlagUserOptions: properties: reason: type: string x-stream-index: '001' type: object CallTypeRuleParameters: properties: call_type: type: string x-stream-index: '001' type: object VideoRuleParameters: properties: harm_labels: items: type: string type: array x-stream-index: '003' threshold: format: int32 type: integer x-stream-index: '001' time_window: type: string x-stream-index: '002' type: object ModerationV2Response: properties: action: type: string x-stream-index: '001' blocklist_matched: type: string x-stream-index: '005' blocklists_matched: items: type: string type: array x-stream-index: '006' image_harms: items: type: string type: array x-stream-index: '004' original_text: type: string x-stream-index: '002' platform_circumvented: type: boolean x-stream-index: 008 semantic_filter_matched: type: string x-stream-index: '007' text_harms: items: type: string type: array x-stream-index: '003' required: - action - original_text type: object RuleBuilderConditionGroup: properties: conditions: items: $ref: '#/components/schemas/RuleBuilderCondition' type: array x-stream-index: '002' logic: type: string x-stream-index: '001' type: object SubmitActionRequest: nullable: true properties: action_type: description: 'Type of moderation action to perform. One of: mark_reviewed, delete_message, delete_activity, delete_comment, delete_reaction, ban, custom, unban, restore, delete_user, unblock, block, shadow_block, unmask, kick_user, end_call, escalate, de_escalate' enum: - flag - mark_reviewed - delete_message - delete_activity - delete_comment - delete_reaction - ban - custom - unban - restore - delete_user - unblock - block - shadow_block - unmask - kick_user - end_call - reject_appeal - escalate - de_escalate - bypass title: Action Type type: string x-stream-index: '002' appeal_id: description: UUID of the appeal to act on (required for reject_appeal, optional for other actions) title: Appeal ID type: string x-stream-index: '003' ban: $ref: '#/components/schemas/BanActionRequestPayload' description: Configuration for ban action title: Ban x-stream-index: '010' block: $ref: '#/components/schemas/BlockActionRequestPayload' description: Configuration for block action title: Block x-stream-index: '015' bypass: $ref: '#/components/schemas/BypassActionRequest' description: Configuration for bypass moderation action title: Bypass x-stream-index: 019 custom: $ref: '#/components/schemas/CustomActionRequestPayload' description: Configuration for custom action title: Custom x-stream-index: '011' delete_activity: $ref: '#/components/schemas/DeleteActivityRequestPayload' description: Configuration for activity deletion action title: Delete Activity x-stream-index: '005' delete_comment: $ref: '#/components/schemas/DeleteCommentRequestPayload' description: Configuration for comment deletion action title: Delete Comment x-stream-index: '006' delete_message: $ref: '#/components/schemas/DeleteMessageRequestPayload' description: Configuration for message deletion action title: Delete Message x-stream-index: '004' delete_reaction: $ref: '#/components/schemas/DeleteReactionRequestPayload' description: Configuration for reaction deletion action title: Delete Reaction x-stream-index: '007' delete_user: $ref: '#/components/schemas/DeleteUserRequestPayload' description: Configuration for user deletion action title: Delete User x-stream-index: 008 escalate: $ref: '#/components/schemas/EscalatePayload' description: Configuration for escalation action title: Escalate x-stream-index: '022' flag: $ref: '#/components/schemas/FlagRequest' description: Configuration for flag action title: Flag x-stream-index: '021' item_id: description: UUID of the review queue item to act on title: Item ID type: string x-stream-index: '001' mark_reviewed: $ref: '#/components/schemas/MarkReviewedRequestPayload' description: Configuration for marking item as reviewed title: Mark Reviewed x-stream-index: 009 reject_appeal: $ref: '#/components/schemas/RejectAppealRequestPayload' description: Configuration for rejecting an appeal title: Reject Appeal x-stream-index: '020' restore: $ref: '#/components/schemas/RestoreActionRequestPayload' description: Configuration for restore action title: Restore x-stream-index: '013' shadow_block: $ref: '#/components/schemas/ShadowBlockActionRequestPayload' description: Configuration for shadow block action title: Shadow Block x-stream-index: '016' unban: $ref: '#/components/schemas/UnbanActionRequestPayload' description: Configuration for unban action title: Unban x-stream-index: '012' unblock: $ref: '#/components/schemas/UnblockActionRequestPayload' description: Configuration for unblock action title: Unblock x-stream-index: '014' user: $ref: '#/components/schemas/UserRequest' x-stream-index: '023.002' user_id: type: string x-stream-index: '023.001' required: - action_type type: object LLMRule: properties: action: enum: - flag - shadow - remove - bounce - bounce_flag - bounce_remove - keep type: string x-stream-index: '003' description: type: string x-stream-index: '002' label: type: string x-stream-index: '001' severity_rules: items: $ref: '#/components/schemas/BodyguardSeverityRule' type: array x-stream-index: '004' required: - label - description type: object Time: type: object FrameRecordingSettingsResponse: properties: capture_interval_in_seconds: format: int32 maximum: 60 minimum: 2 type: integer x-stream-index: '003' mode: enum: - available - disabled - auto-on type: string x-stream-index: '001' quality: type: string x-stream-index: '002' required: - mode - capture_interval_in_seconds type: object PushPreferencesResponse: nullable: true properties: call_level: type: string x-stream-index: '003' chat_level: type: string x-stream-index: '001' chat_preferences: $ref: '#/components/schemas/ChatPreferencesResponse' x-stream-index: '002' disabled_until: format: date-time type: number x-stream-index: '006' feeds_level: type: string x-stream-index: '004' feeds_preferences: $ref: '#/components/schemas/FeedsPreferencesResponse' x-stream-index: '005' type: object BulkImageModerationResponse: nullable: true properties: duration: type: string x-stream-index: '002.001' task_id: description: ID of the task for processing the bulk image moderation title: string type: string x-stream-index: '001' required: - task_id - duration type: object IndividualRecordingSettingsResponse: properties: mode: enum: - available - disabled - auto-on type: string x-stream-index: '001' output_types: items: type: string type: array x-stream-index: '002' required: - mode type: object EgressRTMPResponse: properties: name: type: string x-stream-index: '001' started_at: format: date-time type: number x-stream-index: '004' stream_key: type: string x-stream-index: '003' stream_url: type: string x-stream-index: '002' required: - name - started_at type: object RestoreActionRequestPayload: description: Configuration for restore action properties: decision_reason: description: Reason for the appeal decision title: Decision Reason type: string x-stream-index: '001' title: RestoreActionRequest type: object ChatDraftPayloadResponse: properties: attachments: items: $ref: '#/components/schemas/Attachment' type: array x-stream-index: '004' custom: additionalProperties: {} type: object x-stream-index: '007' html: type: string x-stream-index: '010' id: type: string x-stream-index: '001' mentioned_users: items: $ref: '#/components/schemas/UserResponse' type: array x-stream-index: 008 mml: type: string x-stream-index: '003' parent_id: type: string x-stream-index: '005' poll_id: type: string x-stream-index: '013' quoted_message_id: type: string x-stream-index: 009 show_in_channel: type: boolean x-stream-index: '006' silent: type: boolean x-stream-index: '012' text: type: string x-stream-index: '002' type: type: string x-stream-index: '011' required: - id - text - custom type: object FeedsNotificationContext: properties: target: $ref: '#/components/schemas/FeedsNotificationTarget' x-stream-index: '002' trigger: $ref: '#/components/schemas/FeedsNotificationTrigger' x-stream-index: '001' type: object BanRequest: nullable: true properties: banned_by: $ref: '#/components/schemas/UserRequest' description: Details about the user performing the ban title: Banned By x-stream-index: 008 banned_by_id: description: ID of the user performing the ban title: Banned By ID type: string x-stream-index: '007' channel_cid: description: Channel where the ban applies title: Channel CID type: string x-stream-index: '004' delete_messages: enum: - soft - pruning - hard type: string x-stream-index: 009 ip_ban: description: Whether to ban the user's IP address title: IP Ban type: boolean x-stream-index: '006' reason: description: Optional explanation for the ban title: Reason type: string x-stream-index: '003' shadow: description: Whether this is a shadow ban title: Shadow type: boolean x-stream-index: '005' target_user_id: description: ID of the user to ban title: Target User ID type: string x-stream-index: '001' timeout: description: Duration of the ban in minutes minimum: 0 title: Timeout type: integer x-stream-index: '002' required: - target_user_id type: object AITextConfig: properties: async: type: boolean x-stream-index: '001' enabled: type: boolean x-stream-index: '002' profile: type: string x-stream-index: '003' rules: items: $ref: '#/components/schemas/BodyguardRule' type: array x-stream-index: '004' severity_rules: items: $ref: '#/components/schemas/BodyguardSeverityRule' type: array x-stream-index: '005' type: object GetConfigResponse: nullable: true properties: config: $ref: '#/components/schemas/ConfigResponse' description: The retrieved moderation configuration title: Config x-stream-index: '001' duration: type: string x-stream-index: '002.001' required: - duration type: object UserResponse: description: User response object properties: avg_response_time: format: int32 type: integer x-stream-index: '001.018' ban_expires: description: Date when ban expires format: date-time title: Ban expires type: number x-stream-index: '004' banned: description: Whether a user is banned or not title: Banned type: boolean x-stream-index: '001.012' blocked_user_ids: items: type: string type: array x-stream-index: '001.017' bypass_moderation: type: boolean x-stream-index: '003' created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: '001.009' custom: additionalProperties: {} description: Custom data for this object title: Custom data type: object x-stream-index: '001.004' deactivated_at: description: Date of deactivation format: date-time title: Deactivated at type: number x-stream-index: '001.016' deleted_at: description: Date/time of deletion format: date-time title: Deleted at type: number x-stream-index: '001.011' devices: description: List of devices user is using items: $ref: '#/components/schemas/DeviceResponse' title: Devices type: array x-stream-index: '007' id: description: Unique user identifier title: ID type: string x-stream-index: '001.001' image: title: Image type: string x-stream-index: '001.003' invisible: type: boolean x-stream-index: 008 language: description: Preferred language of a user title: Language type: string x-stream-index: '001.005' last_active: description: Date of last activity format: date-time title: Last active type: number x-stream-index: '001.014' name: description: Optional name of user title: Name type: string x-stream-index: '001.002' online: description: Whether a user online or not title: Online type: boolean x-stream-index: '001.013' privacy_settings: $ref: '#/components/schemas/PrivacySettingsResponse' description: User privacy settings title: Privacy settings x-stream-index: '006' push_notifications: $ref: '#/components/schemas/PushNotificationSettingsResponse' description: User push notification settings title: Push notifications x-stream-index: '005' revoke_tokens_issued_before: description: Revocation date for tokens format: date-time title: Revoke tokens issued before type: number x-stream-index: '001.015' role: description: Determines the set of user permissions title: Role type: string x-stream-index: '001.006' shadow_banned: description: Whether a user is shadow banned title: Shadow banned type: boolean x-stream-index: '002' teams: description: List of teams user is a part of items: type: string title: Teams type: array x-stream-index: '001.007' teams_role: additionalProperties: type: string type: object x-stream-index: '001.008' updated_at: description: Date/time of the last update format: date-time title: Updated at type: number x-stream-index: '001.010' required: - id - custom - language - role - teams - created_at - updated_at - banned - online - blocked_user_ids - shadow_banned - invisible title: UserResponse type: object ChatPreferencesResponse: properties: channel_mentions: type: string x-stream-index: '007' default_preference: type: string x-stream-index: '001' direct_mentions: type: string x-stream-index: '002' group_mentions: type: string x-stream-index: '004' here_mentions: type: string x-stream-index: '006' role_mentions: type: string x-stream-index: '003' thread_replies: type: string x-stream-index: '005' type: object DeviceResponse: description: Response for Device nullable: true properties: created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: '004' disabled: description: Whether device is disabled or not title: Disabled type: boolean x-stream-index: '005' disabled_reason: description: Reason explaining why device had been disabled title: Reason type: string x-stream-index: '006' id: description: Device ID title: ID type: string x-stream-index: '003' push_provider: description: Push provider title: PushProvider type: string x-stream-index: '001' push_provider_name: description: Push provider name title: PushProviderName type: string x-stream-index: '002' user_id: description: User ID title: UserID type: string x-stream-index: 008 voip: description: When true the token is for Apple VoIP push notifications title: Voip type: boolean x-stream-index: '007' required: - push_provider - id - created_at - user_id title: DeviceResponse type: object PrivacySettingsResponse: properties: delivery_receipts: $ref: '#/components/schemas/DeliveryReceiptsResponse' x-stream-index: '003' read_receipts: $ref: '#/components/schemas/ReadReceiptsResponse' x-stream-index: '002' typing_indicators: $ref: '#/components/schemas/TypingIndicatorsResponse' x-stream-index: '001' type: object TriggeredRuleResponse: properties: actions: description: Action types resolved from the rule's action sequence items: type: string title: Actions type: array x-stream-index: '001' call_options: $ref: '#/components/schemas/CallActionOptions' description: Options for call actions (mute settings, warning text, kick reason) title: Call Options x-stream-index: '002' rule_id: description: ID of the moderation rule that triggered title: Rule ID type: string x-stream-index: '003' rule_name: description: Name of the moderation rule that triggered title: Rule Name type: string x-stream-index: '004' violation_number: description: Violation count for action sequence rules (1-based) format: int32 title: Violation Number type: integer x-stream-index: '005' required: - actions - rule_id type: object UpsertActionConfigResponse: nullable: true properties: action_config: $ref: '#/components/schemas/ModerationActionConfigResponse' description: The created or updated action config title: Action Config x-stream-index: '001' duration: type: string x-stream-index: '002.001' required: - duration type: object BanOptions: properties: delete_messages: enum: - soft - pruning - hard type: string x-stream-index: '005' duration: format: int32 type: integer x-stream-index: '001' ip_ban: type: boolean x-stream-index: '004' reason: type: string x-stream-index: '002' shadow_ban: type: boolean x-stream-index: '003' type: object FeedsModerationTemplateConfigPayload: description: Configuration for a feeds moderation template properties: config_key: description: Key of the moderation configuration to use title: Config Key type: string x-stream-index: '002' data_types: additionalProperties: type: string description: Map of data type names to their content types title: Data Types type: object x-stream-index: '001' required: - data_types title: FeedsModerationTemplateConfig type: object BulkDeleteActionConfigResponse: nullable: true properties: deleted: description: Number of action configs deleted format: int32 title: Deleted type: integer x-stream-index: '001' duration: type: string x-stream-index: '002.001' required: - deleted - duration type: object BanActionRequestPayload: description: Configuration for ban moderation action properties: ban_from_future_channels: description: Also ban user from all channels this moderator creates in the future title: Ban From Future Channels type: boolean x-stream-index: 009 channel_ban_only: description: Ban only from specific channel title: Channel Ban Only type: boolean x-stream-index: '004' channel_cid: type: string x-stream-index: '005' delete_messages: description: 'Message deletion mode: soft, pruning, or hard' enum: - soft - pruning - hard title: Delete Messages type: string x-stream-index: '007' ip_ban: description: Whether to ban by IP address title: IP Ban type: boolean x-stream-index: '006' reason: description: Reason for the ban title: Reason type: string x-stream-index: '003' shadow: description: Whether this is a shadow ban title: Shadow type: boolean x-stream-index: '002' target_user_id: description: 'Optional: ban user directly without review item' title: Target User ID type: string x-stream-index: '001' timeout: description: Duration of ban in minutes format: int32 title: Timeout type: integer x-stream-index: 008 title: BanActionRequest type: object DeleteActionConfigResponse: nullable: true properties: deleted: description: Number of action configs deleted (0 or 1) format: int32 title: Deleted type: integer x-stream-index: '001' duration: type: string x-stream-index: '002.001' required: - deleted - duration type: object DeleteModerationTemplateResponse: nullable: true properties: duration: type: string x-stream-index: '001.001' required: - duration type: object Command: description: Represents custom chat command nullable: true properties: args: description: Arguments help text, shown in commands auto-completion title: Arguments type: string x-stream-index: '006' created_at: description: Date/time of creation format: date-time readOnly: true title: Created at type: number x-stream-index: '001' description: description: Description, shown in commands auto-completion title: Description type: string x-stream-index: '005' name: description: Unique command name title: Name type: string x-stream-index: '004' set: description: Set name used for grouping commands title: Set type: string x-stream-index: '007' updated_at: description: Date/time of the last update format: date-time readOnly: true title: Updated at type: number x-stream-index: '002' required: - name - description - args - set title: Command type: object ChatReactionGroupResponse: nullable: true properties: count: format: int32 type: integer x-stream-index: '001' first_reaction_at: format: date-time type: number x-stream-index: '003' last_reaction_at: format: date-time type: number x-stream-index: '004' latest_reactions_by: items: $ref: '#/components/schemas/ChatReactionGroupUserResponse' type: array x-stream-index: '005' sum_scores: format: int32 type: integer x-stream-index: '002' required: - count - sum_scores - first_reaction_at - last_reaction_at - latest_reactions_by type: object SRTIngress: properties: address: type: string x-stream-index: '001' required: - address type: object LLMConfig: properties: app_context: type: string x-stream-index: '005' async: type: boolean x-stream-index: '001' enabled: type: boolean x-stream-index: '002' rules: items: $ref: '#/components/schemas/LLMRule' type: array x-stream-index: '003' severity_descriptions: additionalProperties: type: string type: object x-stream-index: '004' type: object EgressHLSResponse: properties: playlist_url: type: string x-stream-index: '001' status: type: string x-stream-index: '002' required: - playlist_url - status type: object TriggerPayload: nullable: true properties: options: additionalProperties: {} description: Trigger options title: Options type: object x-stream-index: '002' type: description: Trigger type title: Type type: string x-stream-index: '001' title: TriggerPayload type: object RecordSettingsResponse: description: RecordSettings is the payload for recording settings properties: audio_only: title: Audio Only type: boolean x-stream-index: '001' layout: $ref: '#/components/schemas/LayoutSettingsResponse' title: Layout x-stream-index: '004' mode: title: Mode type: string x-stream-index: '002' quality: title: Quality type: string x-stream-index: '003' required: - audio_only - mode - quality - layout title: RecordSettingsResponse type: object RuleBuilderAction: properties: ban_options: $ref: '#/components/schemas/BanOptions' x-stream-index: '002' call_options: $ref: '#/components/schemas/CallActionOptions' x-stream-index: '004' flag_user_options: $ref: '#/components/schemas/FlagUserOptions' x-stream-index: '003' skip_inbox: type: boolean x-stream-index: '005' type: enum: - ban_user - flag_user - flag_content - block_content - shadow_content - bounce_flag_content - bounce_content - bounce_remove_content - mute_video - mute_audio - blur - call_blur - end_call - kick_user - warning - call_warning - webhook_only type: string x-stream-index: '001' type: object FeedsV3ActivityResponse: properties: attachments: items: $ref: '#/components/schemas/Attachment' type: array x-stream-index: '010' bookmark_count: format: int32 type: integer x-stream-index: '032' collections: additionalProperties: $ref: '#/components/schemas/FeedsEnrichedCollectionResponse' type: object x-stream-index: '040' comment_count: format: int32 type: integer x-stream-index: '031' comments: items: $ref: '#/components/schemas/FeedsV3CommentResponse' type: array x-stream-index: 018 created_at: format: date-time type: number x-stream-index: 008 current_feed: $ref: '#/components/schemas/FeedsFeedResponse' x-stream-index: '043' custom: additionalProperties: {} type: object x-stream-index: '012' deleted_at: format: date-time type: number x-stream-index: '024' edited_at: format: date-time type: number x-stream-index: '023' expires_at: format: date-time type: number x-stream-index: '025' feeds: items: type: string type: array x-stream-index: '004' filter_tags: items: type: string type: array x-stream-index: '027' friend_reaction_count: format: int32 type: integer x-stream-index: '042' friend_reactions: items: $ref: '#/components/schemas/FeedsReactionResponse' type: array x-stream-index: '041' hidden: type: boolean x-stream-index: '044' id: type: string x-stream-index: '001' interest_tags: items: type: string type: array x-stream-index: 028 is_read: type: boolean x-stream-index: 048 is_seen: type: boolean x-stream-index: '047' is_watched: type: boolean x-stream-index: '046' latest_reactions: items: $ref: '#/components/schemas/FeedsReactionResponse' type: array x-stream-index: '036' location: $ref: '#/components/schemas/FeedsActivityLocation' x-stream-index: '020' mentioned_users: items: $ref: '#/components/schemas/UserResponse' type: array x-stream-index: '011' metrics: additionalProperties: format: int64 type: integer type: object x-stream-index: '035' moderation: $ref: '#/components/schemas/ModerationV2Response' x-stream-index: 029 moderation_action: type: string x-stream-index: '030' notification_context: $ref: '#/components/schemas/FeedsNotificationContext' x-stream-index: '013' own_bookmarks: items: $ref: '#/components/schemas/FeedsBookmarkResponse' type: array x-stream-index: 039 own_reactions: items: $ref: '#/components/schemas/FeedsReactionResponse' type: array x-stream-index: 038 parent: $ref: '#/components/schemas/FeedsV3ActivityResponse' x-stream-index: '021' poll: $ref: '#/components/schemas/PollResponseData' x-stream-index: '022' popularity: format: int32 type: integer x-stream-index: '014' preview: type: boolean x-stream-index: '045' reaction_count: format: int32 type: integer x-stream-index: '034' reaction_groups: additionalProperties: $ref: '#/components/schemas/FeedsReactionGroupResponse' type: object x-stream-index: '037' restrict_replies: type: string x-stream-index: '007' score: format: float type: number x-stream-index: '015' score_vars: additionalProperties: {} type: object x-stream-index: '016' search_data: additionalProperties: {} type: object x-stream-index: '026' selector_source: type: string x-stream-index: '017' share_count: format: int32 type: integer x-stream-index: '033' text: type: string x-stream-index: 019 type: type: string x-stream-index: '002' updated_at: format: date-time type: number x-stream-index: 009 user: $ref: '#/components/schemas/UserResponse' x-stream-index: '003' visibility: type: string x-stream-index: '005' visibility_tag: type: string x-stream-index: '006' required: - id - type - user - feeds - visibility - restrict_replies - created_at - updated_at - attachments - mentioned_users - custom - popularity - score - comments - search_data - filter_tags - interest_tags - comment_count - bookmark_count - share_count - reaction_count - latest_reactions - reaction_groups - own_reactions - own_bookmarks - collections - hidden - preview type: object QueryFeedModerationTemplatesResponse: nullable: true properties: duration: type: string x-stream-index: '002.001' templates: description: List of moderation templates items: $ref: '#/components/schemas/QueryFeedModerationTemplate' title: Templates type: array x-stream-index: '001' required: - templates - duration type: object CheckS3AccessResponse: nullable: true properties: duration: type: string x-stream-index: '001.001' message: description: Descriptive message about the check result title: string type: string x-stream-index: '003' success: description: Whether the S3 access check succeeded title: boolean type: boolean x-stream-index: '002' required: - duration - success type: object UserCreatedWithinParameters: properties: max_age: type: string x-stream-index: '001' type: object MatchResponse: properties: text: type: string x-stream-index: '002' type: description: Match type title: Type type: string x-stream-index: '001' required: - type - text title: MatchResponse type: object ModerationConfig: properties: ai_image_config: $ref: '#/components/schemas/AIImageConfig' x-stream-index: '013' ai_image_lite_config: $ref: '#/components/schemas/BodyguardImageAnalysisConfig' x-stream-index: '012' ai_text_config: $ref: '#/components/schemas/AITextConfig' x-stream-index: '011' ai_video_config: $ref: '#/components/schemas/AIVideoConfig' x-stream-index: '014' async: type: boolean x-stream-index: '006' automod_platform_circumvention_config: $ref: '#/components/schemas/AutomodPlatformCircumventionConfig' x-stream-index: 008 automod_semantic_filters_config: $ref: '#/components/schemas/AutomodSemanticFiltersConfig' x-stream-index: 009 automod_toxicity_config: $ref: '#/components/schemas/AutomodToxicityConfig' x-stream-index: '007' block_list_config: $ref: '#/components/schemas/BlockListConfig' x-stream-index: '010' created_at: format: date-time type: number x-stream-index: 018 google_vision_config: $ref: '#/components/schemas/GoogleVisionConfig' x-stream-index: '015' key: type: string x-stream-index: '004' llm_config: $ref: '#/components/schemas/LLMConfig' x-stream-index: '017' supported_video_call_harm_types: items: type: string type: array x-stream-index: '021' team: type: string x-stream-index: '005' updated_at: format: date-time type: number x-stream-index: 019 velocity_filter_config: $ref: '#/components/schemas/VelocityFilterConfig' x-stream-index: '016' video_call_rule_config: $ref: '#/components/schemas/VideoCallRuleConfig' x-stream-index: '020' type: object FlagCountRuleParameters: properties: threshold: format: int32 type: integer x-stream-index: '001' type: object IngressVideoEncodingResponse: properties: layers: items: $ref: '#/components/schemas/IngressVideoLayerResponse' type: array x-stream-index: '002' source: $ref: '#/components/schemas/IngressSourceResponse' x-stream-index: '001' required: - source - layers type: object DeleteReactionRequestPayload: description: Configuration for reaction deletion action properties: entity_id: description: ID of the reaction to delete (alternative to item_id) title: Entity ID type: string x-stream-index: '003' entity_type: description: Type of the entity title: Entity Type type: string x-stream-index: '004' hard_delete: description: Whether to permanently delete the reaction title: Hard Delete type: boolean x-stream-index: '001' reason: description: Reason for deletion title: Reason type: string x-stream-index: '002' title: DeleteReactionRequest type: object TranslationSettings: properties: enabled: type: boolean x-stream-index: '001' languages: items: enum: - en - fr - es - de - it - nl - pt - pl - ca - cs - da - el - fi - id - ja - ru - sv - ta - th - tr - hu - ro - zh - ar - tl - he - hi - hr - ko - ms - 'no' - uk type: string type: array x-stream-index: '002' required: - enabled - languages type: object Field: nullable: true properties: short: type: boolean x-stream-index: '003' title: type: string x-stream-index: '001' value: type: string x-stream-index: '002' required: - title - value - short type: object DeliveryReceiptsResponse: properties: enabled: type: boolean x-stream-index: '001' type: object ModerationPayloadResponse: description: Content payload for moderation properties: custom: additionalProperties: {} description: Custom data for moderation title: Custom type: object x-stream-index: '004' images: description: Image URLs to moderate items: type: string title: Images type: array x-stream-index: '002' texts: description: Text content to moderate items: type: string title: Texts type: array x-stream-index: '001' videos: description: Video URLs to moderate items: type: string title: Videos type: array x-stream-index: '003' title: ModerationPayload type: object CallCustomPropertyParameters: properties: operator: type: string x-stream-index: '002' property_key: type: string x-stream-index: '001' type: object FeedsReactionGroupResponse: properties: count: format: int32 type: integer x-stream-index: '001' first_reaction_at: format: date-time type: number x-stream-index: '002' last_reaction_at: format: date-time type: number x-stream-index: '003' required: - count - first_reaction_at - last_reaction_at type: object CustomCheckResponse: nullable: true properties: duration: type: string x-stream-index: '004.001' id: description: Unique identifier of the custom check title: ID type: string x-stream-index: '001' item: $ref: '#/components/schemas/ReviewQueueItemResponse' description: Review queue item details title: Item x-stream-index: '002' status: description: Status of the custom check title: Status type: string x-stream-index: '003' required: - id - status - duration type: object ChannelResponse: description: Represents channel in chat properties: auto_translation_enabled: description: Whether auto translation is enabled or not title: Auto translation type: boolean x-stream-index: '017' auto_translation_language: description: Language to translate to when auto translation is active title: Auto translation language type: string x-stream-index: 018 blocked: description: Whether this channel is blocked by current user or not title: Blocked type: boolean x-stream-index: '023' cid: description: Channel CID (:) title: CID type: string x-stream-index: '003' config: $ref: '#/components/schemas/ChannelConfigWithInfo' description: Channel configuration title: ChannelConfigWithInfo x-stream-index: '013' cooldown: description: Cooldown period after sending each message format: int32 title: Cooldown type: integer x-stream-index: '020' created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: '005' created_by: $ref: '#/components/schemas/UserResponse' description: Creator of the channel title: UserResponse x-stream-index: 008 custom: additionalProperties: {} description: Custom data for this object title: Custom data type: object x-stream-index: '026' deleted_at: description: Date/time of deletion format: date-time title: Deleted at type: number x-stream-index: '007' disabled: type: boolean x-stream-index: '010' filter_tags: description: List of filter tags associated with the channel items: type: string title: Filter tags type: array x-stream-index: 028 frozen: description: Whether channel is frozen or not title: Frozen type: boolean x-stream-index: 009 hidden: description: Whether this channel is hidden by current user or not title: Hidden type: boolean x-stream-index: '022' hide_messages_before: description: Date since when the message history is accessible format: date-time title: Hide messages before type: number x-stream-index: 019 id: description: Channel unique ID title: ID type: string x-stream-index: '001' last_message_at: description: Date of the last message sent format: date-time title: Last message at type: number x-stream-index: '004' member_count: description: Number of members in the channel format: int32 title: Member count type: integer x-stream-index: '012' members: description: List of channel members (max 100) items: $ref: '#/components/schemas/ChannelMemberResponse' title: Channel members type: array x-stream-index: '011' message_count: description: Number of messages in the channel format: int64 title: Message count type: integer x-stream-index: '027' mute_expires_at: description: Date of mute expiration format: date-time title: Mute expires at type: number x-stream-index: '015' muted: description: Whether this channel is muted or not title: Muted type: boolean x-stream-index: '014' own_capabilities: description: List of channel capabilities of authenticated user items: $ref: '#/components/schemas/ChannelOwnCapability' title: ChannelOwnCapability type: array x-stream-index: '021' team: description: Team the channel belongs to (multi-tenant only) title: Team type: string x-stream-index: '016' truncated_at: description: Date of the latest truncation of the channel format: date-time title: UserResponse type: number x-stream-index: '024' truncated_by: $ref: '#/components/schemas/UserResponse' x-stream-index: '025' type: description: Type of the channel title: Type type: string x-stream-docs-page-id: channel_features x-stream-index: '002' updated_at: description: Date/time of the last update format: date-time title: Updated at type: number x-stream-index: '006' required: - id - type - cid - created_at - updated_at - frozen - disabled - custom title: Channel type: object FlagRequest: nullable: true properties: custom: additionalProperties: {} description: Additional metadata about the flag title: Custom type: object x-stream-index: '006' entity_creator_id: description: ID of the user who created the flagged entity title: Entity Creator ID type: string x-stream-index: '003' entity_id: description: Unique identifier of the entity being flagged title: Entity ID type: string x-stream-index: '002' entity_type: description: Type of entity being flagged (e.g., message, user) title: Entity Type type: string x-stream-index: '001' moderation_payload: $ref: '#/components/schemas/ModerationPayload' description: Content being flagged title: Moderation Payload x-stream-index: '005' reason: description: Optional explanation for why the content is being flagged maxLength: 255 title: Reason type: string x-stream-index: '004' user: $ref: '#/components/schemas/UserRequest' x-stream-index: '007.002' user_id: type: string x-stream-index: '007.001' required: - entity_type - entity_id type: object MarkReviewedRequestPayload: description: Configuration for mark reviewed action properties: content_to_mark_as_reviewed_limit: description: Maximum content items to mark as reviewed format: int32 maximum: 2500 title: Content Limit type: integer x-stream-index: '002' decision_reason: description: Reason for the appeal decision title: Decision Reason type: string x-stream-index: '003' disable_marking_content_as_reviewed: description: Skip marking content as reviewed title: Disable Marking Content type: boolean x-stream-index: '001' title: MarkReviewedRequest type: object IndividualRecordingResponse: properties: status: type: string x-stream-index: '001' required: - status type: object ConfigResponse: properties: ai_image_config: $ref: '#/components/schemas/AIImageConfig' description: Configuration for AI image analysis title: AI Image Config x-stream-index: '010' ai_image_label_definitions: description: Configurable image moderation label definitions for dashboard rendering items: $ref: '#/components/schemas/AIImageLabelDefinition' title: AI Image Label Definitions type: array x-stream-index: 018 ai_image_subclassifications: additionalProperties: items: type: string type: array description: Available L2 subclassifications per L1 image moderation label, based on the active provider title: AI Image Subclassifications type: object x-stream-index: '017' ai_text_config: $ref: '#/components/schemas/AITextConfig' description: Configuration for AI text analysis title: AI Text Config x-stream-index: 008 ai_video_config: $ref: '#/components/schemas/AIVideoConfig' description: Configuration for AI video analysis title: AI Video Config x-stream-index: '011' async: description: Whether moderation should be performed asynchronously title: Async type: boolean x-stream-index: '003' automod_platform_circumvention_config: $ref: '#/components/schemas/AutomodPlatformCircumventionConfig' description: Configuration for platform circumvention detection title: Automod Platform Circumvention Config x-stream-index: '005' automod_semantic_filters_config: $ref: '#/components/schemas/AutomodSemanticFiltersConfig' description: Configuration for semantic filtering title: Automod Semantic Filters Config x-stream-index: '006' automod_toxicity_config: $ref: '#/components/schemas/AutomodToxicityConfig' description: Configuration for toxicity detection title: Automod Toxicity Config x-stream-index: '004' available_bodyguard_profiles: description: Names of Bodyguard credential profiles registered on this app. The dashboard uses this list to render the profile picker on the AI Text section. items: $ref: '#/components/schemas/BodyguardProfileSummary' title: Available Bodyguard Profiles type: array x-stream-index: 019 block_list_config: $ref: '#/components/schemas/BlockListConfig' description: Configuration for block list filtering title: Block List Config x-stream-index: '007' created_at: description: When the configuration was created format: date-time title: Created At type: number x-stream-index: '013' key: description: Unique identifier for the moderation configuration title: Key type: string x-stream-index: '001' llm_config: $ref: '#/components/schemas/LLMConfig' description: Configuration for customer-configured LLM moderation title: LLM Config x-stream-index: 009 supported_video_call_harm_types: items: type: string type: array x-stream-index: '016' team: description: Team associated with the configuration title: Team type: string x-stream-index: '002' updated_at: description: When the configuration was last updated format: date-time title: Updated At type: number x-stream-index: '014' velocity_filter_config: $ref: '#/components/schemas/VelocityFilterConfig' description: Configuration for velocity-based filtering title: Velocity Filter Config x-stream-index: '012' video_call_rule_config: $ref: '#/components/schemas/VideoCallRuleConfig' x-stream-index: '015' required: - key - team - async - created_at - updated_at - supported_video_call_harm_types type: object CallIngressResponse: description: CallIngressResponse is the payload for ingress settings properties: rtmp: $ref: '#/components/schemas/RTMPIngress' title: RTMP x-stream-index: '001' srt: $ref: '#/components/schemas/SRTIngress' x-stream-index: '003' whip: $ref: '#/components/schemas/WHIPIngress' title: WHIP x-stream-index: '002' required: - rtmp - whip - srt title: CallIngressResponse type: object BypassRequest: nullable: true properties: enabled: description: Whether to enable moderation bypass for this user title: Enabled type: boolean x-stream-index: '002' target_user_id: description: ID of the user to update title: Target User ID type: string x-stream-index: '001' required: - target_user_id - enabled type: object ChatReactionResponse: properties: created_at: format: date-time type: number x-stream-index: '006' custom: additionalProperties: {} type: object x-stream-index: 008 message_id: type: string x-stream-index: '001' score: format: int32 type: integer x-stream-index: '005' type: type: string x-stream-index: '004' updated_at: format: date-time type: number x-stream-index: '007' user: $ref: '#/components/schemas/UserResponse' x-stream-index: '003' user_id: type: string x-stream-index: '002' required: - message_id - user_id - user - type - score - created_at - updated_at - custom type: object ListTasksResponse: nullable: true properties: duration: type: string x-stream-index: '002.001' tasks: description: A collection of all tasks items: $ref: '#/components/schemas/TaskResponse' title: Tasks type: array x-stream-index: '001' required: - tasks - duration title: ListTasksResponse type: object QueryFeedModerationTemplate: properties: config: $ref: '#/components/schemas/FeedsModerationTemplateConfigPayload' description: Configuration for the moderation template title: Config x-stream-index: '002' created_at: description: When the template was created format: date-time title: Created At type: number x-stream-index: '003' name: description: Name of the moderation template title: Name type: string x-stream-index: '001' updated_at: description: When the template was last updated format: date-time title: Updated At type: number x-stream-index: '004' required: - name - created_at - updated_at type: object UserCustomPropertyParameters: properties: operator: type: string x-stream-index: '002' property_key: type: string x-stream-index: '001' type: object DeleteMessageRequestPayload: description: Configuration for message deletion action properties: entity_id: description: ID of the message to delete (alternative to item_id) title: Entity ID type: string x-stream-index: '003' entity_type: description: Type of the entity title: Entity Type type: string x-stream-index: '004' hard_delete: description: Whether to permanently delete the message title: Hard Delete type: boolean x-stream-index: '001' reason: description: Reason for deletion title: Reason type: string x-stream-index: '002' title: DeleteMessageRequest type: object ChatDraftResponse: properties: channel_cid: type: string x-stream-index: '002' created_at: format: date-time type: number x-stream-index: '006' message: $ref: '#/components/schemas/ChatDraftPayloadResponse' x-stream-index: '001' parent_id: type: string x-stream-index: '003' parent_message: $ref: '#/components/schemas/ChatMessageResponse' x-stream-index: '004' quoted_message: $ref: '#/components/schemas/ChatMessageResponse' x-stream-index: '005' required: - message - channel_cid - created_at type: object FeedsReactionResponse: properties: activity_id: type: string x-stream-index: '002' comment_id: type: string x-stream-index: '003' created_at: format: date-time type: number x-stream-index: '006' custom: additionalProperties: {} type: object x-stream-index: '005' type: type: string x-stream-index: '004' updated_at: format: date-time type: number x-stream-index: '007' user: $ref: '#/components/schemas/UserResponse' x-stream-index: '001' required: - user - activity_id - type - created_at - updated_at type: object UserIdenticalContentCountParameters: properties: threshold: format: int32 type: integer x-stream-index: '001' time_window: type: string x-stream-index: '002' type: object UnbanRequest: nullable: true properties: unbanned_by: $ref: '#/components/schemas/UserRequest' description: Details about the user performing the unban title: Unbanned By x-stream-index: '005' unbanned_by_id: description: ID of the user performing the unban title: Unbanned By ID type: string x-stream-index: '004' type: object SubmitTaskRequest: nullable: true properties: content_type: description: Type of payload for this task enum: - text title: Content Type type: string x-stream-index: '001' evaluations: description: a list of harm engines / models to be evaluated items: $ref: '#/components/schemas/EvaluationPayload' title: Evaluations type: array x-stream-index: '004' extra: additionalProperties: {} description: Extra data that needs to be stored for this task title: Extra type: object x-stream-index: '003' payload: additionalProperties: {} description: Depending on the content type this can be a string, a url or a complex stream object title: Payload type: object x-stream-index: '002' required: - content_type - payload title: SubmitTaskRequest type: object DeleteUserRequestPayload: description: Configuration for user deletion action properties: delete_conversation_channels: description: Also delete all user conversations title: Delete Conversations type: boolean x-stream-index: '004' delete_feeds_content: description: Delete flagged feeds content title: Delete Feeds Content type: boolean x-stream-index: '005' entity_id: description: ID of the user to delete (alternative to item_id) title: Entity ID type: string x-stream-index: '006' entity_type: description: Type of the entity title: Entity Type type: string x-stream-index: '007' hard_delete: description: Whether to permanently delete the user title: Hard Delete type: boolean x-stream-index: '001' mark_messages_deleted: description: Also delete all user messages title: Mark Messages Deleted type: boolean x-stream-index: '003' reason: description: Reason for deletion title: Reason type: string x-stream-index: '002' title: DeleteUserRequest type: object SubmitTaskResponse: nullable: true properties: duration: type: string x-stream-index: '002.001' task: $ref: '#/components/schemas/TaskResponse' title: Task x-stream-index: '001' required: - task - duration title: SubmitTaskResponse type: object MuteRequest: nullable: true properties: target_ids: description: User IDs to mute (if multiple users) items: type: string title: Target IDs type: array x-stream-index: '001' timeout: description: Duration of mute in minutes minimum: 0 title: Timeout type: integer x-stream-index: '002' user: $ref: '#/components/schemas/UserRequest' x-stream-index: '003.002' user_id: type: string x-stream-index: '003.001' required: - target_ids title: MuteRequest type: object BodyguardProfileSummary: properties: display_name: type: string x-stream-index: '002' name: type: string x-stream-index: '001' text_type: type: string x-stream-index: '003' required: - name type: object SubmitModerationFeedbackRequest: nullable: true properties: channel_id: description: Optional moderation channel UUID for context maxLength: 255 title: Channel ID type: string x-stream-index: '001' current_labels: description: Classifications originally produced by the moderation system items: type: string maxItems: 16 title: Current Classifications type: array x-stream-index: '005' current_recommended_action: description: Action originally produced by the moderation system maxLength: 64 title: Current Action type: string x-stream-index: '006' description: description: Optional free-form note explaining why the classification was wrong maxLength: 4000 title: Description type: string x-stream-index: '007' expected_labels: description: Optional moderator-supplied classifications (up to 16 entries) items: type: string maxItems: 16 title: Expected Classifications type: array x-stream-index: 008 expected_recommended_action: description: Optional moderator-supplied action maxLength: 64 title: Expected Action type: string x-stream-index: 009 message: description: The moderated content the moderator is providing feedback on maxLength: 10000 title: Message type: string x-stream-index: '004' published_at: description: Original publication time of the moderated content (RFC3339) title: Published At type: string x-stream-index: '002' reference: description: Provider-side reference identifying the moderated content maxLength: 512 title: Reference type: string x-stream-index: '003' required: - published_at - reference - message type: object QueryReviewQueueResponse: nullable: true properties: action_config: additionalProperties: items: $ref: '#/components/schemas/ModerationActionConfigResponse' type: array description: Configuration for moderation actions title: Action Config type: object x-stream-index: '002' default_action_config: additionalProperties: items: $ref: '#/components/schemas/ModerationActionConfigResponse' type: array type: object x-stream-index: '003' duration: type: string x-stream-index: '007.001' filter_config: $ref: '#/components/schemas/FilterConfigResponse' description: Configuration for filters in moderation review queue title: Filter Config x-stream-index: '004' items: description: List of review queue items items: $ref: '#/components/schemas/ReviewQueueItemResponse' title: Items type: array x-stream-index: '001' next: type: string x-stream-index: '006.001' prev: type: string x-stream-index: '006.002' stats: additionalProperties: {} description: Statistics about the review queue title: Stats type: object x-stream-index: '005' required: - items - action_config - stats - duration type: object Images: properties: fixed_height: $ref: '#/components/schemas/ImageData' x-stream-index: '002' fixed_height_downsampled: $ref: '#/components/schemas/ImageData' x-stream-index: '004' fixed_height_still: $ref: '#/components/schemas/ImageData' x-stream-index: '003' fixed_width: $ref: '#/components/schemas/ImageData' x-stream-index: '005' fixed_width_downsampled: $ref: '#/components/schemas/ImageData' x-stream-index: '007' fixed_width_still: $ref: '#/components/schemas/ImageData' x-stream-index: '006' original: $ref: '#/components/schemas/ImageData' x-stream-index: '001' required: - original - fixed_height - fixed_height_still - fixed_height_downsampled - fixed_width - fixed_width_still - fixed_width_downsampled type: object UserRequest: description: User request object properties: custom: additionalProperties: {} description: Custom user data title: Custom type: object x-stream-index: '004' id: description: User ID title: ID type: string x-stream-index: '001' image: description: User's profile image URL title: Image type: string x-stream-index: '003' invisible: type: boolean x-stream-index: '006' language: type: string x-stream-index: '005' name: description: Optional name of user title: Name type: string x-stream-index: '002' privacy_settings: $ref: '#/components/schemas/PrivacySettingsResponse' x-stream-index: '007' role: description: User's global role title: Role type: string x-stream-index: 008 teams: description: List of teams the user belongs to items: type: string title: Teams type: array x-stream-index: '010' teams_role: additionalProperties: type: string description: Map of team-specific roles for the user title: TeamsRole type: object x-stream-index: 009 required: - id title: UserRequest type: object SortParamRequest: nullable: true properties: direction: description: 'Direction of sorting, 1 for Ascending, -1 for Descending, default is 1. One of: -1, 1' format: int32 title: Direction type: integer x-stream-index: '003' field: description: Name of field to sort by title: Field type: string x-stream-index: '001' type: description: 'Type of field to sort by. Empty string or omitted means string type (default). One of: number, boolean' title: Type type: string x-stream-index: '002' type: object RingSettingsResponse: properties: auto_cancel_timeout_ms: format: int32 type: integer x-stream-index: '002' incoming_call_timeout_ms: format: int32 type: integer x-stream-index: '001' missed_call_timeout_ms: format: int32 type: integer x-stream-index: '003' required: - incoming_call_timeout_ms - auto_cancel_timeout_ms - missed_call_timeout_ms type: object BanInfoResponse: description: Ban information nullable: true properties: created_at: description: When the ban was created format: date-time title: Created At type: number x-stream-index: '006' created_by: $ref: '#/components/schemas/UserResponse' description: User who created the ban title: Created By x-stream-index: '005' expires: description: When the ban expires format: date-time title: Expires type: number x-stream-index: '002' reason: description: Reason for the ban title: Reason type: string x-stream-index: '003' shadow: description: Whether this is a shadow ban title: Shadow type: boolean x-stream-index: '004' user: $ref: '#/components/schemas/UserResponse' description: The banned user title: User x-stream-index: '001' required: - created_at title: BanInfo type: object UpdateTaskRequest: nullable: true properties: assigned_to: description: The person that this task is assigned to title: Assigned To type: string x-stream-index: '004' evaluations: description: a list of harm engines / models to be evaluated items: $ref: '#/components/schemas/EvaluationPayload' title: Evaluations type: array x-stream-index: '002' reviewed_at: description: The time when the review happened format: date-time title: Reviewed At type: string x-stream-index: '005' reviewed_by: description: The person who did the review title: Reviewed By type: string x-stream-index: '006' triggers: description: A list of harm engines / models to be evaluated items: $ref: '#/components/schemas/TriggerPayload' title: Triggers type: array x-stream-index: '003' title: UpdateTaskRequest type: object QueryModerationLogsResponse: nullable: true properties: duration: type: string x-stream-index: '003.001' logs: description: List of moderation action logs items: $ref: '#/components/schemas/ActionLogResponse' title: Logs type: array x-stream-index: '001' next: type: string x-stream-index: '002.001' prev: type: string x-stream-index: '002.002' required: - logs - duration type: object ContentCountRuleParameters: properties: threshold: format: int32 type: integer x-stream-index: '001' time_window: type: string x-stream-index: '002' type: object QueryReviewQueueRequest: nullable: true properties: exclude_default_action_config: type: boolean x-stream-index: '007' filter: additionalProperties: {} description: Filter conditions for review queue items title: Filter type: object x-stream-index: '001' limit: format: int32 maximum: 100 minimum: 0 type: integer x-stream-index: '008.001' lock_count: description: Number of items to lock (1-25) format: int32 maximum: 25 minimum: 1 title: Lock Count type: integer x-stream-index: '005' lock_duration: description: Duration for which items should be locked title: Lock Duration type: integer x-stream-index: '004' lock_items: description: Whether to lock items for review (true), unlock items (false), or just fetch (nil) title: Lock Items type: boolean x-stream-index: '003' next: type: string x-stream-index: '008.002' prev: type: string x-stream-index: '008.003' sort: description: Sorting parameters for the results items: $ref: '#/components/schemas/SortParamRequest' title: Sort type: array x-stream-index: '002' stats_only: description: Whether to return only statistics title: Stats Only type: boolean x-stream-index: '006' user: $ref: '#/components/schemas/UserRequest' x-stream-index: '009.002' user_id: type: string x-stream-index: '009.001' type: object ChatPreferences: properties: channel_mentions: type: string x-stream-index: '007' default_preference: type: string x-stream-index: '001' direct_mentions: type: string x-stream-index: '002' distinct_channel_messages: type: string x-stream-index: 008 group_mentions: type: string x-stream-index: '004' here_mentions: type: string x-stream-index: '006' role_mentions: type: string x-stream-index: '003' thread_replies: type: string x-stream-index: '005' type: object TypingIndicatorsResponse: properties: enabled: type: boolean x-stream-index: '001' type: object GetFlagCountRequest: nullable: true properties: entity_creator_id: description: ID of the user whose content was flagged title: Entity Creator ID type: string x-stream-index: '001' entity_type: description: Optional entity type filter (e.g., stream:chat:v1:message, stream:user) title: Entity Type type: string x-stream-index: '002' required: - entity_creator_id type: object DeleteActivityRequestPayload: description: Configuration for activity deletion action properties: entity_id: description: ID of the activity to delete (alternative to item_id) title: Entity ID type: string x-stream-index: '003' entity_type: description: Type of the entity (required for delete_activity to distinguish v2 vs v3) title: Entity Type type: string x-stream-index: '004' hard_delete: description: Whether to permanently delete the activity title: Hard Delete type: boolean x-stream-index: '001' reason: description: Reason for deletion title: Reason type: string x-stream-index: '002' title: DeleteActivityRequest type: object FeedsV3CommentResponse: properties: attachments: items: $ref: '#/components/schemas/Attachment' type: array x-stream-index: '011' bookmark_count: format: int32 type: integer x-stream-index: '022' confidence_score: format: float type: number x-stream-index: '024' controversy_score: format: float type: number x-stream-index: '025' created_at: format: date-time type: number x-stream-index: '014' custom: additionalProperties: {} type: object x-stream-index: '006' deleted_at: format: date-time type: number x-stream-index: '017' downvote_count: format: int32 type: integer x-stream-index: '021' edited_at: format: date-time type: number x-stream-index: '016' id: type: string x-stream-index: '001' latest_reactions: items: $ref: '#/components/schemas/FeedsReactionResponse' type: array x-stream-index: 009 mentioned_users: items: $ref: '#/components/schemas/UserResponse' type: array x-stream-index: '012' moderation: $ref: '#/components/schemas/ModerationV2Response' x-stream-index: 018 object_id: type: string x-stream-index: '002' object_type: type: string x-stream-index: '003' own_reactions: items: $ref: '#/components/schemas/FeedsReactionResponse' type: array x-stream-index: '026' parent_id: type: string x-stream-index: '007' reaction_count: format: int32 type: integer x-stream-index: 008 reaction_groups: additionalProperties: $ref: '#/components/schemas/FeedsReactionGroupResponse' type: object x-stream-index: '010' reply_count: format: int32 type: integer x-stream-index: 019 score: format: int32 type: integer x-stream-index: '023' status: type: string x-stream-index: '013' text: type: string x-stream-index: '005' updated_at: format: date-time type: number x-stream-index: '015' upvote_count: format: int32 type: integer x-stream-index: '020' user: $ref: '#/components/schemas/UserResponse' x-stream-index: '004' required: - id - object_id - object_type - user - reaction_count - mentioned_users - status - created_at - updated_at - reply_count - upvote_count - downvote_count - bookmark_count - score - confidence_score - own_reactions type: object CheckRequest: nullable: true properties: config: $ref: '#/components/schemas/ModerationConfig' description: Custom moderation configuration (test mode only) title: Config x-stream-index: 009 config_key: description: Key of the moderation configuration to use title: Config Key type: string x-stream-index: '005' config_team: description: Team associated with the configuration title: Config Team type: string x-stream-index: '006' content_published_at: description: Original timestamp when the content was produced (for correlating flagged content with source video timeline) format: date-time title: Content Published At type: number x-stream-index: '010' entity_creator_id: description: ID of the user who created the entity title: Entity Creator ID type: string x-stream-index: '003' entity_id: description: Unique identifier of the entity to moderate title: Entity ID type: string x-stream-index: '002' entity_type: description: Type of entity to moderate title: Entity Type type: string x-stream-index: '001' moderation_payload: $ref: '#/components/schemas/ModerationPayload' description: Content to be moderated title: Moderation Payload x-stream-index: '004' options: additionalProperties: {} description: Additional moderation configuration options title: Options type: object x-stream-index: '007' test_mode: description: Whether to run moderation in test mode title: Test Mode type: boolean x-stream-index: 008 user: $ref: '#/components/schemas/UserRequest' x-stream-index: '011.002' user_id: type: string x-stream-index: '011.001' required: - entity_type - entity_id - entity_creator_id type: object ScreensharingSettingsResponse: properties: access_request_enabled: type: boolean x-stream-index: '002' enabled: type: boolean x-stream-index: '001' target_resolution: $ref: '#/components/schemas/TargetResolution' x-stream-index: '003' required: - enabled - access_request_enabled type: object FeedsNotificationComment: properties: attachments: items: $ref: '#/components/schemas/Attachment' type: array x-stream-index: '004' comment: type: string x-stream-index: '003' id: type: string x-stream-index: '001' user_id: type: string x-stream-index: '002' required: - id - user_id - comment type: object EvaluationResponse: properties: matches: items: $ref: '#/components/schemas/MatchResponse' type: array x-stream-index: '003' score: format: float type: number x-stream-index: '002' type: type: string x-stream-index: '001' required: - type - score type: object BlockListRule: properties: action: enum: - flag - mask_flag - shadow - remove - bounce - bounce_flag - bounce_remove type: string x-stream-index: '003' name: type: string x-stream-index: '001' team: type: string x-stream-index: '002' required: - action type: object QueryModerationFlagsRequest: nullable: true properties: filter: additionalProperties: {} type: object x-stream-index: '001' limit: format: int32 maximum: 100 minimum: 0 type: integer x-stream-index: '003.001' next: type: string x-stream-index: '003.002' prev: type: string x-stream-index: '003.003' sort: items: $ref: '#/components/schemas/SortParamRequest' type: array x-stream-index: '002' type: object ImageData: properties: frames: type: string x-stream-index: '005' height: type: string x-stream-index: '003' size: type: string x-stream-index: '004' url: type: string x-stream-index: '001' width: type: string x-stream-index: '002' required: - url - width - height - size - frames type: object ReadReceiptsResponse: properties: enabled: type: boolean x-stream-index: '001' type: object BulkImageModerationRequest: nullable: true properties: csv_file: description: URL to CSV file containing image URLs to moderate title: string type: string x-stream-index: '001' required: - csv_file type: object UpsertModerationRuleResponse: description: Basic response information nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: '001.001' rule: $ref: '#/components/schemas/ModerationRuleV2Response' x-stream-index: '002' required: - duration title: Response type: object UpsertActionConfigItem: properties: action: maxLength: 255 type: string x-stream-index: '001.004' custom: additionalProperties: {} type: object x-stream-index: '001.007' description: maxLength: 1024 type: string x-stream-index: '001.006' entity_type: maxLength: 255 type: string x-stream-index: '001.002' icon: maxLength: 255 type: string x-stream-index: '001.005' id: type: string x-stream-index: '001.001' order: format: int32 maximum: 100 minimum: 0 type: integer x-stream-index: '001.003' queue_type: maxLength: 255 type: string x-stream-index: '001.008' required: - entity_type - order - action type: object RTMPSettingsResponse: description: RTMPSettingsResponse is the payload for RTMP settings properties: enabled: title: Enabled type: boolean x-stream-index: '001' layout: $ref: '#/components/schemas/LayoutSettingsResponse' title: Layout x-stream-index: '003' quality: title: Quality type: string x-stream-index: '002' required: - enabled - quality - layout title: RTMPSettingsResponse type: object TranscriptionSettingsResponse: properties: closed_caption_mode: enum: - available - disabled - auto-on type: string x-stream-index: '002' language: enum: - auto - en - fr - es - de - it - nl - pt - pl - ca - cs - da - el - fi - id - ja - ru - sv - ta - th - tr - hu - ro - zh - ar - tl - he - hi - hr - ko - ms - 'no' - uk - bg - et - sl - sk type: string x-stream-index: '004' mode: enum: - available - disabled - auto-on type: string x-stream-index: '001' speech_segment_config: $ref: '#/components/schemas/SpeechSegmentConfig' x-stream-index: '006' translation: $ref: '#/components/schemas/TranslationSettings' x-stream-index: '005' required: - mode - closed_caption_mode - languages - language type: object UnmuteResponse: nullable: true properties: duration: type: string x-stream-index: '002.001' non_existing_users: description: A list of users that can't be found. Common cause for this is deleted users items: type: string title: Non Existing Users type: array x-stream-index: '001' required: - duration title: UnmuteResponse type: object AppealRequest: nullable: true properties: appeal_reason: description: Explanation for why the content is being appealed maxLength: 500 title: Appeal Reason type: string x-stream-index: '003' attachments: description: Array of Attachment URLs(e.g., images) items: type: string maxItems: 10 title: Attachments type: array x-stream-index: '004' entity_id: description: Unique identifier of the entity being appealed title: Entity ID type: string x-stream-index: '001' entity_type: description: Type of entity being appealed (e.g., message, user) title: Entity Type type: string x-stream-index: '002' user: $ref: '#/components/schemas/UserRequest' x-stream-index: '005.002' user_id: type: string x-stream-index: '005.001' required: - entity_id - entity_type - appeal_reason type: object InsertActionLogResponse: description: Response after inserting a moderation action log nullable: true properties: duration: type: string x-stream-index: '001.001' required: - duration title: Insert Action Log Response type: object SubmitChatMessageTaskRequest: nullable: true properties: channel_id: description: The Channel ID title: Channel ID type: string x-stream-index: '003' channel_name: description: The Channel Name, if not provided matches the Channel ID title: Channel Name type: string x-stream-index: '005' evaluations: description: a list of harm engines / models to be evaluated items: $ref: '#/components/schemas/EvaluationPayload' title: Evaluations type: array x-stream-index: 008 extra: additionalProperties: {} description: Extra data that needs to be stored for this task title: Extra type: object x-stream-index: '007' message_id: description: The ID of the message so the system can know on which message to act if moderation is needed title: Message ID type: string x-stream-index: '001' text: description: The message text sent for evaluation title: Text type: string x-stream-index: '006' user_id: description: The User ID title: User ID type: string x-stream-index: '002' user_name: description: The User Name, if not provided matches the User ID title: User Name type: string x-stream-index: '004' required: - message_id - user_id - channel_id - text title: SubmitChatMessageTaskRequest type: object BodyguardRule: properties: action: enum: - keep - flag - shadow - remove - bounce - bounce_flag - bounce_remove type: string x-stream-index: '002' label: type: string x-stream-index: '001' severity_rules: items: $ref: '#/components/schemas/BodyguardSeverityRule' type: array x-stream-index: '003' required: - label type: object AWSRekognitionRule: properties: action: enum: - flag - shadow - remove - bounce - bounce_flag - bounce_remove type: string x-stream-index: '002' label: type: string x-stream-index: '001' min_confidence: format: float maximum: 100 minimum: 0 type: number x-stream-index: '003' subclassifications: additionalProperties: {} type: object x-stream-index: '004' required: - label - action - min_confidence type: object MuteResponse: nullable: true properties: duration: type: string x-stream-index: '004.001' mutes: description: Object with mutes (if multiple users were muted) items: $ref: '#/components/schemas/UserMuteResponse' title: Mutes type: array x-stream-index: '001' non_existing_users: description: A list of users that can't be found. Common cause for this is deleted users items: type: string title: Non Existing Users type: array x-stream-index: '003' own_user: $ref: '#/components/schemas/OwnUserResponse' description: Authorized user object with fresh mutes information title: Own User x-stream-index: '002' required: - duration title: MuteResponse type: object DeleteModerationConfigResponse: nullable: true properties: duration: type: string x-stream-index: '001.001' required: - duration type: object VideoSettingsResponse: properties: access_request_enabled: type: boolean x-stream-index: '002' camera_default_on: type: boolean x-stream-index: '004' camera_facing: enum: - front - back - external type: string x-stream-index: '005' enabled: type: boolean x-stream-index: '001' target_resolution: $ref: '#/components/schemas/TargetResolution' x-stream-index: '003' required: - enabled - access_request_enabled - target_resolution - camera_default_on - camera_facing type: object ReviewQueueItemResponse: properties: actions: description: Moderation actions taken items: $ref: '#/components/schemas/ActionLogResponse' title: Actions type: array x-stream-index: '025' activity: $ref: '#/components/schemas/EnrichedActivity' x-stream-index: '017' ai_text_severity: description: AI-determined text severity title: AI Text Severity type: string x-stream-index: '014' appeal: $ref: '#/components/schemas/AppealItemResponse' description: Appeal submitted for this item if it exists title: Appeal x-stream-index: '026' assigned_to: $ref: '#/components/schemas/UserResponse' description: Moderator assigned to review this item title: Assigned To x-stream-index: '022' bans: description: Associated ban records items: $ref: '#/components/schemas/BanInfoResponse' title: Bans type: array x-stream-index: '023' call: $ref: '#/components/schemas/CallResponse' x-stream-index: 019 completed_at: description: When the review was completed format: date-time title: Completed At type: number x-stream-index: 009 config_key: type: string x-stream-index: '032' created_at: description: When the item was created format: date-time title: Created At type: number x-stream-index: '002' entity_creator: $ref: '#/components/schemas/EntityCreatorResponse' description: Details about who created the entity title: Entity Creator x-stream-index: '020' entity_creator_id: description: ID of who created the entity title: Entity Creator ID type: string x-stream-index: '021' entity_id: description: ID of the entity being reviewed title: Entity ID type: string x-stream-index: '005' entity_type: description: Type of entity being reviewed title: Entity Type type: string x-stream-index: '004' escalated: description: Whether the item has been escalated title: Escalated type: boolean x-stream-index: '034' escalated_at: description: When the item was escalated format: date-time title: Escalated At type: number x-stream-index: '037' escalated_by: description: ID of the moderator who escalated the item title: Escalated By type: string x-stream-index: '036' escalation_metadata: $ref: '#/components/schemas/EscalationMetadata' description: Escalation details including reason, notes, and priority title: Escalation Metadata x-stream-index: '035' feeds_v2_activity: $ref: '#/components/schemas/EnrichedActivity' description: Associated feed activity title: Feeds V2 Activity x-stream-index: '027' feeds_v2_reaction: $ref: '#/components/schemas/Reaction' description: Associated feed reaction title: Feeds V2 Reaction x-stream-index: 028 feeds_v3_activity: $ref: '#/components/schemas/FeedsV3ActivityResponse' x-stream-index: 029 feeds_v3_comment: $ref: '#/components/schemas/FeedsV3CommentResponse' x-stream-index: '030' flags: description: Associated flag records items: $ref: '#/components/schemas/ModerationFlagResponse' title: Flags type: array x-stream-index: '024' flags_count: format: int32 type: integer x-stream-index: '033' id: description: Unique identifier of the review queue item title: ID type: string x-stream-index: '001' languages: description: Detected languages in the content items: type: string title: Languages type: array x-stream-index: '012' latest_moderator_action: type: string x-stream-index: '015' message: $ref: '#/components/schemas/ChatMessageResponse' description: Associated message details title: Message x-stream-index: '016' moderation_payload: $ref: '#/components/schemas/ModerationPayloadResponse' description: Content being moderated title: Moderation Payload x-stream-index: '006' reaction: $ref: '#/components/schemas/Reaction' x-stream-index: 018 recommended_action: description: Suggested moderation action title: Recommended Action type: string x-stream-index: 008 reviewed_at: description: When the item was reviewed format: date-time title: Reviewed At type: number x-stream-index: '010' reviewed_by: description: ID of the moderator who reviewed the item title: Reviewed By type: string x-stream-index: '011' severity: description: Severity level of the content format: int32 title: Severity type: integer x-stream-index: '013' status: description: Current status of the review title: Status type: string x-stream-index: '007' teams: description: Teams associated with this item items: type: string title: Teams type: array x-stream-index: '031' updated_at: description: When the item was last updated format: date-time title: Updated At type: number x-stream-index: '003' required: - id - created_at - updated_at - entity_type - entity_id - status - recommended_action - reviewed_by - languages - severity - ai_text_severity - latest_moderator_action - bans - flags - actions - flags_count - escalated type: object HarmConfig: properties: action_sequences: items: $ref: '#/components/schemas/ActionSequence' type: array x-stream-index: '001' cooldown_period: format: int32 type: integer x-stream-index: '005' harm_types: items: type: string type: array x-stream-index: '003' severity: type: integer x-stream-index: '002' threshold: format: int32 type: integer x-stream-index: '004' type: object CheckS3AccessRequest: nullable: true properties: s3_url: description: Optional stream+s3:// reference to test access against title: string type: string x-stream-index: '002' type: object AIImageLabelDefinition: properties: description: type: string x-stream-index: '003' group: type: string x-stream-index: '004' key: type: string x-stream-index: '001' label: type: string x-stream-index: '002' required: - key - label - description - group type: object PushNotificationSettingsResponse: properties: disabled: type: boolean x-stream-index: '001' disabled_until: format: date-time type: number x-stream-index: '002' type: object FeedsNotificationParentActivity: properties: attachments: items: $ref: '#/components/schemas/Attachment' type: array x-stream-index: '005' id: type: string x-stream-index: '001' text: type: string x-stream-index: '004' type: type: string x-stream-index: '003' user_id: type: string x-stream-index: '002' required: - id type: object TextContentParameters: properties: blocklist_match: items: type: string type: array x-stream-index: '005' contains_url: type: boolean x-stream-index: '003' harm_labels: items: type: string type: array x-stream-index: '001' label_operator: type: string x-stream-index: '006' llm_harm_labels: additionalProperties: type: string type: object x-stream-index: '002' severity: type: string x-stream-index: '004' type: object CallSessionResponse: properties: accepted_by: additionalProperties: format: date-time type: number type: object x-stream-index: 008 anonymous_participant_count: format: int32 type: integer x-stream-index: '006' ended_at: format: date-time type: number x-stream-index: '003' id: type: string x-stream-index: '001' live_ended_at: format: date-time type: number x-stream-index: '011' live_started_at: format: date-time type: number x-stream-index: '010' missed_by: additionalProperties: format: date-time type: number type: object x-stream-index: 009 participants: items: $ref: '#/components/schemas/CallParticipantResponse' type: array x-stream-index: '004' participants_count_by_role: additionalProperties: format: int32 type: integer type: object x-stream-index: '005' rejected_by: additionalProperties: format: date-time type: number type: object x-stream-index: '007' started_at: format: date-time type: number x-stream-index: '002' timer_ends_at: format: date-time type: number x-stream-index: '012' required: - id - participants - participants_count_by_role - anonymous_participant_count - rejected_by - accepted_by - missed_by type: object VelocityFilterConfig: properties: advanced_filters: type: boolean x-stream-index: '007' async: type: boolean x-stream-index: '001' cascading_actions: type: boolean x-stream-index: '004' cids_per_user: format: int32 type: integer x-stream-index: '006' enabled: type: boolean x-stream-index: '002' first_message_only: type: boolean x-stream-index: '005' rules: items: $ref: '#/components/schemas/VelocityFilterConfigRule' type: array x-stream-index: '003' type: object BroadcastSettingsResponse: description: BroadcastSettingsResponse is the payload for broadcasting settings properties: enabled: title: Enabled type: boolean x-stream-index: '001' hls: $ref: '#/components/schemas/HLSSettingsResponse' title: HLS x-stream-index: '002' rtmp: $ref: '#/components/schemas/RTMPSettingsResponse' title: RTMP x-stream-index: '003' required: - enabled - hls - rtmp title: BroadcastSettingsResponse type: object SessionSettingsResponse: properties: inactivity_timeout_seconds: format: int32 maximum: 900 minimum: 5 type: integer x-stream-index: '001' required: - inactivity_timeout_seconds type: object RuleBuilderConfig: properties: async: type: boolean x-stream-index: '001' rules: items: $ref: '#/components/schemas/RuleBuilderRule' type: array x-stream-index: '002' type: object ChatSharedLocationResponseData: properties: channel_cid: type: string x-stream-index: '001' created_at: format: date-time type: number x-stream-index: 008 created_by_device_id: type: string x-stream-index: '006' end_at: format: date-time type: number x-stream-index: '007' latitude: format: float type: number x-stream-index: '004' longitude: format: float type: number x-stream-index: '005' message: $ref: '#/components/schemas/ChatMessageResponse' x-stream-index: '010' message_id: type: string x-stream-index: '002' updated_at: format: date-time type: number x-stream-index: 009 user_id: type: string x-stream-index: '003' required: - channel_cid - message_id - user_id - latitude - longitude - created_by_device_id - created_at - updated_at type: object ModerationPayload: properties: custom: additionalProperties: {} type: object x-stream-index: '004' images: items: type: string maxItems: 30 type: array x-stream-index: '002' texts: items: type: string type: array x-stream-index: '001' videos: items: type: string type: array x-stream-index: '003' type: object QueryLabelResultsResponse: nullable: true properties: duration: type: string x-stream-index: '003.001' label_results: description: List of moderation label results items: $ref: '#/components/schemas/LabelResultResponse' title: Label Results type: array x-stream-index: '001' next: type: string x-stream-index: '002.001' prev: type: string x-stream-index: '002.002' required: - label_results - duration type: object LabelsRequest: nullable: true properties: category: description: Optional category for filtering (max 128 chars) maxLength: 128 title: Category type: string x-stream-index: '004' content: description: Content to moderate maxLength: 20000 title: Content type: string x-stream-index: '001' content_id: description: Customer-supplied identifier for the moderated content, for tracing maxLength: 256 title: Content ID type: string x-stream-index: '005' content_type: description: 'Type of content: ''text'' (default), ''message'', or ''username''. Stored as-sent; only ''username'' routes to the username moderation API.' enum: - text - message - username title: Content Type type: string x-stream-index: '002' policy: description: Optional moderation policy key (max 128 chars) maxLength: 128 title: Policy type: string x-stream-index: '003' user_id: description: Optional customer-supplied user identifier for the content author (max 256 chars). Enables filtering stored results by user_id. maxLength: 256 title: User ID type: string x-stream-index: '006' required: - content type: object AudioSettingsResponse: properties: access_request_enabled: type: boolean x-stream-index: '001' default_device: enum: - speaker - earpiece type: string x-stream-index: '006' hifi_audio_enabled: type: boolean x-stream-index: 008 mic_default_on: type: boolean x-stream-index: '004' noise_cancellation: $ref: '#/components/schemas/NoiseCancellationSettings' x-stream-index: '007' opus_dtx_enabled: type: boolean x-stream-index: '002' redundant_coding_enabled: type: boolean x-stream-index: '003' speaker_default_on: type: boolean x-stream-index: '005' required: - access_request_enabled - opus_dtx_enabled - redundant_coding_enabled - mic_default_on - speaker_default_on - default_device - hifi_audio_enabled type: object AppealItemResponse: properties: appeal_reason: description: Reason Text of the Appeal Item title: Appeal Reason type: string x-stream-index: '006' attachments: description: Attachments(e.g. Images) of the Appeal Item items: type: string title: Attachments type: array x-stream-index: 009 created_at: description: When the flag was created format: date-time title: Created At type: number x-stream-index: '010' decision_reason: description: Decision Reason of the Appeal Item title: Decision Reason type: string x-stream-index: 008 entity_content: $ref: '#/components/schemas/ModerationPayload' x-stream-index: '005' entity_id: description: ID of the entity title: Entity ID type: string x-stream-index: '004' entity_type: description: Type of entity title: Entity Type type: string x-stream-index: '003' id: type: string x-stream-index: '001' status: description: Status of the Appeal Item title: Status type: string x-stream-index: '007' updated_at: description: When the flag was last updated format: date-time title: Updated At type: number x-stream-index: '011' user: $ref: '#/components/schemas/UserResponse' description: Details of the user who created the appeal title: User x-stream-index: '002' required: - id - entity_type - entity_id - appeal_reason - status - created_at - updated_at type: object QueryModerationConfigsRequest: nullable: true properties: filter: additionalProperties: {} description: Filter conditions for moderation configs title: Filter type: object x-stream-index: '001' limit: format: int32 maximum: 100 minimum: 0 type: integer x-stream-index: '003.001' next: type: string x-stream-index: '003.002' prev: type: string x-stream-index: '003.003' sort: description: Sorting parameters for the results items: $ref: '#/components/schemas/SortParamRequest' title: Sort type: array x-stream-index: '002' user: $ref: '#/components/schemas/UserRequest' x-stream-index: '004.002' user_id: type: string x-stream-index: '004.001' type: object HLSSettingsResponse: description: HLSSettings is the payload for HLS settings properties: auto_on: title: Auto On type: boolean x-stream-index: '001' enabled: title: Enabled type: boolean x-stream-index: '002' layout: $ref: '#/components/schemas/LayoutSettingsResponse' title: Layout x-stream-index: '004' quality_tracks: items: type: string title: Quality Tracks type: array x-stream-index: '003' required: - auto_on - enabled - quality_tracks - layout title: HLSSettingsResponse type: object User: properties: data: additionalProperties: {} type: object x-stream-index: '002' id: type: string x-stream-index: '001' required: - id type: object EntityCreatorResponse: properties: avg_response_time: format: int32 type: integer x-stream-index: 001.001.018 ban_count: description: Number of minor actions performed on the user format: int32 title: Ban Count type: integer x-stream-index: '002' ban_expires: format: date-time type: number x-stream-index: '001.004' banned: type: boolean x-stream-index: 001.001.012 blocked_user_ids: items: type: string type: array x-stream-index: 001.001.017 bypass_moderation: type: boolean x-stream-index: '001.003' created_at: format: date-time type: number x-stream-index: 001.001.009 custom: additionalProperties: {} type: object x-stream-index: 001.001.004 deactivated_at: format: date-time type: number x-stream-index: 001.001.016 deleted_at: format: date-time type: number x-stream-index: 001.001.011 deleted_content_count: description: Number of major actions performed on the user format: int32 title: Deleted Content Count type: integer x-stream-index: '003' devices: items: $ref: '#/components/schemas/DeviceResponse' type: array x-stream-index: '001.007' flagged_count: description: Number of flag actions performed on the user format: int32 title: Flagged Count type: integer x-stream-index: '004' id: type: string x-stream-index: 001.001.001 image: type: string x-stream-index: 001.001.003 invisible: type: boolean x-stream-index: '001.008' language: type: string x-stream-index: 001.001.005 last_active: format: date-time type: number x-stream-index: 001.001.014 name: type: string x-stream-index: 001.001.002 online: type: boolean x-stream-index: 001.001.013 privacy_settings: $ref: '#/components/schemas/PrivacySettingsResponse' x-stream-index: '001.006' push_notifications: $ref: '#/components/schemas/PushNotificationSettingsResponse' x-stream-index: '001.005' revoke_tokens_issued_before: format: date-time type: number x-stream-index: 001.001.015 role: type: string x-stream-index: 001.001.006 shadow_banned: type: boolean x-stream-index: '001.002' teams: items: type: string type: array x-stream-index: 001.001.007 teams_role: additionalProperties: type: string type: object x-stream-index: 001.001.008 updated_at: format: date-time type: number x-stream-index: 001.001.010 required: - id - custom - language - role - teams - created_at - updated_at - banned - online - blocked_user_ids - shadow_banned - invisible - ban_count - deleted_content_count - flagged_count type: object AutomodToxicityConfig: properties: async: type: boolean x-stream-index: '001' enabled: type: boolean x-stream-index: '002' rules: items: $ref: '#/components/schemas/AutomodRule' type: array x-stream-index: '003' type: object ChannelMute: nullable: true properties: channel: $ref: '#/components/schemas/ChannelResponse' description: Channel that is muted title: Channel x-stream-index: '002' created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: '004' expires: description: Date/time of mute expiration format: date-time title: Expires type: number x-stream-index: '003' updated_at: description: Date/time of the last update format: date-time title: Updated at type: number x-stream-index: '005' user: $ref: '#/components/schemas/UserResponse' description: Owner of channel mute title: User x-stream-index: '001' required: - created_at - updated_at type: object RawRecordingResponse: properties: status: type: string x-stream-index: '001' required: - status type: object CustomCheckFlag: properties: custom: additionalProperties: {} description: Additional metadata for the flag title: Custom type: object x-stream-index: '003' labels: description: Labels from various moderation sources items: type: string title: Labels type: array x-stream-index: '004' reason: description: Optional explanation for the flag title: Reason type: string x-stream-index: '002' type: description: Type of check (custom_check_text, custom_check_image, custom_check_video) maxLength: 255 title: Type type: string x-stream-index: '001' required: - type type: object DeleteModerationRuleResponse: description: Basic response information nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: '001.001' required: - duration title: Response type: object TextRuleParameters: properties: blocklist_match: items: type: string type: array x-stream-index: '007' contains_url: type: boolean x-stream-index: '005' harm_labels: items: type: string type: array x-stream-index: '003' llm_harm_labels: additionalProperties: type: string type: object x-stream-index: '004' semantic_filter_min_threshold: format: float type: number x-stream-index: 009 semantic_filter_names: items: type: string type: array x-stream-index: 008 severity: type: string x-stream-index: '006' threshold: format: int32 type: integer x-stream-index: '001' time_window: type: string x-stream-index: '002' type: object AppealResponse: nullable: true properties: appeal_id: description: Unique identifier of the created Appeal item title: Appeal Item ID type: string x-stream-index: '001' duration: type: string x-stream-index: '002.001' required: - appeal_id - duration type: object Attachment: description: An attachment is a message object that represents a file uploaded by a user. nullable: true properties: actions: items: $ref: '#/components/schemas/Action' type: array x-stream-index: '015' asset_url: type: string x-stream-index: '017' author_icon: type: string x-stream-index: '007' author_link: type: string x-stream-index: '006' author_name: type: string x-stream-index: '005' color: type: string x-stream-index: '003' custom: additionalProperties: {} type: object x-stream-index: 018 fallback: type: string x-stream-index: '002' fields: items: $ref: '#/components/schemas/Field' type: array x-stream-index: '016' footer: type: string x-stream-index: '013' footer_icon: type: string x-stream-index: '014' giphy: $ref: '#/components/schemas/Images' x-stream-index: 019 image_url: type: string x-stream-index: '011' og_scrape_url: type: string x-stream-index: '020' original_height: format: int32 type: integer x-stream-index: '022' original_width: format: int32 type: integer x-stream-index: '021' pretext: type: string x-stream-index: '004' text: type: string x-stream-index: '010' thumb_url: type: string x-stream-index: '012' title: type: string x-stream-index: 008 title_link: type: string x-stream-index: 009 type: description: Attachment type (e.g. image, video, url) title: Type type: string x-stream-index: '001' required: - custom title: Attachment type: object x-stream-docs-page-id: file_uploads QueryAppealsResponse: nullable: true properties: duration: type: string x-stream-index: '003.001' items: description: List of Appeal Items items: $ref: '#/components/schemas/AppealItemResponse' title: Items type: array x-stream-index: '001' next: type: string x-stream-index: '002.001' prev: type: string x-stream-index: '002.002' required: - items - duration type: object EvaluationPayload: nullable: true properties: matches: description: List of matches items: $ref: '#/components/schemas/MatchPayload' title: Matches type: array x-stream-index: '005' phrase_list_ids: description: List of phrase list IDs items: format: int32 type: integer title: Phrase List IDs type: array x-stream-index: '003' phrases: description: List of matched phrases items: type: string title: Phrases type: array x-stream-index: '004' score: description: Evaluation score format: float title: Score type: number x-stream-index: '002' type: description: Evaluation type enum: - spam_commercial - platform_circumvention - semantic_filter title: Type type: string x-stream-index: '001' required: - type title: EvaluationPayload type: object ChatMessageTaskResponse: description: Chat message task response properties: assigned_to: description: The person that this task is assigned to title: Assigned To type: string x-stream-index: '014' channel_id: description: The Channel ID title: Channel ID type: string x-stream-index: '004' channel_name: description: The Channel Name, if not provided matches the Channel ID title: Channel Name type: string x-stream-index: '006' content_type: description: Type of payload for this task title: Content Type type: string x-stream-index: 009 created_at: description: Date/time of creation format: date-time title: Created at type: string x-stream-index: '017' evaluations: description: a list of harm engines / models to be evaluated items: $ref: '#/components/schemas/EvaluationResponse' title: Evaluations type: array x-stream-index: '011' extra: additionalProperties: {} description: Extra data that needs to be stored for this task title: Extra type: object x-stream-index: '010' id: description: 'Task ID ' title: ID type: string x-stream-index: '001' message_id: description: The ID of the message so the system can know on which message to act if moderation is needed title: Message ID type: string x-stream-index: '002' reviewed_at: description: The time when the review happened format: date-time title: Reviewed At type: string x-stream-index: '015' reviewed_by: description: The person who did the review title: Reviewed By type: string x-stream-index: '016' rule: $ref: '#/components/schemas/RuleResponse' title: Rule x-stream-index: '012' status: description: Status of the task. Sync tasks can be completed or error, async tasks can be in pending state title: Status type: string x-stream-index: '007' text: description: The message text sent for evaluation title: Text type: string x-stream-index: 008 triggers: description: A list of harm engines / models to be evaluated items: $ref: '#/components/schemas/TriggerResponse' title: Triggers type: array x-stream-index: '013' updated_at: format: date-time type: string x-stream-index: 018 user_id: description: The User ID title: User ID type: string x-stream-index: '003' user_name: description: The User Name, if not provided matches the User ID title: User Name type: string x-stream-index: '005' required: - id - message_id - user_id - channel_id - user_name - channel_name - status - text - content_type - evaluations - created_at - updated_at title: ChatMessageTaskResponse type: object ActionSequence: properties: action: type: string x-stream-index: '001' blur: type: boolean x-stream-index: '005' cooldown_period: format: int32 type: integer x-stream-index: '004' threshold: format: int32 type: integer x-stream-index: '002' time_window: format: int32 type: integer x-stream-index: '003' warning: type: boolean x-stream-index: '006' warning_text: type: string x-stream-index: '007' type: object BlockListOptions: properties: behavior: description: 'Blocklist behavior. One of: flag, block, shadow_block' enum: - flag - block - shadow_block title: Behavior type: string x-stream-index: '002' blocklist: description: Blocklist name title: Blocklist type: string x-stream-index: '001' required: - blocklist - behavior type: object LabelThresholds: properties: block: description: Threshold for automatic message block format: float maximum: 1 minimum: 0 title: Block type: number x-stream-index: '002' flag: description: Threshold for automatic message flag format: float maximum: 1 minimum: 0 title: Flag type: number x-stream-index: '001' type: object CheckResponse: nullable: true properties: duration: type: string x-stream-index: '006.001' item: $ref: '#/components/schemas/ReviewQueueItemResponse' description: Review queue item (present if action != keep) title: Item x-stream-index: '004' recommended_action: description: Suggested action based on moderation results title: Recommended Action type: string x-stream-index: '003' status: description: Status of the moderation check (completed or pending) title: Status type: string x-stream-index: '001' task_id: description: ID of the running moderation task title: Task ID type: string x-stream-index: '002' triggered_rule: $ref: '#/components/schemas/TriggeredRuleResponse' description: Rule triggered by evaluation, with resolved actions and escalation details title: Triggered Rule x-stream-index: '005' required: - status - recommended_action - duration type: object QueryLabelResultsRequest: nullable: true properties: filter: additionalProperties: {} description: Filter conditions title: Filter type: object x-stream-index: '001' limit: format: int32 maximum: 100 minimum: 0 type: integer x-stream-index: '003.001' next: type: string x-stream-index: '003.002' prev: type: string x-stream-index: '003.003' sort: description: Sorting parameters items: $ref: '#/components/schemas/SortParamRequest' title: Sort type: array x-stream-index: '002' user: $ref: '#/components/schemas/UserRequest' x-stream-index: '004.002' user_id: type: string x-stream-index: '004.001' type: object securitySchemes: JWT: description: 'JWT should be always provided when stream-auth-type=jwt. Using JWT auth request could be authenticated as user or as server-side. When using user authentication permission checking is going to be applied to requests based on the user that is performing a request. The `authorization` header should be a JWT string signed using the secret attached to the API key used to perform requests. **WARNING** all client-side official SDK do not ship with token generation; this is to make sure that the API secret is not shared with an untrusted party such as a browser or a iOS/Android application. Tokens **must** be generated server-side. If you wish, you can configure your application to ignore authentication (see `disable_auth_check`) The JWT string must include only the user_id claim and can include any built-in JWT claim such as iat, exp as well. ' in: header name: Authorization type: apiKey api_key: description: Application API key should be always set in order to authenticate the request. in: query name: api_key type: apiKey stream-auth-type: description: 'Stream-Auth-Type should be always set in order to authenticate the request. Possible values: `jwt` or `anonymous`. `jwt` allows you to authenticate as a user. With this auth type you should also provide valid JWT in Authorization header. `anonymous` allows you to authenticate as anonymous user. Please note that most advanced features are not available to anonymous users.' in: header name: Stream-Auth-Type type: apiKey