components: schemas: AIAudioConfigRequest: properties: ai_text_config: $ref: '#/components/schemas/AITextConfig' description: Rules applied to transcripts when the policy's engine is NLP title: AITextConfig x-stream-index: "003" llm_config: $ref: '#/components/schemas/LLMConfig' description: Rules applied to transcripts when the policy's engine is LLM title: LLMConfig x-stream-index: "004" profile: description: Bodyguard credentials profile to classify transcripts with. Applies to the NLP engine only; ignored when the policy's engine is LLM. Empty falls back to the app-pinned profile, then the organization's top-level credentials title: Profile type: string x-stream-index: "001" rules: description: Deprecated pre-split rule list. Still the live config while no engine config exists; once one does it is kept as a fallback for whichever engine has none of its own items: $ref: '#/components/schemas/BodyguardRule' title: Rules type: array x-stream-index: "002" type: object AIAudioConfigResponse: properties: ai_text_config: $ref: '#/components/schemas/AITextConfig' description: The rules applied to transcripts when the policy's engine is NLP. Present only when a config for that engine is stored; a policy still on the pre-split flat shape returns rules alone title: AITextConfig x-stream-index: "004" enabled: description: Whether the policy's engine (engine.provider, else the application's LLM configurability flag) has a rule that does something. Derived, not stored title: Enabled type: boolean x-stream-index: "001" llm_config: $ref: '#/components/schemas/LLMConfig' description: The rules applied to transcripts when the policy's engine is LLM. Present only when a config for that engine is stored; a policy still on the pre-split flat shape returns rules alone title: LLMConfig x-stream-index: "005" profile: description: Bodyguard credentials profile transcripts are classified with. Applies to the NLP engine only title: Profile type: string x-stream-index: "002" rules: description: The active engine's rules, flattened into the pre-split shape for clients that predate the per-engine configs. This is the whole config for a policy that has no per-engine config stored items: $ref: '#/components/schemas/BodyguardRule' title: Rules type: array x-stream-index: "003" required: - enabled - profile - rules 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" ocr_severity_rules: items: $ref: '#/components/schemas/BodyguardRule' type: array x-stream-index: "005" rules: items: $ref: '#/components/schemas/AWSRekognitionRule' type: array x-stream-index: "003" 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 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 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 AIVideoConfigRequest: 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 AIVideoConfigResponse: 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" required: - enabled - rules 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" cooldown_remaining_ms: description: Milliseconds until the user's slow mode cool down period ends. Only set on code 60 (cool down) errors format: int64 title: Cooldown remaining ms type: integer x-stream-index: "009" 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 APNConfig: properties: Disabled: type: boolean writeOnly: true x-stream-index: "005" auth_key: type: string x-stream-index: "006.001" auth_type: enum: - certificate - token type: string x-stream-index: "001" bundle_id: type: string x-stream-index: "004" development: type: boolean x-stream-index: "002" host: type: string x-stream-index: "003" key_id: type: string x-stream-index: "006.002" notification_template: type: string x-stream-index: "008" p12_cert: type: string x-stream-index: "007.001" team_id: type: string x-stream-index: "006.003" type: object APNConfigFields: properties: auth_key: type: string x-stream-index: "009" auth_type: type: string x-stream-index: "003" bundle_id: type: string x-stream-index: "006" development: type: boolean x-stream-index: "002" enabled: type: boolean x-stream-index: "001" host: type: string x-stream-index: "005" key_id: type: string x-stream-index: "008" notification_template: type: string x-stream-index: "004" p12_cert: type: string x-stream-index: "010" team_id: type: string x-stream-index: "007" required: - enabled - development type: object APNS: properties: body: type: string x-stream-index: "002" content-available: format: int32 type: integer x-stream-index: "004" data: additionalProperties: {} type: object x-stream-index: "006" mutable-content: format: int32 type: integer x-stream-index: "005" sound: type: string x-stream-index: "003" title: type: string x-stream-index: "001" required: - title - body type: object AWSRekognitionRule: properties: action: $ref: '#/components/schemas/ModerationAction' x-stream-index: "002" label: type: string x-stream-index: "001" min_confidence: format: double 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 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 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 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 ActivityVisibility: description: Who can see an activity. enum: - public - private - tag title: ActivityVisibility type: string AddSegmentTargetsRequest: nullable: true properties: target_ids: description: Target IDs items: type: string maxItems: 10000 minItems: 1 title: '[]string' type: array x-stream-index: "002" required: - target_ids type: object AddUserGroupMembersRequest: description: Request body for adding members to a user group nullable: true properties: as_admin: description: Whether to add the members as group admins. Defaults to false title: As Admin type: boolean x-stream-index: "003" member_ids: description: List of user IDs to add as members items: type: string maxItems: 100 minItems: 1 title: Member IDs type: array x-stream-index: "002" team_id: maxLength: 255 type: string x-stream-index: "004" required: - member_ids title: AddUserGroupMembersRequest type: object AddUserGroupMembersResponse: description: Response for adding members to a user group nullable: true properties: duration: type: string x-stream-index: "002.001" user_group: $ref: '#/components/schemas/UserGroupResponse' description: The updated user group title: UserGroup x-stream-index: "001" required: - duration title: AddUserGroupMembersResponse type: object AnalyzeImageField: properties: action: description: 'Per-image action: keep | flag | remove.' title: Action type: string x-stream-index: "002" classifications: description: 'Hierarchical list of L1 (parent) classifications. Each entry: `name`, `confidence` (0–1), and nested `subclassifications` (L2 leaves with their own confidence). Resolved against the app''s effective taxonomy (custom taxonomy when configured, otherwise the standard Bodyguard catalogue).' items: $ref: '#/components/schemas/Classification' title: Classifications type: array x-stream-index: "004" confidence: description: Highest confidence (0–1) across detected classifications + sub-classifications. Convenience aggregate over the nested values in `classifications`. format: double title: Confidence type: number x-stream-index: "003" detected_urls: description: 'URLs found in the image, as `{url, source}` objects: `source` is `qr` (decoded from a QR code) or `ocr` (in text visible in the image). Independent of the action; omitted when none were found.' items: $ref: '#/components/schemas/DetectedURLResponse' title: DetectedURLs type: array x-stream-index: "007" error: description: Set when moderation couldn't be determined for this image — action is absent. title: Error type: string x-stream-index: "006" id: description: Echo of `content_ids[label]` when supplied on the request; omitted otherwise. title: ID type: string x-stream-index: "001" ocr_classifications: description: 'Flat list of Bodyguard OCR text-moderation labels on the image''s extracted text (e.g. VULGARITY, PII). Each entry: `name` + `severity`. Populated when BG''s OCR pipeline returned non-empty results for this image.' items: $ref: '#/components/schemas/Classification' title: OCRClassifications type: array x-stream-index: "005" type: object AnalyzeRequest: nullable: true properties: async_response: description: When true, the response carries no verdicts (status `pending`) and per-modality results arrive via `moderation.text_analysis.complete` and `moderation.image_analysis.complete` webhooks. Image moderation runs on a background worker; text moderation runs synchronously and is then delivered via webhook. title: Async Response type: boolean x-stream-index: "009" config_key: description: Moderation policy key. Optional in stateful mode, required in stateless mode. title: Config Key type: string x-stream-index: "004" content_ids: additionalProperties: type: string description: Optional map from a content label (either a `texts` key or an `image:` multipart label) to a caller-supplied per-instance identifier. Echoed on per-field verdicts and surfaced in `matched_contents` when an aggregation rule fires. title: External Content IDs type: object x-stream-index: "008" content_published_at: description: Original timestamp when the content was produced. Used as the `published_at` timestamp on per-content log entries that surface in `matched_contents` on aggregation-rule webhooks. format: date-time title: Content Published At type: string x-stream-index: "007" country_code: deprecated: true description: ISO 3166-1 alpha-2 country the content is aimed at (e.g. US, DE). Ignored when country_codes is set, but an invalid value is still rejected with 400. title: Country Code type: string x-stream-deprecated: true x-stream-deprecated-renamed: country_codes x-stream-index: "010" country_codes: description: ISO 3166-1 alpha-2 countries the content is aimed at (e.g. US, DE), up to 300. The first is the primary country. Every country is sent to the AI text and image harm detection engines as country context. Takes precedence over country_code. items: type: string title: Country Codes type: array x-stream-index: "013" custom: additionalProperties: {} description: Arbitrary metadata surfaced in the dashboard. title: Custom type: object x-stream-index: "006" entity_creator_id: description: ID of the user who created the content. Required with entity_type + entity_id; omit all three for stateless mode. title: Entity Creator ID type: string x-stream-index: "003" entity_id: description: Caller-supplied content identifier. Required with entity_type + entity_creator_id; omit all three for stateless mode. title: Entity ID type: string x-stream-index: "002" entity_type: description: Caller-defined entity type. Required with entity_id + entity_creator_id; omit all three for stateless mode. title: Entity Type type: string x-stream-index: "001" texts: additionalProperties: type: string description: Named text fields to moderate, keyed by caller label (e.g. title, description). title: Texts type: object x-stream-index: "005" user: $ref: '#/components/schemas/UserRequest' x-stream-index: "011.002" user_id: type: string x-stream-index: "011.001" type: object AnalyzeResponse: nullable: true properties: duration: type: string x-stream-index: "004.001" images: additionalProperties: $ref: '#/components/schemas/AnalyzeImageField' description: Per-image moderation verdicts keyed by caller label. title: Images type: object x-stream-index: "003" llm_model: description: ID of the LLM model that scored the content (e.g. gpt-4o-mini). Omitted when no LLM verdict was used (e.g. Bodyguard-only, or `pending`). title: LLM Model type: string x-stream-index: "005" llm_reasoning_effort: description: reasoning_effort sent with the LLM request. Omitted when the request did not send one. title: LLM Reasoning Effort type: string x-stream-index: "006" status: description: '`complete` (all fields screened), `partial` (mix of verdicts and per-field errors), or `pending` (async).' title: Status type: string x-stream-index: "001" texts: additionalProperties: $ref: '#/components/schemas/AnalyzeTextField' description: Per-text-field moderation verdicts keyed by caller label. title: Texts type: object x-stream-index: "002" required: - status - duration type: object AnalyzeTextField: properties: action: description: 'Per-field action: keep | flag | remove.' title: Action type: string x-stream-index: "002" classifications: description: Flat list of detected Bodyguard text labels (e.g. INSULT, VULGARITY). Each entry carries `name` and `severity`. items: $ref: '#/components/schemas/Classification' title: Classifications type: array x-stream-index: "003" detected_urls: description: URLs found in the text, as `{url, source}` objects with `source` = `text`. Independent of the action; omitted when none were found. items: $ref: '#/components/schemas/DetectedURLResponse' title: DetectedURLs type: array x-stream-index: "007" error: description: Set when moderation couldn't be determined for this field — action is absent. title: Error type: string x-stream-index: "006" id: description: Echo of `content_ids[label]` when supplied on the request; omitted otherwise. title: ID type: string x-stream-index: "001" language: description: Detected language code. title: Language type: string x-stream-index: "005" severity: description: 'Aggregate severity across the field: LOW | MEDIUM | HIGH | CRITICAL.' title: Severity type: string x-stream-index: "004" type: object AppChannelCountParameters: description: 'app_channel_count params: fires when the app creates at least threshold distinct channels within time_window' properties: threshold: format: int32 type: integer x-stream-index: "001" time_window: type: string x-stream-index: "002" type: object AppCountInfo: properties: condition_type: description: 'The app-wide count condition that fired: `app_channel_count` or `app_message_count`.' title: ConditionType type: string x-stream-index: "001" count: description: Channels created or messages sent in the app within the window when the rule fired, the triggering event included. format: int32 title: Count type: integer x-stream-index: "004" threshold: description: The configured threshold. The rule fires when the count reaches it. format: int32 title: Threshold type: integer x-stream-index: "002" time_window: description: The configured time window, e.g. `5m`. title: TimeWindow type: string x-stream-index: "003" required: - condition_type - threshold - time_window - count type: object AppDefaults: description: Request limit defaults applied by the server when the corresponding field is omitted. properties: get_or_create_channel: $ref: '#/components/schemas/GetOrCreateChannelDefaults' description: Defaults applied by the get-or-create channel endpoint. title: Get or create channel x-stream-index: "002" query_channels: $ref: '#/components/schemas/QueryChannelsDefaults' description: Defaults applied by the query channels endpoint. title: Query channels x-stream-index: "001" required: - query_channels - get_or_create_channel type: object AppMessageCountParameters: description: 'app_message_count params: fires when the app sends at least threshold chat messages within time_window' properties: threshold: format: int32 type: integer x-stream-index: "001" time_window: type: string x-stream-index: "002" type: object AppResponseFields: description: A type representing the app settings. properties: activity_metrics_config: additionalProperties: format: int32 type: integer type: object x-stream-index: "063" allow_multi_user_devices: type: boolean x-stream-index: "018" allowed_flag_reasons: items: type: string type: array x-stream-index: "022" async_url_enrich_enabled: description: A boolean value determining if async url enrichment is enabled. title: Async URL enrich enabled type: boolean x-stream-index: "020" auto_translation_enabled: description: A boolean value determining if auto translation is enabled. title: Auto translation enabled type: boolean x-stream-index: "023" before_message_send_hook_attempt_timeout_ms: format: int32 type: integer x-stream-index: "025" before_message_send_hook_system_messages: type: boolean x-stream-index: "068" before_message_send_hook_url: type: string x-stream-index: "024" call_types: additionalProperties: $ref: '#/components/schemas/CallType' type: object x-stream-index: "009" campaign_enabled: type: boolean x-stream-index: "041" cdn_expiration_seconds: format: int32 type: integer x-stream-index: "044" channel_configs: additionalProperties: $ref: '#/components/schemas/ChannelConfig' type: object x-stream-index: "008" chat_primary_use_case: type: string x-stream-index: "029" custom_action_handler_url: type: string x-stream-index: "026" datadog_info: $ref: '#/components/schemas/DataDogInfo' x-stream-index: "047" defaults: $ref: '#/components/schemas/AppDefaults' description: Request limit defaults the server applies when the corresponding field is omitted. title: Defaults x-stream-index: "038" disable_auth_checks: type: boolean x-stream-index: "013" disable_permissions_checks: type: boolean x-stream-index: "014" enforce_unique_usernames: type: string x-stream-index: "027" event_hooks: items: $ref: '#/components/schemas/EventHook' type: array x-stream-index: "052" feed_audit_logs_enabled: type: boolean x-stream-index: "057" file_upload_config: $ref: '#/components/schemas/FileUploadConfig' description: The file uploading configuration. title: File upload config x-stream-index: "036" geofences: items: $ref: '#/components/schemas/GeofenceResponse' type: array x-stream-index: "046" grants: additionalProperties: items: type: string type: array type: object x-stream-index: "040" guest_user_creation_disabled: type: boolean x-stream-index: "050" id: format: int32 type: integer x-stream-index: "001" image_moderation_enabled: type: boolean x-stream-index: "019" image_moderation_labels: items: type: string type: array x-stream-index: "021" image_upload_config: $ref: '#/components/schemas/FileUploadConfig' description: The image uploading configuration. title: Image upload config x-stream-index: "037" max_aggregated_activities_length: format: int32 type: integer x-stream-index: "056" member_custom_on_mentioned_users_enabled: type: boolean x-stream-index: "065" member_custom_on_messages_enabled: type: boolean x-stream-index: "064" member_custom_on_typing_events_enabled: type: boolean x-stream-index: "066" moderation_audio_call_moderation_enabled: type: boolean x-stream-index: "060" moderation_dashboard_preferences: $ref: '#/components/schemas/ModerationDashboardPreferences' x-stream-index: "051" moderation_enabled: type: boolean x-stream-index: "048" moderation_keyframe_video_enabled: type: boolean x-stream-index: "061" moderation_llm_configurability_enabled: type: boolean x-stream-index: "055" moderation_multitenant_blocklist_enabled: type: boolean x-stream-index: "049" moderation_onboarding_complete: type: boolean x-stream-index: "058" moderation_s3_image_access_role_arn: type: string x-stream-index: "062" moderation_video_call_moderation_enabled: type: boolean x-stream-index: "059" moderation_webhook_url: type: string x-stream-index: "007" multi_tenant_enabled: type: boolean x-stream-index: "017" name: description: The name of the app. title: Name type: string x-stream-index: "002" organization: type: string x-stream-index: "003" permission_version: type: string x-stream-index: "015" placement: type: string x-stream-index: "004" policies: additionalProperties: items: $ref: '#/components/schemas/Policy' type: array type: object x-stream-index: "010" push_notifications: $ref: '#/components/schemas/PushNotificationFields' x-stream-index: "005" reminders_interval: format: int32 type: integer x-stream-index: "043" revoke_tokens_issued_before: format: date-time type: number x-stream-index: "039" sns_key: type: string x-stream-index: "034" sns_secret: type: string x-stream-index: "035" sns_topic_arn: type: string x-stream-index: "033" sqs_key: type: string x-stream-index: "031" sqs_secret: type: string x-stream-index: "032" sqs_url: type: string x-stream-index: "030" suspended: type: boolean x-stream-index: "011" suspended_explanation: type: string x-stream-index: "012" two_way_block_effect_enabled: type: boolean x-stream-index: "067" use_hook_v2: type: boolean x-stream-index: "053" user_response_time_enabled: type: boolean x-stream-index: "054" user_search_disallowed_roles: items: type: string type: array x-stream-index: "016" video_primary_use_case: type: string x-stream-index: "028" webhook_events: items: type: string type: array x-stream-index: "042" webhook_url: type: string x-stream-index: "006" required: - id - name - organization - placement - push_notifications - webhook_url - moderation_webhook_url - channel_configs - call_types - policies - suspended - suspended_explanation - disable_auth_checks - disable_permissions_checks - permission_version - user_search_disallowed_roles - multi_tenant_enabled - allow_multi_user_devices - image_moderation_enabled - async_url_enrich_enabled - auto_translation_enabled - custom_action_handler_url - enforce_unique_usernames - sqs_url - sqs_key - sqs_secret - sns_topic_arn - sns_key - sns_secret - file_upload_config - image_upload_config - defaults - grants - campaign_enabled - webhook_events - reminders_interval - cdn_expiration_seconds - moderation_enabled - moderation_multitenant_blocklist_enabled - guest_user_creation_disabled - event_hooks - use_hook_v2 - user_response_time_enabled - moderation_llm_configurability_enabled - max_aggregated_activities_length - feed_audit_logs_enabled - moderation_video_call_moderation_enabled - moderation_audio_call_moderation_enabled - moderation_keyframe_video_enabled - member_custom_on_messages_enabled - member_custom_on_mentioned_users_enabled - member_custom_on_typing_events_enabled - two_way_block_effect_enabled - before_message_send_hook_system_messages type: object AppealAcceptedEvent: description: This event is sent when an appeal is accepted nullable: true properties: appeal: $ref: '#/components/schemas/AppealItemResponse' description: The appeal that was accepted title: Appeal x-stream-index: "002" created_at: format: date-time type: number x-stream-index: "001.003" custom: additionalProperties: {} type: object x-stream-index: "001.007" received_at: format: date-time type: number x-stream-index: "001.004" type: default: appeal.accepted type: string x-stream-index: "001.002" required: - type - created_at - custom title: AppealAcceptedEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent AppealCreatedEvent: description: This event is sent when an appeal is created nullable: true properties: appeal: $ref: '#/components/schemas/AppealItemResponse' description: The appeal that was created title: Appeal x-stream-index: "002" created_at: format: date-time type: number x-stream-index: "001.003" custom: additionalProperties: {} type: object x-stream-index: "001.007" received_at: format: date-time type: number x-stream-index: "001.004" type: default: appeal.created type: string x-stream-index: "001.002" required: - type - created_at - custom title: AppealCreatedEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent AppealItemResponse: properties: actions: description: Full chronological history of all moderation actions on the review queue item items: $ref: '#/components/schemas/ActionLogResponse' title: Actions type: array x-stream-index: "014" ai_text_severity: description: Text severity level assigned by the AI provider title: AI Text Severity type: string x-stream-index: "021" appeal_reason: description: Reason Text of the Appeal Item title: Appeal Reason type: string x-stream-index: "006" appeal_reason_language: description: Detected language of the appeal_reason text itself title: Appeal Reason Language type: string x-stream-index: "025" attachments: description: Attachments(e.g. Images) of the Appeal Item items: type: string title: Attachments type: array x-stream-index: "009" channel_cid: description: CID of the channel the entity belongs to (content appeals), or of the channel ban being appealed (stream:user appeals). Empty for a global ban appeal. title: Channel CID type: string x-stream-index: "016" config_key: description: Moderation policy key that was applied title: Config Key type: string x-stream-index: "022" 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" flag_labels: description: Classification labels from automated and manual review items: type: string title: Flag Labels type: array x-stream-index: "018" flag_types: description: Types of flags applied to the entity (e.g. user_report, bodyguard) items: type: string title: Flag Types type: array x-stream-index: "017" flags: description: Per-provider flag records explaining why the action was taken items: $ref: '#/components/schemas/ModerationFlagResponse' title: Flags type: array x-stream-index: "019" id: type: string x-stream-index: "001" languages: description: Detected languages in the content items: type: string title: Languages type: array x-stream-index: "024" moderation_action: $ref: '#/components/schemas/ActionLogResponse' description: 'Latest non-automod action on the entity (deprecated: use original_moderation_action)' title: Moderation Action x-stream-index: "012" original_moderation_action: $ref: '#/components/schemas/ActionLogResponse' description: The original action that triggered this appeal — stable, not overwritten by reject_appeal or mark_reviewed title: Original Moderation Action x-stream-index: "013" recommended_action: description: Action recommended by the automated moderation system (e.g. flag, remove, shadow) title: Recommended Action type: string x-stream-index: "015" review_queue_item_id: description: ID of the review queue item linked to this appeal, if the appeal was submitted with one title: Review Queue Item ID type: string x-stream-index: "023" severity: description: Overall content severity score (1–100) format: int32 title: Severity type: integer x-stream-index: "020" 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 AppealRejectedEvent: description: This event is sent when an appeal is rejected nullable: true properties: appeal: $ref: '#/components/schemas/AppealItemResponse' description: The appeal that was rejected title: Appeal x-stream-index: "002" created_at: format: date-time type: number x-stream-index: "001.003" custom: additionalProperties: {} type: object x-stream-index: "001.007" received_at: format: date-time type: number x-stream-index: "001.004" type: default: appeal.rejected type: string x-stream-index: "001.002" required: - type - created_at - custom title: AppealRejectedEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent 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" channel_cid: description: CID of the channel ban being appealed. Only used when entity_type is stream:user; omit to appeal the global ban. title: Channel CID type: string x-stream-index: "006" 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" review_queue_item_id: description: ID of the review queue item (flagged message) that triggered the ban. Applicable only for user ban appeals. title: Review Queue Item ID type: string x-stream-index: "005" user: $ref: '#/components/schemas/UserRequest' x-stream-index: "007.002" user_id: type: string x-stream-index: "007.001" required: - entity_id - entity_type - appeal_reason 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 AsyncBulkImageModerationEvent: nullable: true properties: created_at: format: date-time type: number x-stream-index: "003.003" custom: additionalProperties: {} type: object x-stream-index: "003.007" finished_at: format: date-time type: number x-stream-index: "002.003" received_at: format: date-time type: number x-stream-index: "003.004" started_at: format: date-time type: number x-stream-index: "002.002" task_id: type: string x-stream-index: "002.001" type: default: export.bulk_image_moderation.success type: string x-stream-index: "003.002" url: type: string x-stream-index: "001" required: - url - task_id - started_at - finished_at - type - created_at - custom title: AsyncBulkImageModerationEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent AsyncExportChannelsEvent: nullable: true properties: created_at: format: date-time type: number x-stream-index: "003.003" custom: additionalProperties: {} type: object x-stream-index: "003.007" finished_at: format: date-time type: number x-stream-index: "002.003" received_at: format: date-time type: number x-stream-index: "003.004" started_at: format: date-time type: number x-stream-index: "002.002" task_id: type: string x-stream-index: "002.001" type: default: export.channels.success type: string x-stream-index: "003.002" url: type: string x-stream-index: "001" required: - url - task_id - started_at - finished_at - type - created_at - custom title: AsyncExportChannelsEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent AsyncExportErrorEvent: nullable: true properties: created_at: format: date-time type: number x-stream-index: "003.003" custom: additionalProperties: {} type: object x-stream-index: "003.007" error: type: string x-stream-index: "001" finished_at: format: date-time type: number x-stream-index: "002.003" received_at: format: date-time type: number x-stream-index: "003.004" started_at: format: date-time type: number x-stream-index: "002.002" task_id: type: string x-stream-index: "002.001" type: default: export.users.error type: string x-stream-index: "003.002" required: - error - task_id - started_at - finished_at - type - created_at - custom title: AsyncExportErrorEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent AsyncExportLabelResultsEvent: nullable: true properties: created_at: format: date-time type: number x-stream-index: "003.003" custom: additionalProperties: {} type: object x-stream-index: "003.007" finished_at: format: date-time type: number x-stream-index: "002.003" received_at: format: date-time type: number x-stream-index: "003.004" started_at: format: date-time type: number x-stream-index: "002.002" task_id: type: string x-stream-index: "002.001" type: default: export.label_results.success type: string x-stream-index: "003.002" url: type: string x-stream-index: "001" required: - url - task_id - started_at - finished_at - type - created_at - custom title: AsyncExportLabelResultsEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent AsyncExportModerationLogsEvent: nullable: true properties: created_at: format: date-time type: number x-stream-index: "003.003" custom: additionalProperties: {} type: object x-stream-index: "003.007" finished_at: format: date-time type: number x-stream-index: "002.003" received_at: format: date-time type: number x-stream-index: "003.004" started_at: format: date-time type: number x-stream-index: "002.002" task_id: type: string x-stream-index: "002.001" type: default: export.moderation_logs.success type: string x-stream-index: "003.002" url: type: string x-stream-index: "001" required: - url - task_id - started_at - finished_at - type - created_at - custom title: AsyncExportModerationLogsEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent AsyncExportReviewQueueEvent: nullable: true properties: created_at: format: date-time type: number x-stream-index: "003.003" custom: additionalProperties: {} type: object x-stream-index: "003.007" finished_at: format: date-time type: number x-stream-index: "002.003" received_at: format: date-time type: number x-stream-index: "003.004" started_at: format: date-time type: number x-stream-index: "002.002" task_id: type: string x-stream-index: "002.001" type: default: export.review_queue.success type: string x-stream-index: "003.002" url: type: string x-stream-index: "001" required: - url - task_id - started_at - finished_at - type - created_at - custom title: AsyncExportReviewQueueEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent AsyncExportUsersEvent: nullable: true properties: created_at: format: date-time type: number x-stream-index: "003.003" custom: additionalProperties: {} type: object x-stream-index: "003.007" finished_at: format: date-time type: number x-stream-index: "002.003" received_at: format: date-time type: number x-stream-index: "003.004" started_at: format: date-time type: number x-stream-index: "002.002" task_id: type: string x-stream-index: "002.001" type: default: export.users.success type: string x-stream-index: "003.002" url: type: string x-stream-index: "001" required: - url - task_id - started_at - finished_at - type - created_at - custom title: AsyncExportUsersEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent AsyncImportErrorEvent: nullable: true properties: created_at: format: date-time type: number x-stream-index: 003.006.003 custom: additionalProperties: {} type: object x-stream-index: 003.006.007 error: type: string x-stream-index: "002" error_code: type: string x-stream-index: "001" finished_at: format: date-time type: number x-stream-index: "003.005" product: type: string x-stream-index: "003.002" received_at: format: date-time type: number x-stream-index: 003.006.004 started_at: format: date-time type: number x-stream-index: "003.004" state: type: string x-stream-index: "003.003" task_id: type: string x-stream-index: "003.001" type: default: import.error type: string x-stream-index: 003.006.002 required: - error_code - error - task_id - product - state - finished_at - type - created_at - custom title: AsyncImportErrorEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent AsyncImportSuccessEvent: nullable: true properties: created_at: format: date-time type: number x-stream-index: 001.006.003 custom: additionalProperties: {} type: object x-stream-index: 001.006.007 finished_at: format: date-time type: number x-stream-index: "001.005" product: type: string x-stream-index: "001.002" received_at: format: date-time type: number x-stream-index: 001.006.004 started_at: format: date-time type: number x-stream-index: "001.004" state: type: string x-stream-index: "001.003" task_id: type: string x-stream-index: "001.001" type: default: import.success type: string x-stream-index: 001.006.002 required: - task_id - product - state - finished_at - type - created_at - custom title: AsyncImportSuccessEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent AsyncModerationCallbackConfig: properties: mode: enum: - CALLBACK_MODE_NONE - CALLBACK_MODE_REST - CALLBACK_MODE_TWIRP type: string x-stream-index: "002" server_url: type: string x-stream-index: "001" type: object AsyncModerationConfiguration: properties: callback: $ref: '#/components/schemas/AsyncModerationCallbackConfig' x-stream-index: "002" timeout_ms: format: int32 type: integer x-stream-index: "001" 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 AudioDefaultDevice: description: The device a call routes audio to by default. enum: - speaker - earpiece title: AudioDefaultDevice type: string AudioSettings: properties: access_request_enabled: type: boolean x-stream-index: "001" default_device: $ref: '#/components/schemas/AudioDefaultDevice' 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 AutomodDetailsResponse: properties: action: type: string x-stream-index: "001" image_labels: items: type: string type: array x-stream-index: "005" message_details: $ref: '#/components/schemas/FlagMessageDetailsResponse' x-stream-index: "004" original_message_type: type: string x-stream-index: "002" result: $ref: '#/components/schemas/MessageModerationResult' x-stream-index: "003" type: object AutomodMode: description: Automod level applied to a channel type. enum: - disabled - simple - AI title: AutomodMode type: string 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 AutomodRule: properties: action: $ref: '#/components/schemas/ModerationAction' 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 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 AutomodSemanticFiltersRule: properties: action: $ref: '#/components/schemas/ModerationAction' 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 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 AzureRequest: description: Config for creating Azure Blob Storage storage properties: abs_account_name: description: The account name title: AccountName type: string x-stream-index: "001" abs_client_id: description: The client id title: ClientID type: string x-stream-index: "003" abs_client_secret: description: The client secret title: ClientSecret type: string x-stream-index: "004" abs_tenant_id: description: The tenant id title: TenantID type: string x-stream-index: "002" required: - abs_account_name - abs_tenant_id - abs_client_id - abs_client_secret title: AzureRequest type: object BackstageSettings: properties: enabled: type: boolean x-stream-index: "001" join_ahead_time_seconds: format: int32 type: integer x-stream-index: "002" required: - enabled 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: $ref: '#/components/schemas/DeleteMessages' description: 'Message deletion mode: soft, pruning, or hard' title: Delete Messages x-stream-description: 'Message deletion mode: soft, pruning, or hard' 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 BanInfoResponse: description: Ban information nullable: true properties: channel: $ref: '#/components/schemas/ChannelMetadata' description: Lightweight info about the channel this ban applies to. Omitted for app-wide bans, or if the moderator does not have access to the channel. title: Channel x-stream-index: "003" channel_cid: description: The channel this ban applies to. Empty if this is an app-wide (global) ban rather than a per-channel ban. title: Channel CID type: string x-stream-index: "002" created_at: description: When the ban was created format: date-time title: Created At type: number x-stream-index: "008" created_by: $ref: '#/components/schemas/UserResponse' description: User who created the ban title: Created By x-stream-index: "007" expires: description: When the ban expires format: date-time title: Expires type: number x-stream-index: "004" reason: description: Reason for the ban title: Reason type: string x-stream-index: "005" shadow: description: Whether this is a shadow ban title: Shadow type: boolean x-stream-index: "006" user: $ref: '#/components/schemas/UserResponse' description: The banned user title: User x-stream-index: "001" required: - created_at title: BanInfo type: object BanOptions: properties: delete_messages: $ref: '#/components/schemas/DeleteMessages' 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 BanRequest: nullable: true properties: ban_from_future_channels: description: Whether to also ban the user from future channels created by the banner title: Ban From Future Channels type: boolean x-stream-index: "011" 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: $ref: '#/components/schemas/DeleteMessages' x-stream-index: "009" delete_reactions: description: Whether to delete reactions by the banned user on other users' messages title: Delete Reactions type: boolean x-stream-index: "010" 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 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 BlockActionRequestPayload: description: Configuration for block action properties: reason: description: Reason for blocking title: Reason type: string x-stream-index: "001" title: BlockActionRequest type: object BlockListConfig: properties: async: type: boolean x-stream-index: "001" enabled: type: boolean x-stream-index: "003" explicit_urls_only: type: boolean x-stream-index: "005" match_substring: type: boolean x-stream-index: "002" rules: items: $ref: '#/components/schemas/BlockListRule' type: array x-stream-index: "004" type: object BlockListOptions: properties: behavior: $ref: '#/components/schemas/ChannelModerationBehavior' description: 'Blocklist behavior. One of: flag, block, shadow_block' title: Behavior x-stream-description: 'Blocklist behavior. One of: flag, block, shadow_block' x-stream-index: "002" blocklist: description: Blocklist name title: Blocklist type: string x-stream-index: "001" required: - blocklist - behavior type: object BlockListResponse: description: Block list contains restricted words properties: created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: "001" id: type: string x-stream-index: "003" is_confusable_folding_enabled: type: boolean x-stream-index: "011" is_leet_check_enabled: type: boolean x-stream-index: "009" is_plural_check_enabled: type: boolean x-stream-index: "010" is_substring_matching_enabled: type: boolean x-stream-index: "012" name: description: Block list name title: Name type: string x-stream-index: "004" owner_user_id: type: string x-stream-index: "008" team: type: string x-stream-index: "007" type: description: 'Block list type. One of: regex, domain, domain_allowlist, email, email_allowlist, word, word_allowlist' title: Type type: string x-stream-index: "005" updated_at: description: Date/time of the last update format: date-time title: Updated at type: number x-stream-index: "002" words: description: List of words to block items: type: string title: Words type: array x-stream-index: "006" required: - name - type - words - is_leet_check_enabled - is_plural_check_enabled - is_confusable_folding_enabled - is_substring_matching_enabled title: Block list type: object x-stream-docs-page-id: block_lists BlockListRule: properties: action: enum: - flag - mask - 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 BlockUsersRequest: nullable: true properties: blocked_user_id: description: User id to block title: BlockedUserID type: string x-stream-index: "001" user: $ref: '#/components/schemas/UserRequest' x-stream-index: "003.002" user_id: type: string x-stream-index: "003.001" required: - blocked_user_id type: object BlockUsersResponse: nullable: true properties: blocked_by_user_id: description: User id who blocked another user title: BlockedByUserID type: string x-stream-index: "002" blocked_user_id: description: User id who got blocked title: BlockedUserID type: string x-stream-index: "003" created_at: description: Timestamp when the user was blocked format: date-time title: CreatedAt type: number x-stream-index: "004" duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "001.001" required: - duration - blocked_by_user_id - blocked_user_id - created_at type: object BlockedUserResponse: nullable: true properties: blocked_user: $ref: '#/components/schemas/UserResponse' description: User who got blocked title: User x-stream-index: "003" blocked_user_id: description: ID of the user who got blocked title: UserID type: string x-stream-index: "004" created_at: format: date-time type: number x-stream-index: "005" user: $ref: '#/components/schemas/UserResponse' description: User who blocked another user title: User x-stream-index: "001" user_id: description: ID of the user who blocked another user title: UserID type: string x-stream-index: "002" required: - user - user_id - blocked_user - blocked_user_id - created_at type: object BlocklistBehavior: description: What a blocklist does when it matches. shadow_block is not accepted on a channel override. enum: - flag - block title: BlocklistBehavior type: string BodyguardImageAnalysisConfig: properties: rules: items: $ref: '#/components/schemas/BodyguardRule' type: array x-stream-index: "001" 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 BodyguardRule: properties: action: enum: - keep - flag - mask - mask_flag - shadow - remove - bounce - bounce_flag - bounce_remove type: string x-stream-index: "002" label: maxLength: 128 type: string x-stream-index: "001" severity_rules: items: $ref: '#/components/schemas/BodyguardSeverityRule' type: array x-stream-index: "003" required: - label type: object BodyguardSeverityRule: properties: action: enum: - keep - flag - mask - 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 BroadcastSettings: properties: enabled: type: boolean x-stream-index: "001" hls: $ref: '#/components/schemas/HLSSettings' x-stream-index: "002" rtmp: $ref: '#/components/schemas/RTMPSettings' x-stream-index: "003" required: - enabled type: object BulkActionAppealsRequest: nullable: true properties: action_type: description: 'Action to apply: unban, restore, unblock, mark_reviewed, or reject_appeal' enum: - unban - restore - unblock - mark_reviewed - reject_appeal title: Action Type type: string x-stream-index: "002" appeal_ids: description: List of appeal UUIDs to process items: type: string maxItems: 100 minItems: 1 title: Appeal IDs type: array x-stream-index: "001" mark_reviewed: $ref: '#/components/schemas/MarkReviewedRequestPayload' description: Configuration for mark_reviewed action (required when action_type is mark_reviewed) title: Mark Reviewed x-stream-index: "006" reject_appeal: $ref: '#/components/schemas/RejectAppealRequestPayload' description: Configuration for reject_appeal action (required when action_type is reject_appeal) title: Reject Appeal x-stream-index: "007" restore: $ref: '#/components/schemas/RestoreActionRequestPayload' description: Configuration for restore action (required when action_type is restore) title: Restore x-stream-index: "004" unban: $ref: '#/components/schemas/UnbanActionRequestPayload' description: Configuration for unban action (required when action_type is unban) title: Unban x-stream-index: "003" unblock: $ref: '#/components/schemas/UnblockActionRequestPayload' deprecated: true description: 'Configuration for unblock action (required when action_type is unblock) Deprecated: Use restore instead, which now also reverses a block or shadow block.' title: Unblock x-stream-deprecated: true x-stream-deprecated-message: Use restore instead, which now also reverses a block or shadow block. x-stream-index: "005" user: $ref: '#/components/schemas/UserRequest' x-stream-index: "008.002" user_id: type: string x-stream-index: "008.001" required: - appeal_ids - action_type type: object BulkActionAppealsResponse: nullable: true properties: duration: type: string x-stream-index: "003.001" errors: description: Appeals that could not be processed, with per-item error messages items: $ref: '#/components/schemas/BulkAppealError' title: Errors type: array x-stream-index: "002" results: description: Successfully processed appeals items: $ref: '#/components/schemas/BulkAppealResult' title: Results type: array x-stream-index: "001" required: - results - errors - duration type: object BulkAppealError: properties: appeal_id: type: string x-stream-index: "001" error: type: string x-stream-index: "002" required: - appeal_id - error type: object BulkAppealResult: properties: appeal_id: type: string x-stream-index: "001" appeal_item: $ref: '#/components/schemas/AppealItemResponse' x-stream-index: "002" required: - appeal_id 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 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 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 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 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 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 BypassActionRequest: properties: enabled: type: boolean x-stream-index: "001" 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 BypassResponse: nullable: true properties: duration: type: string x-stream-index: "001.001" required: - duration 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 CallCustomPropertyParameters: properties: operator: type: string x-stream-index: "002" property_key: type: string x-stream-index: "001" 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 CallSettings: properties: audio: $ref: '#/components/schemas/AudioSettings' x-stream-index: "001" backstage: $ref: '#/components/schemas/BackstageSettings' x-stream-index: "002" broadcasting: $ref: '#/components/schemas/BroadcastSettings' x-stream-index: "009" frame_recording: $ref: '#/components/schemas/FrameRecordSettings' x-stream-index: "006" geofencing: $ref: '#/components/schemas/GeofenceSettings' x-stream-index: "010" individual_recording: $ref: '#/components/schemas/IndividualRecordSettings' x-stream-index: "007" ingress: $ref: '#/components/schemas/IngressSettings' x-stream-index: "016" limits: $ref: '#/components/schemas/LimitsSettings' x-stream-index: "014" raw_recording: $ref: '#/components/schemas/RawRecordSettings' x-stream-index: "008" recording: $ref: '#/components/schemas/RecordSettings' x-stream-index: "005" ring: $ref: '#/components/schemas/RingSettings' x-stream-index: "012" screensharing: $ref: '#/components/schemas/ScreensharingSettings' x-stream-index: "004" session: $ref: '#/components/schemas/SessionSettings' x-stream-index: "015" thumbnails: $ref: '#/components/schemas/ThumbnailsSettings' x-stream-index: "013" transcription: $ref: '#/components/schemas/TranscriptionSettings' x-stream-index: "011" video: $ref: '#/components/schemas/VideoSettings' x-stream-index: "003" type: object CallType: nullable: true properties: app: format: int32 type: integer x-stream-index: "003" created_at: format: date-time type: number x-stream-index: "005" id: format: int32 type: integer x-stream-index: "002" name: type: string x-stream-index: "004" notification_settings: $ref: '#/components/schemas/NotificationSettings' x-stream-index: "008" recording_external_storage: type: string x-stream-index: "009" settings: $ref: '#/components/schemas/CallSettings' x-stream-index: "007" updated_at: format: date-time type: number x-stream-index: "006" required: - id - app - name - created_at - updated_at - recording_external_storage type: object CallTypeRuleParameters: properties: call_type: type: string x-stream-index: "001" type: object CallViolationCountParameters: properties: threshold: format: int32 type: integer x-stream-index: "001" time_window: type: string x-stream-index: "002" type: object CameraFacing: description: Which camera a call opens with. enum: - front - back - external title: CameraFacing type: string CampaignChannelMember: nullable: true properties: channel_role: type: string x-stream-index: "002" custom: additionalProperties: {} type: object x-stream-index: "003" user_id: type: string x-stream-index: "001" required: - user_id type: object CampaignChannelTemplate: properties: custom: additionalProperties: {} type: object x-stream-index: "006" id: type: string x-stream-index: "002" members: items: type: string maxItems: 1000 type: array x-stream-index: "003" members_template: items: $ref: '#/components/schemas/CampaignChannelMember' maxItems: 1000 type: array x-stream-index: "004" team: maxLength: 1000 type: string x-stream-index: "005" type: maxLength: 64 type: string x-stream-index: "001" required: - type type: object CampaignCompletedEvent: nullable: true properties: campaign: $ref: '#/components/schemas/CampaignResponse' x-stream-index: "002" created_at: format: date-time type: number x-stream-index: "001.003" custom: additionalProperties: {} type: object x-stream-index: "001.007" received_at: format: date-time type: number x-stream-index: "001.004" type: default: campaign.completed type: string x-stream-index: "001.002" required: - type - created_at - custom title: CampaignCompletedEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent CampaignMessageTemplate: properties: attachments: items: $ref: '#/components/schemas/Attachment' maxItems: 30 type: array x-stream-index: "002" custom: additionalProperties: {} type: object x-stream-index: "004" poll_id: type: string x-stream-index: "003" searchable: type: boolean x-stream-index: "005" text: type: string x-stream-index: "001" required: - text type: object CampaignResponse: properties: channel_template: $ref: '#/components/schemas/CampaignChannelTemplate' x-stream-index: "017" create_channels: type: boolean x-stream-index: "009" created_at: format: date-time type: number x-stream-index: "021" description: type: string x-stream-index: "011" id: type: string x-stream-index: "001" message_template: $ref: '#/components/schemas/CampaignMessageTemplate' x-stream-index: "016" name: type: string x-stream-index: "008" scheduled_for: format: date-time type: number x-stream-index: "014" segment_ids: items: type: string type: array x-stream-index: "002" segments: items: $ref: '#/components/schemas/Segment' type: array x-stream-index: "003" sender: $ref: '#/components/schemas/UserResponse' x-stream-index: "005" sender_id: type: string x-stream-index: "004" sender_mode: $ref: '#/components/schemas/CampaignSenderMode' x-stream-index: "006" sender_visibility: $ref: '#/components/schemas/CampaignSenderVisibility' x-stream-index: "007" show_channels: type: boolean x-stream-index: "010" skip_push: type: boolean x-stream-index: "012" skip_webhook: type: boolean x-stream-index: "013" stats: $ref: '#/components/schemas/CampaignStatsResponse' x-stream-index: "023" status: type: string x-stream-index: "020" stop_at: format: date-time type: number x-stream-index: "015" updated_at: format: date-time type: number x-stream-index: "022" user_ids: items: type: string type: array x-stream-index: "018" users: items: $ref: '#/components/schemas/UserResponse' type: array x-stream-index: "019" required: - id - segment_ids - segments - sender_id - name - create_channels - show_channels - description - skip_push - skip_webhook - user_ids - users - status - created_at - updated_at - stats type: object CampaignSenderMode: description: Whether a campaign includes or excludes its sender. enum: - exclude - include title: CampaignSenderMode type: string CampaignSenderVisibility: description: How a campaign appears to its sender. enum: - hidden - archived title: CampaignSenderVisibility type: string CampaignStartedEvent: nullable: true properties: campaign: $ref: '#/components/schemas/CampaignResponse' x-stream-index: "002" created_at: format: date-time type: number x-stream-index: "001.003" custom: additionalProperties: {} type: object x-stream-index: "001.007" received_at: format: date-time type: number x-stream-index: "001.004" type: default: campaign.started type: string x-stream-index: "001.002" required: - type - created_at - custom title: CampaignStartedEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent CampaignStatsResponse: properties: progress: format: double type: number x-stream-index: "005" stats_channels_created: format: int32 type: integer x-stream-index: "004" stats_completed_at: format: date-time type: number x-stream-index: "002" stats_messages_sent: format: int32 type: integer x-stream-index: "003" stats_started_at: format: date-time type: number x-stream-index: "001" stats_users_read: format: int32 type: integer x-stream-index: "007" stats_users_sent: format: int32 type: integer x-stream-index: "006" required: - stats_started_at - stats_completed_at - stats_messages_sent - stats_channels_created - progress - stats_users_sent - stats_users_read type: object CancelImportV2TaskResponse: 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 CastPollVoteRequest: nullable: true properties: config_key: description: Key of the moderation configuration to use. Server-side only. title: Config Key type: string x-stream-index: "005" config_team: description: Team associated with the configuration. Server-side only. title: Config Team type: string x-stream-index: "006" user: $ref: '#/components/schemas/UserRequest' x-stream-index: "007.002" user_id: type: string x-stream-index: "007.001" vote: $ref: '#/components/schemas/VoteData' description: Vote data title: VoteData x-stream-index: "004" type: object ChannelBanResponse: nullable: true properties: channel_ban: $ref: '#/components/schemas/ChannelBanScopeResponse' x-stream-index: "004" created_at: format: date-time type: number x-stream-index: "002" future_channel_ban: $ref: '#/components/schemas/ChannelBanScopeResponse' x-stream-index: "005" scopes: items: type: string type: array x-stream-index: "003" user: $ref: '#/components/schemas/UserResponse' x-stream-index: "001" required: - created_at - scopes type: object ChannelBanScopeResponse: properties: banned_by: $ref: '#/components/schemas/UserResponse' x-stream-index: "001" created_at: format: date-time type: number x-stream-index: "005" expires: format: date-time type: number x-stream-index: "002" reason: type: string x-stream-index: "003" shadow: type: boolean x-stream-index: "004" required: - shadow - created_at type: object ChannelBansScopeTotals: properties: channel: format: int32 type: integer x-stream-index: "001" future_channel: format: int32 type: integer x-stream-index: "002" required: - channel - future_channel type: object ChannelBatchCompletedEvent: nullable: true properties: batch_created_at: format: date-time type: number x-stream-index: "002.006" created_at: format: date-time type: number x-stream-index: "001.003" custom: additionalProperties: {} type: object x-stream-index: "001.007" failed_channels: items: $ref: '#/components/schemas/FailedChannelUpdates' type: array x-stream-index: "002.004" finished_at: format: date-time type: number x-stream-index: "002.007" operation: type: string x-stream-index: "002.001" received_at: format: date-time type: number x-stream-index: "001.004" status: type: string x-stream-index: "002.002" success_channels_count: format: int32 type: integer x-stream-index: "002.005" task_id: type: string x-stream-index: "002.003" type: default: channel_batch_update.completed type: string x-stream-index: "001.002" required: - type - created_at - custom - operation - status - task_id - failed_channels - success_channels_count - batch_created_at - finished_at title: ChannelBatchCompletedEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent ChannelBatchMemberRequest: nullable: true properties: channel_role: type: string x-stream-index: "002" user_id: type: string x-stream-index: "001" required: - user_id type: object ChannelBatchStartedEvent: nullable: true properties: batch_created_at: format: date-time type: number x-stream-index: "002.006" created_at: format: date-time type: number x-stream-index: "001.003" custom: additionalProperties: {} type: object x-stream-index: "001.007" failed_channels: items: $ref: '#/components/schemas/FailedChannelUpdates' type: array x-stream-index: "002.004" finished_at: format: date-time type: number x-stream-index: "002.007" operation: type: string x-stream-index: "002.001" received_at: format: date-time type: number x-stream-index: "001.004" status: type: string x-stream-index: "002.002" success_channels_count: format: int32 type: integer x-stream-index: "002.005" task_id: type: string x-stream-index: "002.003" type: default: channel_batch_update.started type: string x-stream-index: "001.002" required: - type - created_at - custom - operation - status - task_id - failed_channels - success_channels_count - batch_created_at - finished_at title: ChannelBatchStartedEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent ChannelBatchUpdateRequest: nullable: true properties: custom_set: additionalProperties: {} description: '`updateData` only. Merges these keys into each channel''s existing custom object, leaving every other custom key untouched. Keys are dot-paths, so `a.b` sets key `b` inside object `a` (the parent object must already exist). Cannot be combined with `data.custom`' title: Custom data to set type: object x-stream-index: "005" custom_unset: description: '`updateData` only. Deletes these keys from each channel''s existing custom object, leaving every other custom key untouched. Keys are dot-paths; deleting a key that does not exist is a no-op. Cannot be combined with `data.custom`' items: type: string title: Custom data to unset type: array x-stream-index: "006" data: $ref: '#/components/schemas/ChannelDataUpdate' x-stream-index: "004" filter: additionalProperties: {} description: Filter to apply to the query title: Filter type: object x-stream-filter-fields: cids: operators: - $eq - $in type: string types: operators: - $eq - $in type: string x-stream-index: "002" hide_history_before: description: Required with the `addMembersHideHistory` operation, and rejected with every other operation including `addMembers`. Hides each matched channel's history before this time from the members the operation adds. Members that already belong to a matched channel are never affected. Must be in RFC3339 format (e.g., "2024-01-01T10:00:00Z") and in the past. format: date-time title: Hide history before type: string x-stream-index: "007" members: items: $ref: '#/components/schemas/ChannelBatchMemberRequest' maxItems: 100 type: array x-stream-index: "003" operation: enum: - addMembers - addMembersHideHistory - removeMembers - inviteMembers - invites - assignRoles - addModerators - demoteModerators - hide - show - archive - unarchive - updateData type: string x-stream-index: "001" synchronous: description: For updateData and hide only. Requires a root cids $eq or $in filter with at most 100 CIDs and no root $or/$and. A synchronous hide also requires 1 to 10 distinct member user IDs. Split larger selections into requests of at most 100 CIDs. A success_channels_count response means the database update completed; a task_id response means it was queued and must be polled, including on older API nodes. title: Synchronous update type: boolean x-stream-index: "008" required: - operation - filter type: object ChannelBatchUpdateResponse: nullable: true properties: duration: type: string x-stream-index: "002.001" success_channels_count: description: Count of channels selected for a completed synchronous database update, not an affected-row count. Concurrent deletion may reduce the rows written. Omitted when the count is 0, which happens for a synchronous hide where none of the member users exist. task_id is absent. format: int32 title: Updated channels type: integer x-stream-index: "003" task_id: description: 'Present for asynchronous updates. Poll this task even if synchronous was requested: an older API node may have queued the update.' title: Task ID type: string x-stream-index: "001" required: - duration type: object ChannelConfig: nullable: true properties: allowed_flag_reasons: items: type: string type: array x-stream-index: "001.028" automod: $ref: '#/components/schemas/AutomodMode' x-stream-index: "001.023" automod_behavior: $ref: '#/components/schemas/ChannelModerationBehavior' x-stream-index: "001.024" automod_thresholds: $ref: '#/components/schemas/Thresholds' x-stream-index: "001.029" blocklist: type: string x-stream-index: "001.025" blocklist_behavior: $ref: '#/components/schemas/ChannelModerationBehavior' x-stream-index: "001.026" blocklists: items: $ref: '#/components/schemas/BlockListOptions' type: array x-stream-index: "001.027" chat_preferences: $ref: '#/components/schemas/ChatPreferences' x-stream-index: "001.034" commands: description: List of commands that channel supports items: type: string title: Commands type: array x-stream-index: "003" connect_events: type: boolean x-stream-index: "001.004" count_messages: type: boolean x-stream-index: "001.020" created_at: format: date-time type: number x-stream-index: "002.003" custom_events: type: boolean x-stream-index: "001.013" delivery_events: type: boolean x-stream-index: "001.005" mark_messages_pending: type: boolean x-stream-index: "001.016" max_message_length: format: int32 type: integer x-stream-index: "001.022" message_retention: type: string x-stream-index: "001.021" mutes: type: boolean x-stream-index: "001.010" name: type: string x-stream-index: "001.001" partition_size: format: int32 type: integer x-stream-index: "001.030" partition_ttl: example: 24h format: duration type: string x-stream-index: "001.031" polls: type: boolean x-stream-index: "001.017" push_level: $ref: '#/components/schemas/PushLevel' description: Sets the push notification level for a channel type title: Push notification level x-stream-description: Sets the push notification level for a channel type x-stream-index: "001.033" push_notifications: type: boolean x-stream-index: "001.014" quotes: type: boolean x-stream-index: "001.009" reactions: type: boolean x-stream-index: "001.007" read_events: type: boolean x-stream-index: "001.003" reminders: type: boolean x-stream-index: "001.015" replies: type: boolean x-stream-index: "001.008" search: type: boolean x-stream-index: "001.006" shared_locations: type: boolean x-stream-index: "001.019" skip_last_msg_update_for_system_msgs: type: boolean x-stream-index: "001.032" typing_events: type: boolean x-stream-index: "001.002" updated_at: format: date-time type: number x-stream-index: "002.004" uploads: type: boolean x-stream-index: "001.011" url_enrichment: type: boolean x-stream-index: "001.012" user_message_reminders: type: boolean x-stream-index: "001.018" required: - 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 - created_at - updated_at - commands type: object ChannelConfigOverrides: description: Channel configuration overrides properties: blocklist: type: string x-stream-index: "008" blocklist_behavior: $ref: '#/components/schemas/BlocklistBehavior' x-stream-index: "009" chat_preferences: $ref: '#/components/schemas/ChatPreferences' x-stream-index: "013" commands: description: List of commands that channel supports items: type: string title: Commands type: array x-stream-index: "011" count_messages: description: Enable/disable message counting title: Count messages type: boolean x-stream-index: "016" grants: additionalProperties: items: type: string type: array title: Grants type: object x-stream-index: "010" x-stream-map: description: List of grants modifiers that apply to a role key: role title: Grants max_message_length: description: Overrides max message length format: int32 maximum: 20000 title: Max Message Length type: integer x-stream-index: "007" push_level: $ref: '#/components/schemas/PushLevel' description: Overrides the push notification level for this channel title: Push Level x-stream-description: Overrides the push notification level for this channel x-stream-index: "012" quotes: description: Enables message quotes title: Quotes type: boolean x-stream-index: "004" reactions: description: Enables or disables reactions title: Reactions type: boolean x-stream-index: "002" replies: description: Enables message replies (threads) title: Replies type: boolean x-stream-index: "003" shared_locations: description: Enable/disable shared locations title: Shared locations type: boolean x-stream-index: "015" typing_events: description: Enables or disables typing events title: Typing events type: boolean x-stream-index: "001" uploads: description: Enables or disables file uploads title: Uploads type: boolean x-stream-index: "005" url_enrichment: description: Enables or disables URL enrichment title: URL Enrichment type: boolean x-stream-index: "006" user_message_reminders: description: Enable/disable user message reminders title: User message reminders type: boolean x-stream-index: "014" type: object ChannelConfigWithInfo: properties: allowed_flag_reasons: items: type: string type: array x-stream-index: 001.002.028 automod: $ref: '#/components/schemas/AutomodMode' x-stream-index: 001.002.023 automod_behavior: $ref: '#/components/schemas/ChannelModerationBehavior' 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: $ref: '#/components/schemas/ChannelModerationBehavior' 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 type: integer x-stream-index: 001.002.022 message_retention: type: string x-stream-index: 001.002.021 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 type: string x-stream-index: 001.002.031 polls: type: boolean x-stream-index: 001.002.017 push_level: $ref: '#/components/schemas/PushLevel' description: Sets the push notification level for a channel type title: Push notification level x-stream-description: Sets the push notification level for a channel type 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 scheduled_messages_max_lead_time_seconds: description: How far ahead, in seconds, a message can be scheduled. Present only when scheduled messages are enabled for the app. A later scheduled_at returns error code 116 (scheduled_at_too_far), whose max_lead_time_seconds carries the same value format: int32 title: Scheduled messages max lead time seconds type: integer x-stream-index: "004" scheduled_messages_max_per_channel: description: Maximum number of scheduled messages (scheduled or sending) a user can have in this channel. Present only when scheduled messages are enabled for the app. Scheduling more returns error code 117 (scheduled_limit_channel) format: int32 title: Scheduled messages max per channel type: integer x-stream-index: "003" scheduled_messages_max_per_user: description: Maximum number of scheduled messages (scheduled or sending) a user can have across all channels. Present only when scheduled messages are enabled for the app. Scheduling more returns error code 118 (scheduled_limit_user) format: int32 title: Scheduled messages max per user type: integer x-stream-index: "006" scheduled_messages_min_lead_time_seconds: description: Minimum time ahead, in seconds, a message is scheduled for. Present only when scheduled messages are enabled for the app. A future scheduled_at closer than this is moved later, to the first whole minute at least this far ahead; it is never rejected format: int32 title: Scheduled messages min lead time seconds type: integer x-stream-index: "005" 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 ChannelContextResponse: description: 'Slim channel object: identity plus creator' properties: cid: description: Channel CID (:) title: CID type: string x-stream-index: "001" created_by: $ref: '#/components/schemas/UserResponse' description: User who created the channel title: Created by x-stream-index: "004" id: description: Channel ID title: ID type: string x-stream-index: "003" type: description: Channel type title: Type type: string x-stream-index: "002" required: - cid - type - id title: Channel context type: object ChannelCreatedEvent: description: Emitted when a channel is successfully created. nullable: true properties: channel: $ref: '#/components/schemas/ChannelResponse' description: The channel object which was created title: Channel x-stream-index: 001.002.001 channel_custom: additionalProperties: {} type: object x-stream-index: 001.001.001.006 channel_id: description: The ID of the channel which was created title: Channel ID type: string x-stream-index: 001.001.002.002 channel_member_count: description: The number of members in the channel format: int32 title: Channel member count type: integer x-stream-index: 001.001.001.004 channel_message_count: format: int64 type: integer x-stream-index: 001.001.001.005 channel_type: description: The type of the channel which was created title: Channel Type type: string x-stream-index: 001.001.002.001 cid: description: The CID of the channel which was created title: Channel CID type: string x-stream-index: 001.001.001.001.002 created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: 001.001.001.001.001.003 custom: additionalProperties: {} type: object x-stream-index: 001.001.001.001.001.007 received_at: format: date-time type: number x-stream-index: 001.001.001.001.001.004 team: description: The team ID title: Team type: string x-stream-index: 001.001.001.003 type: default: channel.created description: 'The type of event: "channel.created" in this case' title: Event Type type: string x-stream-index: 001.001.001.001.001.002 user: $ref: '#/components/schemas/UserResponseCommonFields' description: The user who created the channel title: User x-stream-index: "002.001" required: - type - created_at - custom - channel title: ChannelCreatedEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent ChannelDataUpdate: properties: auto_translation_enabled: type: boolean x-stream-index: "006" auto_translation_language: type: string x-stream-index: "007" config_overrides: $ref: '#/components/schemas/ChannelConfigOverrides' x-stream-index: "005" custom: additionalProperties: {} type: object x-stream-index: "003" disabled: type: boolean x-stream-index: "002" frozen: type: boolean x-stream-index: "001" team: type: string x-stream-index: "004" type: object ChannelDeletedEvent: description: Emitted when a channel is successfully deleted. nullable: true properties: channel: $ref: '#/components/schemas/ChannelResponse' description: The channel object which was deleted title: Channel x-stream-index: 001.002.001 channel_custom: additionalProperties: {} type: object x-stream-index: 001.001.001.006 channel_id: description: The ID of the channel which was deleted title: Channel ID type: string x-stream-index: 001.001.002.002 channel_member_count: description: The number of members in the channel format: int32 title: Channel member count type: integer x-stream-index: 001.001.001.004 channel_message_count: format: int64 type: integer x-stream-index: 001.001.001.005 channel_type: description: The type of the channel which was deleted title: Channel Type type: string x-stream-index: 001.001.002.001 cid: description: The CID of the channel which was deleted title: Channel CID type: string x-stream-index: 001.001.001.001.002 created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: 001.001.001.001.001.003 custom: additionalProperties: {} type: object x-stream-index: 001.001.001.001.001.007 received_at: format: date-time type: number x-stream-index: 001.001.001.001.001.004 team: description: The team ID title: Team type: string x-stream-index: 001.001.001.003 type: default: channel.deleted description: 'The type of event: "channel.deleted" in this case' title: Event Type type: string x-stream-index: 001.001.001.001.001.002 user: $ref: '#/components/schemas/UserResponseCommonFields' description: The user who deleted the channel title: User x-stream-index: "002.001" required: - type - created_at - custom - channel title: ChannelDeletedEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent ChannelExport: properties: cid: type: string x-stream-index: "003" id: description: Channel ID title: ID type: string x-stream-index: "002" messages_since: description: Date to export messages since format: date-time title: Messages since type: string x-stream-index: "004" messages_until: description: Date to export messages until format: date-time title: Messages until type: string x-stream-index: "005" type: description: Channel type title: Type type: string x-stream-index: "001" title: Channel Export type: object ChannelForkResponse: description: A fork of an agent channel properties: channel_cid: description: CID of the fork title: Channel CID type: string x-stream-index: "001.001" copied_message_count: description: Number of messages copied into the fork, once completed. On a failed fork, the number of messages of its history, newest first, copied before the copy failed; the fork can hold a few more format: int32 title: Copied message count type: integer x-stream-index: "001.005" created_at: description: Date/time of the fork format: date-time title: Created at type: number x-stream-index: "001.010" failed_reason: description: 'Why the copy of a failed fork failed: `fork_message_id_taken` (the ID a message is copied under is held by another message; fork into another channel ID) or `message_too_large` (a source message is over a size limit of agent channels: its text, custom data or attachments)' title: Failed reason type: string x-stream-index: "001.008" message_id_map: additionalProperties: type: string description: Maps the ID of each message the request copied, the newest page, to its ID in the fork; short when the request copied less than a page (see `status`). A fork message ID is a UUIDv5 of the fork CID and the source message ID; the fork message IDs endpoint maps any others title: Message ID map type: object x-stream-index: "002" oldest_source_message_id: description: ID, in the source channel, of the oldest message a truncated fork copied. The fork holds no older source message; replies of the oldest copied messages may also have been left out title: Oldest source message ID type: string x-stream-index: "001.007" source_channel_cid: description: CID of the channel the fork was copied from title: Source channel CID type: string x-stream-index: "001.002" source_message_id: description: ID of the message of the source channel the fork was made at title: Source message ID type: string x-stream-index: "001.003" status: description: '`completed` once every message is copied. `backfilling` while a background task copies the history older than the newest page; the fork is usable meanwhile, and the newest messages, which an agent reads, are normally already there. The request reads at most 1,000 source messages: when those are mostly deleted, shadowed or replies shown in the channel, it copies fewer, at least the message the fork is made at, and the task copies the rest. `failed` when the copy failed for good (see `failed_reason`): nothing more is copied, the fork keeps what it holds and is usable, and it no longer counts toward the source''s fork limit' title: Status type: string x-stream-index: "001.004" task_id: description: ID of the task copying the older history of a backfilling fork title: Task ID type: string x-stream-index: "001.009" truncated: description: 'True, once completed, when the source held more than 10,000 messages up to the fork point: the fork holds the newest 10,000 of them' title: Truncated type: boolean x-stream-index: "001.006" required: - channel_cid - source_channel_cid - source_message_id - status - copied_message_count - created_at - message_id_map type: object ChannelForkSummary: description: A fork of an agent channel properties: channel_cid: description: CID of the fork title: Channel CID type: string x-stream-index: "001" copied_message_count: description: Number of messages copied into the fork, once completed. On a failed fork, the number of messages of its history, newest first, copied before the copy failed; the fork can hold a few more format: int32 title: Copied message count type: integer x-stream-index: "005" created_at: description: Date/time of the fork format: date-time title: Created at type: number x-stream-index: "010" failed_reason: description: 'Why the copy of a failed fork failed: `fork_message_id_taken` (the ID a message is copied under is held by another message; fork into another channel ID) or `message_too_large` (a source message is over a size limit of agent channels: its text, custom data or attachments)' title: Failed reason type: string x-stream-index: "008" oldest_source_message_id: description: ID, in the source channel, of the oldest message a truncated fork copied. The fork holds no older source message; replies of the oldest copied messages may also have been left out title: Oldest source message ID type: string x-stream-index: "007" source_channel_cid: description: CID of the channel the fork was copied from title: Source channel CID type: string x-stream-index: "002" source_message_id: description: ID of the message of the source channel the fork was made at title: Source message ID type: string x-stream-index: "003" status: description: '`completed` once every message is copied. `backfilling` while a background task copies the history older than the newest page; the fork is usable meanwhile, and the newest messages, which an agent reads, are normally already there. The request reads at most 1,000 source messages: when those are mostly deleted, shadowed or replies shown in the channel, it copies fewer, at least the message the fork is made at, and the task copies the rest. `failed` when the copy failed for good (see `failed_reason`): nothing more is copied, the fork keeps what it holds and is usable, and it no longer counts toward the source''s fork limit' title: Status type: string x-stream-index: "004" task_id: description: ID of the task copying the older history of a backfilling fork title: Task ID type: string x-stream-index: "009" truncated: description: 'True, once completed, when the source held more than 10,000 messages up to the fork point: the fork holds the newest 10,000 of them' title: Truncated type: boolean x-stream-index: "006" required: - channel_cid - source_channel_cid - source_message_id - status - copied_message_count - created_at type: object ChannelForkedEvent: description: 'Emitted once a fork of an agent channel into a new agent channel is finished, complete or failed (`fork.status` is `completed` or `failed`): on the source channel, and on the fork, whose members are told over WebSocket so a client showing the fork while it was backfilling reads it again. `cid` is the channel the event was sent on; `fork` names both.' nullable: true properties: channel: $ref: '#/components/schemas/ChannelResponse' description: 'The channel the event is sent on: the source, or the fork' title: Channel x-stream-index: 001.002.001 channel_custom: additionalProperties: {} type: object x-stream-index: 001.001.001.006 channel_id: description: The ID of the channel the event is sent on title: Channel ID type: string x-stream-index: 001.001.002.002 channel_member_count: description: The number of members in the channel format: int32 title: Channel member count type: integer x-stream-index: 001.001.001.004 channel_message_count: format: int64 type: integer x-stream-index: 001.001.001.005 channel_type: description: The type of the channel the event is sent on title: Channel Type type: string x-stream-index: 001.001.002.001 cid: description: 'The CID of the channel the event is sent on: the source, or the fork' title: Channel CID type: string x-stream-index: 001.001.001.001.002 created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: 001.001.001.001.001.003 custom: additionalProperties: {} type: object x-stream-index: 001.001.001.001.001.007 fork: $ref: '#/components/schemas/ChannelForkSummary' description: The fork title: Fork x-stream-index: "003" received_at: format: date-time type: number x-stream-index: 001.001.001.001.001.004 team: description: The team ID title: Team type: string x-stream-index: 001.001.001.003 type: default: channel.forked description: 'The type of event: "channel.forked" in this case' title: Event Type type: string x-stream-index: 001.001.001.001.001.002 user: $ref: '#/components/schemas/UserResponseCommonFields' description: The user who forked the channel title: User x-stream-index: "002.001" required: - type - created_at - custom - channel - fork title: ChannelForkedEvent type: object x-stream-docs-beta: true x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent ChannelFrozenEvent: description: Emitted when a channel is successfully frozen. nullable: true properties: channel_id: description: The ID of the channel which was frozen title: Channel ID type: string x-stream-index: 001.002.002 channel_type: description: The type of the channel which was frozen title: Channel Type type: string x-stream-index: 001.002.001 cid: description: The CID of the channel which was frozen title: Channel CID type: string x-stream-index: 001.001.002 created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: 001.001.001.003 custom: additionalProperties: {} type: object x-stream-index: 001.001.001.007 received_at: format: date-time type: number x-stream-index: 001.001.001.004 type: default: channel.frozen description: 'The type of event: "channel.frozen" in this case' title: Event Type type: string x-stream-index: 001.001.001.002 required: - type - created_at - custom title: ChannelFrozenEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent ChannelGetOrCreateRequest: nullable: true properties: data: $ref: '#/components/schemas/ChannelInput' x-stream-index: "003" hide_for_creator: description: Whether this channel will be hidden for the user who created the channel or not title: Hide for creator type: boolean x-stream-index: "007" include_scheduled_messages: description: 'Adds scheduled_messages to the response: the acting user''s own scheduled, sending and failed messages in this channel (server-side requests name the user with data.created_by_id or data.created_by; without one the field is omitted). Absent from the response when there are more than 100 or they could not be loaded; use the scheduled messages query then' title: Include scheduled messages type: boolean x-stream-index: "013" member_custom_include: description: Top-level keys of the message sender's channel-member custom data to include under member.custom (max 8 keys, 64 chars each) items: type: string maxItems: 8 title: Member custom include type: array x-stream-index: "012" members: $ref: '#/components/schemas/PaginationParams' x-stream-index: "010" messages: $ref: '#/components/schemas/MessagePaginationParams' x-stream-index: "009" state: description: Refresh channel state title: State type: boolean x-stream-index: "005" thread_unread_counts: type: boolean x-stream-index: "008" watchers: $ref: '#/components/schemas/PaginationParams' x-stream-index: "011" type: object ChannelHiddenEvent: description: Emitted when a channel is successfully hidden. nullable: true properties: channel: $ref: '#/components/schemas/ChannelResponse' description: The channel object which was hidden title: Channel x-stream-index: 001.002.001 channel_custom: additionalProperties: {} type: object x-stream-index: 001.001.001.006 channel_id: description: The ID of the channel which was hidden title: Channel ID type: string x-stream-index: 001.001.002.002 channel_member_count: description: The number of members in the channel format: int32 title: Channel member count type: integer x-stream-index: 001.001.001.004 channel_message_count: format: int64 type: integer x-stream-index: 001.001.001.005 channel_type: description: The type of the channel which was hidden title: Channel Type type: string x-stream-index: 001.001.002.001 cid: description: The CID of the channel which was hidden title: Channel CID type: string x-stream-index: 001.001.001.001.002 clear_history: description: Whether the history was cleared title: Clear History 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.001.001.001.001.003 custom: additionalProperties: {} type: object x-stream-index: 001.001.001.001.001.007 received_at: format: date-time type: number x-stream-index: 001.001.001.001.001.004 team: description: The team ID title: Team type: string x-stream-index: 001.001.001.003 type: default: channel.hidden description: 'The type of event: "channel.hidden" in this case' title: Event Type type: string x-stream-index: 001.001.001.001.001.002 user: $ref: '#/components/schemas/UserResponseCommonFields' description: The user who hid the channel title: User x-stream-index: "002.001" required: - type - created_at - custom - channel - clear_history title: ChannelHiddenEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent ChannelInput: properties: auto_translation_enabled: description: Enable or disable auto translation title: Auto translation type: boolean x-stream-index: "005" auto_translation_language: description: Language (or comma-separated list of languages) to translate to when auto translation is active title: Auto translation language type: string x-stream-index: "006" config_overrides: $ref: '#/components/schemas/ChannelConfigOverrides' x-stream-index: "024" created_by: $ref: '#/components/schemas/UserRequest' x-stream-index: "009" created_by_id: type: string x-stream-index: "008" custom: additionalProperties: {} type: object x-stream-index: "015" disabled: type: boolean x-stream-index: "014" filter_tags: items: type: string maxItems: 10 type: array x-stream-index: "026" frozen: description: Freeze or unfreeze the channel title: Frozen type: boolean x-stream-index: "013" invites: items: $ref: '#/components/schemas/ChannelMemberRequest' maxItems: 100 type: array x-stream-index: "016" members: items: $ref: '#/components/schemas/ChannelMemberRequest' maxItems: 100 type: array x-stream-index: "018" team: description: Team the channel belongs to (if multi-tenant mode is enabled) title: Team type: string x-stream-index: "004" truncated_by_id: type: string x-stream-index: "010" type: object ChannelInputRequest: properties: auto_translation_enabled: type: boolean x-stream-index: "002" auto_translation_language: type: string x-stream-index: "003" config_overrides: $ref: '#/components/schemas/ConfigOverridesRequest' x-stream-index: "009" created_by: $ref: '#/components/schemas/UserRequest' x-stream-index: "010" custom: additionalProperties: {} type: object x-stream-index: "006" disabled: type: boolean x-stream-index: "005" frozen: type: boolean x-stream-index: "004" invites: items: $ref: '#/components/schemas/ChannelMemberRequest' maxItems: 100 type: array x-stream-index: "007" members: items: $ref: '#/components/schemas/ChannelMemberRequest' maxItems: 100 type: array x-stream-index: "008" team: type: string x-stream-index: "001" type: object ChannelMemberPartialResponse: properties: channel_role: description: Role of the member in the channel title: Channel Role type: string x-stream-index: "001" custom: additionalProperties: {} description: Channel-member custom fields projected via `member_custom_include` title: Custom data type: object x-stream-index: "003" notifications_muted: description: Whether the user muted notifications for this channel title: Notifications muted type: boolean x-stream-index: "002" required: - channel_role - notifications_muted title: Channel member partial type: object ChannelMemberRequest: nullable: true properties: channel_role: description: Role of the member in the channel title: Channel Role type: string x-stream-index: "004" custom: additionalProperties: {} type: object x-stream-index: "003" user: $ref: '#/components/schemas/MemberUserRequest' x-stream-index: "002" user_id: title: User ID type: string x-stream-index: "001" title: Channel member 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" ban_from_future_channels: description: Whether the member's ban also applies to channels the channel's creator will create in the future (an active future channel ban by the creator targets this member) title: Ban from future channels type: boolean x-stream-index: "017" 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: "020" 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: "022" future_channel_ban_expires: description: Expiration date of the future channel ban; absent when the future channel ban is permanent format: date-time title: Future channel ban expires type: number x-stream-index: "018" 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: "021" 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: "019" 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: - user_id - custom - created_at - updated_at - banned - shadow_banned - channel_role - notifications_muted title: Channel member type: object ChannelMessageCountRuleParameters: properties: operator: type: string x-stream-index: "002" threshold: format: int32 type: integer x-stream-index: "001" type: object ChannelMessagesResponse: description: Response containing channel and its messages nullable: true properties: channel: $ref: '#/components/schemas/ChannelResponse' description: Channel title: ChannelResponse x-stream-index: "001" messages: description: List of messages items: $ref: '#/components/schemas/MessageResponse' title: MessageResponse type: array x-stream-index: "002" required: - channel - messages title: ChannelMessagesResponse type: object ChannelMetadata: properties: cid: type: string x-stream-index: "001" custom: additionalProperties: {} type: object x-stream-index: "008" id: type: string x-stream-index: "003" last_message_at: format: date-time type: number x-stream-index: "007" member_count: format: int32 type: integer x-stream-index: "005" message_count: format: int64 type: integer x-stream-index: "006" push_level: $ref: '#/components/schemas/PushLevel' x-stream-index: "009" team: type: string x-stream-index: "004" type: type: string x-stream-index: "002" required: - cid - type - id - custom type: object ChannelModerationBehavior: description: What automod or a blocklist does when it matches. enum: - flag - block - shadow_block title: ChannelModerationBehavior type: string 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 ChannelMutedEvent: description: Emitted when a channel is successfully muted. nullable: true properties: created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: "001.003" custom: additionalProperties: {} type: object x-stream-index: "001.007" mute: $ref: '#/components/schemas/ChannelMute' description: The mute object title: Mute x-stream-index: "003" mutes: description: The mute objects items: $ref: '#/components/schemas/ChannelMute' title: Mutes type: array x-stream-index: "004" received_at: format: date-time type: number x-stream-index: "001.004" type: default: channel.muted description: 'The type of event: "channel.muted" in this case' title: Event Type type: string x-stream-index: "001.002" user: $ref: '#/components/schemas/UserResponseCommonFields' description: The user who muted the channel title: User x-stream-index: "002.001" required: - type - created_at - custom title: ChannelMutedEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent ChannelOwnCapability: description: An action that can be performed in a channel. enum: - ban-channel-members - cast-poll-vote - connect-events - create-attachment - create-mention - delete-any-message - delete-channel - delete-own-message - delivery-events - flag-message - freeze-channel - join-channel - leave-channel - mute-channel - notify-channel - notify-group - notify-here - notify-role - pin-message - query-poll-votes - quote-message - read-events - schedule-message - 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 x-stream-enum-descriptions: ban-channel-members: Ability to ban channel members. cast-poll-vote: Ability to cast a poll vote. connect-events: Ability to receive connect events. create-attachment: Ability to attach files to messages. create-mention: Ability to mention users in messages. delete-any-message: Ability to delete any message from the channel. delete-channel: Ability to delete the channel. delete-own-message: Ability to delete own messages from the channel. delivery-events: Ability to receive delivery events. flag-message: Ability to flag a message. freeze-channel: Ability to freeze or unfreeze the channel. join-channel: Ability to join channel (add own membership). leave-channel: Ability to leave the channel (remove own membership). mute-channel: Ability to mute the channel. notify-channel: Ability to notify all channel members using @channel mention. notify-group: Ability to notify channel members using user group mentions. notify-here: Ability to notify online channel members using @here mention. notify-role: Ability to notify channel members using role mentions. pin-message: Ability to pin a message. query-poll-votes: Ability to query poll votes. quote-message: Ability to quote a message. read-events: Ability to receive read events. schedule-message: Ability to schedule a message to be sent later. search-messages: Ability to use message search. send-custom-events: Ability to send custom events. send-links: Ability to attach links to messages. send-message: Ability to send a message. send-poll: Ability to send a poll. send-reaction: Ability to send reactions. send-reply: Ability to thread reply to a message. send-restricted-visibility-message: Ability to send a message with restricted visibility. send-typing-events: Ability to send and receive typing events. set-channel-cooldown: Ability to enable or disable slow mode. share-location: Ability to share location. skip-slow-mode: Ability to skip the slow mode when it's active. slow-mode: Indicates that channel slow mode is active. typing-events: Ability to send and receive typing events. update-any-message: Ability to update any message in the channel. update-channel: Ability to update channel data. update-channel-members: Ability to update channel members. update-own-message: Ability to update own messages in the channel. update-thread: Ability to update thread data. upload-file: Ability to upload message attachments. ChannelPushPreferencesResponse: description: The push preference details. properties: chat_level: description: The scope level of the push notifications. title: Chat level type: string x-stream-index: "001" chat_preferences: $ref: '#/components/schemas/ChatPreferencesResponse' x-stream-index: "002" disabled_until: description: If provided the notifications will be disabled until the set date. format: date-time title: Disabled until type: number x-stream-index: "003" type: object ChannelResponse: description: Represents channel in chat properties: active_member_count: description: Number of members who are not deactivated or deleted format: int32 title: Active member count type: integer x-stream-index: "029" 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 (or comma-separated list of languages) 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" fork: $ref: '#/components/schemas/ChannelForkSummary' description: 'Set when the channel is a fork of an agent channel: the channel it was copied from, and whether its history is still being copied (`status` is `backfilling` until every message is copied)' title: Fork x-stream-index: "030" 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 ChannelRewindResponse: description: A rewind of an agent channel properties: created_at: description: Date/time of the rewind format: date-time title: Created at type: number x-stream-index: "005" hidden_count_at_rewind: description: Number of messages the rewind hid that were not hidden already format: int32 title: Hidden count at rewind type: integer x-stream-index: "004" id: description: ID of the rewind title: ID type: string x-stream-index: "001" inclusive: description: Whether `message_id` was hidden too title: Inclusive type: boolean x-stream-index: "003" message_id: description: ID of the message the channel was rewound to title: Message ID type: string x-stream-index: "002" required: - id - message_id - inclusive - hidden_count_at_rewind - created_at type: object ChannelRewoundEvent: description: Emitted when an agent channel is rewound to an earlier message. Clients should reload the channel's messages. nullable: true properties: channel: $ref: '#/components/schemas/ChannelResponse' description: The channel after the rewind title: Channel x-stream-index: 001.002.001 channel_custom: additionalProperties: {} type: object x-stream-index: 001.001.001.006 channel_id: description: The ID of the channel which was rewound title: Channel ID type: string x-stream-index: 001.001.002.002 channel_member_count: description: The number of members in the channel format: int32 title: Channel member count type: integer x-stream-index: 001.001.001.004 channel_message_count: format: int64 type: integer x-stream-index: 001.001.001.005 channel_type: description: The type of the channel which was rewound title: Channel Type type: string x-stream-index: 001.001.002.001 cid: description: The CID of the channel which was rewound title: Channel CID type: string x-stream-index: 001.001.001.001.002 created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: 001.001.001.001.001.003 custom: additionalProperties: {} type: object x-stream-index: 001.001.001.001.001.007 received_at: format: date-time type: number x-stream-index: 001.001.001.001.001.004 rewind: $ref: '#/components/schemas/ChannelRewindResponse' description: The rewind title: Rewind x-stream-index: "003" team: description: The team ID title: Team type: string x-stream-index: 001.001.001.003 type: default: channel.rewound description: 'The type of event: "channel.rewound" in this case' title: Event Type type: string x-stream-index: 001.001.001.001.001.002 user: $ref: '#/components/schemas/UserResponseCommonFields' description: The user who rewound the channel title: User x-stream-index: "002.001" required: - type - created_at - custom - channel - rewind title: ChannelRewoundEvent type: object x-stream-docs-beta: true x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent ChannelStateResponse: nullable: true properties: active_live_locations: description: Active live locations in the channel items: $ref: '#/components/schemas/SharedLocationResponseData' title: Active Live Locations type: array x-stream-index: "001.015" channel: $ref: '#/components/schemas/ChannelResponse' x-stream-index: "001.001" cooldown_remaining_ms: description: Milliseconds until the current user's slow mode cool down period ends. Only set on client-side get or create channel and get channel requests while the user is under cool down format: int64 title: Cooldown remaining ms type: integer x-stream-index: "001.016" draft: $ref: '#/components/schemas/DraftResponse' x-stream-index: "001.014" duration: type: string x-stream-index: "002.001" hidden: description: Whether this channel is hidden or not title: Hidden type: boolean x-stream-index: "001.011" hide_messages_before: description: Messages before this date are hidden from the user format: date-time title: Hide messages before type: number x-stream-index: "001.012" members: description: List of channel members items: $ref: '#/components/schemas/ChannelMemberResponse' title: Members type: array x-stream-index: "001.007" membership: $ref: '#/components/schemas/ChannelMemberResponse' description: Current user membership object title: Membership x-stream-index: "001.008" messages: description: List of channel messages items: $ref: '#/components/schemas/MessageResponse' title: Message type: array x-stream-index: "001.002" pending_messages: description: Pending messages that this user has sent items: $ref: '#/components/schemas/PendingMessageResponse' title: Pending messages type: array x-stream-index: "001.013" pinned_messages: description: List of pinned messages in the channel items: $ref: '#/components/schemas/MessageResponse' title: Pinned messages type: array x-stream-docs-page-id: pinned_messages x-stream-index: "001.003" push_preferences: $ref: '#/components/schemas/ChannelPushPreferencesResponse' x-stream-index: "001.009" read: description: List of read states items: $ref: '#/components/schemas/ReadStateResponse' title: Read type: array x-stream-index: "001.006" scheduled_messages: description: The caller's own scheduled, sending and failed messages in this channel. Set only by a client-side GetOrCreateChannel or QueryChannels with include_scheduled_messages; absent when not requested or not known, in which case use the scheduled messages query items: $ref: '#/components/schemas/ScheduledMessageResponse' title: Scheduled messages type: array x-stream-index: "001.017" threads: items: $ref: '#/components/schemas/ThreadStateResponse' type: array x-stream-index: "001.010" watcher_count: description: Number of channel watchers format: int32 title: Watcher count type: integer x-stream-index: "001.004" watchers: description: List of user who is watching the channel items: $ref: '#/components/schemas/UserResponse' title: Watchers type: array x-stream-index: "001.005" required: - messages - pinned_messages - members - threads - duration type: object ChannelStateResponseFields: properties: active_live_locations: description: Active live locations in the channel items: $ref: '#/components/schemas/SharedLocationResponseData' title: Active Live Locations type: array x-stream-index: "015" channel: $ref: '#/components/schemas/ChannelResponse' x-stream-index: "001" cooldown_remaining_ms: description: Milliseconds until the current user's slow mode cool down period ends. Only set on client-side get or create channel and get channel requests while the user is under cool down format: int64 title: Cooldown remaining ms type: integer x-stream-index: "016" draft: $ref: '#/components/schemas/DraftResponse' x-stream-index: "014" hidden: description: Whether this channel is hidden or not title: Hidden type: boolean x-stream-index: "011" hide_messages_before: description: Messages before this date are hidden from the user format: date-time title: Hide messages before type: number x-stream-index: "012" members: description: List of channel members items: $ref: '#/components/schemas/ChannelMemberResponse' title: Members type: array x-stream-index: "007" membership: $ref: '#/components/schemas/ChannelMemberResponse' description: Current user membership object title: Membership x-stream-index: "008" messages: description: List of channel messages items: $ref: '#/components/schemas/MessageResponse' title: Message type: array x-stream-index: "002" pending_messages: description: Pending messages that this user has sent items: $ref: '#/components/schemas/PendingMessageResponse' title: Pending messages type: array x-stream-index: "013" pinned_messages: description: List of pinned messages in the channel items: $ref: '#/components/schemas/MessageResponse' title: Pinned messages type: array x-stream-docs-page-id: pinned_messages x-stream-index: "003" push_preferences: $ref: '#/components/schemas/ChannelPushPreferencesResponse' x-stream-index: "009" read: description: List of read states items: $ref: '#/components/schemas/ReadStateResponse' title: Read type: array x-stream-index: "006" scheduled_messages: description: The caller's own scheduled, sending and failed messages in this channel. Set only by a client-side GetOrCreateChannel or QueryChannels with include_scheduled_messages; absent when not requested or not known, in which case use the scheduled messages query items: $ref: '#/components/schemas/ScheduledMessageResponse' title: Scheduled messages type: array x-stream-index: "017" threads: items: $ref: '#/components/schemas/ThreadStateResponse' type: array x-stream-index: "010" watcher_count: description: Number of channel watchers format: int32 title: Watcher count type: integer x-stream-index: "004" watchers: description: List of user who is watching the channel items: $ref: '#/components/schemas/UserResponse' title: Watchers type: array x-stream-index: "005" required: - messages - pinned_messages - members - threads type: object ChannelTruncatedEvent: description: Emitted when a channel is successfully truncated. nullable: true properties: channel: $ref: '#/components/schemas/ChannelResponse' description: The channel object which was truncated title: Channel x-stream-index: 001.002.001 channel_custom: additionalProperties: {} type: object x-stream-index: 001.001.001.006 channel_id: description: The ID of the channel which was truncated title: Channel ID type: string x-stream-index: 001.001.002.002 channel_member_count: description: The number of members in the channel format: int32 title: Channel member count type: integer x-stream-index: 001.001.001.004 channel_message_count: format: int64 type: integer x-stream-index: 001.001.001.005 channel_type: description: The type of the channel which was truncated title: Channel Type type: string x-stream-index: 001.001.002.001 cid: description: The CID of the channel which was truncated title: Channel CID type: string x-stream-index: 001.001.001.001.002 created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: 001.001.001.001.001.003 custom: additionalProperties: {} type: object x-stream-index: 001.001.001.001.001.007 message: $ref: '#/components/schemas/MessageResponse' description: The message regarding the update title: Message x-stream-index: "002.002" message_id: type: string x-stream-index: "002.001" received_at: format: date-time type: number x-stream-index: 001.001.001.001.001.004 team: description: The team ID title: Team type: string x-stream-index: 001.001.001.003 type: default: channel.truncated description: 'The type of event: "channel.truncated" in this case' title: Event Type type: string x-stream-index: 001.001.001.001.001.002 user: $ref: '#/components/schemas/UserResponseCommonFields' description: The user who truncated the channel title: User x-stream-index: "003.001" required: - type - created_at - custom - channel title: ChannelTruncatedEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent ChannelTypeConfig: nullable: true properties: allowed_flag_reasons: items: type: string type: array x-stream-index: 003.002.028 automod: $ref: '#/components/schemas/AutomodMode' x-stream-index: 003.002.023 automod_behavior: $ref: '#/components/schemas/ChannelModerationBehavior' x-stream-index: 003.002.024 automod_thresholds: $ref: '#/components/schemas/Thresholds' x-stream-index: 003.002.029 blocklist: type: string x-stream-index: 003.002.025 blocklist_behavior: $ref: '#/components/schemas/ChannelModerationBehavior' x-stream-index: 003.002.026 blocklists: items: $ref: '#/components/schemas/BlockListOptions' type: array x-stream-index: 003.002.027 chat_preferences: $ref: '#/components/schemas/ChatPreferences' x-stream-index: 003.002.034 commands: items: $ref: '#/components/schemas/Command' type: array x-stream-index: "003.003" connect_events: type: boolean x-stream-index: 003.002.004 count_messages: type: boolean x-stream-index: 003.002.020 created_at: format: date-time type: number x-stream-index: 003.001.003 custom_events: type: boolean x-stream-index: 003.002.013 delivery_events: type: boolean x-stream-index: 003.002.005 grants: additionalProperties: items: type: string type: array type: object x-stream-index: "002" mark_messages_pending: type: boolean x-stream-index: 003.002.016 max_message_length: format: int32 type: integer x-stream-index: 003.002.022 message_retention: type: string x-stream-index: 003.002.021 mutes: type: boolean x-stream-index: 003.002.010 name: type: string x-stream-index: 003.002.001 partition_size: format: int32 type: integer x-stream-index: 003.002.030 partition_ttl: example: 24h format: duration type: string x-stream-index: 003.002.031 permissions: items: $ref: '#/components/schemas/PolicyRequest' type: array x-stream-index: "001" polls: type: boolean x-stream-index: 003.002.017 push_level: $ref: '#/components/schemas/PushLevel' description: Sets the push notification level for a channel type title: Push notification level x-stream-description: Sets the push notification level for a channel type x-stream-index: 003.002.033 push_notifications: type: boolean x-stream-index: 003.002.014 quotes: type: boolean x-stream-index: 003.002.009 reactions: type: boolean x-stream-index: 003.002.007 read_events: type: boolean x-stream-index: 003.002.003 reminders: type: boolean x-stream-index: 003.002.015 replies: type: boolean x-stream-index: 003.002.008 search: type: boolean x-stream-index: 003.002.006 shared_locations: type: boolean x-stream-index: 003.002.019 skip_last_msg_update_for_system_msgs: type: boolean x-stream-index: 003.002.032 typing_events: type: boolean x-stream-index: 003.002.002 updated_at: format: date-time type: number x-stream-index: 003.001.004 uploads: type: boolean x-stream-index: 003.002.011 url_enrichment: type: boolean x-stream-index: 003.002.012 user_message_reminders: type: boolean x-stream-index: 003.002.018 required: - permissions - grants - 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 ChannelTypeRuleResponse: properties: channel_type: type: string x-stream-index: "001" enabled_at: format: date-time type: number x-stream-index: "003" max_age_hours: format: int32 type: integer x-stream-index: "002" required: - channel_type - max_age_hours - enabled_at type: object ChannelUnFrozenEvent: description: Emitted when a channel is successfully unfrozen. nullable: true properties: channel_id: description: The ID of the channel which was unfrozen title: Channel ID type: string x-stream-index: 001.002.002 channel_type: description: The type of the channel which was unfrozen title: Channel Type type: string x-stream-index: 001.002.001 cid: description: The CID of the channel which was unfrozen title: Channel CID type: string x-stream-index: 001.001.002 created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: 001.001.001.003 custom: additionalProperties: {} type: object x-stream-index: 001.001.001.007 received_at: format: date-time type: number x-stream-index: 001.001.001.004 type: default: channel.unfrozen description: 'The type of event: "channel.unfrozen" in this case' title: Event Type type: string x-stream-index: 001.001.001.002 required: - type - created_at - custom title: ChannelUnFrozenEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent ChannelUnmutedEvent: description: Emitted when a channel is successfully unmuted. nullable: true properties: created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: "001.003" custom: additionalProperties: {} type: object x-stream-index: "001.007" mute: $ref: '#/components/schemas/ChannelMute' description: The mute object title: Mute x-stream-index: "003" mutes: description: The mute objects items: $ref: '#/components/schemas/ChannelMute' title: Mutes type: array x-stream-index: "004" received_at: format: date-time type: number x-stream-index: "001.004" type: default: channel.unmuted description: 'The type of event: "channel.unmuted" in this case' title: Event Type type: string x-stream-index: "001.002" user: $ref: '#/components/schemas/UserResponseCommonFields' description: The user who unmuted the channel title: User x-stream-index: "002.001" required: - type - created_at - custom title: ChannelUnmutedEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent ChannelUpdatedEvent: description: Emitted when a channel is successfully updated. nullable: true properties: channel: $ref: '#/components/schemas/ChannelResponse' description: The channel object which was updated title: Channel x-stream-index: 001.002.001 channel_custom: additionalProperties: {} type: object x-stream-index: 001.001.001.006 channel_id: description: The ID of the channel which was updated title: Channel ID type: string x-stream-index: 001.001.002.002 channel_member_count: description: The number of members in the channel format: int32 title: Channel member count type: integer x-stream-index: 001.001.001.004 channel_message_count: format: int64 type: integer x-stream-index: 001.001.001.005 channel_type: description: The type of the channel which was updated title: Channel Type type: string x-stream-index: 001.001.002.001 cid: description: The CID of the channel which was updated title: Channel CID type: string x-stream-index: 001.001.001.001.002 created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: 001.001.001.001.001.003 custom: additionalProperties: {} type: object x-stream-index: 001.001.001.001.001.007 message: $ref: '#/components/schemas/MessageResponse' description: The message regarding the update title: Message x-stream-index: "002.002" message_id: type: string x-stream-index: "002.001" received_at: format: date-time type: number x-stream-index: 001.001.001.001.001.004 team: description: The team ID title: Team type: string x-stream-index: 001.001.001.003 type: default: channel.updated description: 'The type of event: "channel.updated" in this case' title: Event Type type: string x-stream-index: 001.001.001.001.001.002 user: $ref: '#/components/schemas/UserResponseCommonFields' description: The user who triggered the update title: User x-stream-index: "003.001" required: - type - created_at - custom - channel title: ChannelUpdatedEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent ChannelVisibleEvent: description: Emitted when a channel is successfully shown. nullable: true properties: channel: $ref: '#/components/schemas/ChannelResponse' x-stream-index: 001.002.001 channel_custom: additionalProperties: {} type: object x-stream-index: 001.001.001.006 channel_id: description: The ID of the channel which was shown title: Channel ID type: string x-stream-index: 001.001.002.002 channel_member_count: description: The number of members in the channel format: int32 title: Channel member count type: integer x-stream-index: 001.001.001.004 channel_message_count: format: int64 type: integer x-stream-index: 001.001.001.005 channel_type: description: The type of the channel which was shown title: Channel Type type: string x-stream-index: 001.001.002.001 cid: description: The CID of the channel which was shown title: Channel CID type: string x-stream-index: 001.001.001.001.002 created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: 001.001.001.001.001.003 custom: additionalProperties: {} type: object x-stream-index: 001.001.001.001.001.007 received_at: format: date-time type: number x-stream-index: 001.001.001.001.001.004 team: description: The team ID title: Team type: string x-stream-index: 001.001.001.003 type: default: channel.visible description: 'The type of event: "channel.visible" in this case' title: Event Type type: string x-stream-index: 001.001.001.001.001.002 user: $ref: '#/components/schemas/UserResponseCommonFields' description: The user who showed the channel title: User x-stream-index: "002.001" required: - type - created_at - custom - channel title: ChannelVisibleEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent 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 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 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: "049" deleted_reply_count: format: int32 type: integer x-stream-index: "018" draft: $ref: '#/components/schemas/ChatDraftResponse' x-stream-index: "046" html: type: string x-stream-index: "005" i18n: additionalProperties: type: string type: object x-stream-index: "035" 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/ChannelMemberPartialResponse' x-stream-index: "008" mentioned_channel: type: boolean x-stream-index: "033" mentioned_group_ids: items: type: string type: array x-stream-index: "031" mentioned_groups: items: $ref: '#/components/schemas/UserGroupResponse' type: array x-stream-index: "032" mentioned_here: type: boolean x-stream-index: "034" 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: "041" mml: type: string x-stream-index: "003" moderation: $ref: '#/components/schemas/ChatModerationV2Response' x-stream-index: "044" 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: "040" pinned: type: boolean x-stream-index: "037" pinned_at: format: date-time type: number x-stream-index: "038" pinned_by: $ref: '#/components/schemas/UserResponse' x-stream-index: "039" poll: $ref: '#/components/schemas/PollResponseData' x-stream-index: "043" poll_id: type: string x-stream-index: "042" 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: "047" reply_count: format: int32 type: integer x-stream-index: "017" restricted_visibility: items: type: string type: array x-stream-index: "045" shadowed: type: boolean x-stream-index: "027" shared_location: $ref: '#/components/schemas/ChatSharedLocationResponseData' x-stream-index: "048" show_in_channel: type: boolean x-stream-index: "016" silent: type: boolean x-stream-index: "036" 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 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 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 ChatPreferencesInput: properties: channel_mentions: enum: - all - none type: string x-stream-index: "007" default_preference: enum: - all - none type: string x-stream-index: "001" direct_mentions: enum: - all - none type: string x-stream-index: "002" group_mentions: enum: - all - none type: string x-stream-index: "004" here_mentions: enum: - all - none type: string x-stream-index: "006" role_mentions: enum: - all - none type: string x-stream-index: "003" thread_replies: enum: - all - none type: string x-stream-index: "005" 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 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 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 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 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 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: double type: number x-stream-index: "004" longitude: format: double 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 CheckExternalStorageResponse: description: Basic response information nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "001.001" file_url: type: string x-stream-index: "002" required: - duration - file_url title: Response type: object CheckGCPPubSubRequest: nullable: true properties: gcp_pubsub_event_based_ordering_key_enabled: description: Publish the test message with an ordering key through the regional endpoint, as a hook with ordering enabled would; requires gcp_pubsub_region title: Pub/Sub ordering type: boolean x-stream-index: "003" gcp_pubsub_region: description: GCP region used for the regional Pub/Sub endpoint when ordering is enabled title: Pub/Sub region type: string x-stream-index: "002" gcp_pubsub_topic: description: Fully qualified GCP Pub/Sub topic name (projects/{project}/topics/{topic}) title: Pub/Sub topic type: string x-stream-index: "001" type: object CheckGCPPubSubResponse: nullable: true properties: data: additionalProperties: {} description: Error data title: ReadOnlyData type: object x-stream-index: "003" duration: type: string x-stream-index: "004.001" error: description: Error text title: Error type: string x-stream-index: "002" status: description: 'Validation result. One of: ok, error' title: Status type: string x-stream-index: "001" required: - status - duration type: object CheckPushRequest: description: Check push request nullable: true properties: apn_template: description: Push message template for APN title: APN template type: string x-stream-docs-page-id: push_template x-stream-index: "002" event_type: description: 'Type of event for push templates (default: message.new). One of: message.new, message.updated, reaction.new, reaction.updated, notification.reminder_due, feeds.activity.added, feeds.comment.added, feeds.activity.reaction.added, feeds.comment.reaction.added, feeds.follow.created, feeds.notification_feed.updated' enum: - message.new - message.updated - reaction.new - reaction.updated - notification.reminder_due - feeds.activity.added - feeds.comment.added - feeds.activity.reaction.added - feeds.comment.reaction.added - feeds.follow.created - feeds.notification_feed.updated title: Event type type: string x-stream-index: "008" firebase_data_template: description: Push message data template for Firebase title: Firebase data template type: string x-stream-docs-page-id: push_template x-stream-index: "004" firebase_template: description: Push message template for Firebase title: Firebase template type: string x-stream-docs-page-id: push_template x-stream-index: "003" message_id: description: Message ID to send push notification for title: Message ID type: string x-stream-index: "001" push_provider_name: description: Name of push provider title: Name of push provider type: string x-stream-index: "007" push_provider_type: $ref: '#/components/schemas/PushProviderName' description: 'Push provider type. One of: firebase, apn, huawei, xiaomi' title: Type of push provider x-stream-description: 'Push provider type. One of: firebase, apn, huawei, xiaomi' x-stream-index: "006" skip_devices: description: Don't require existing devices to render templates title: Skip devices type: boolean x-stream-index: "005" user: $ref: '#/components/schemas/UserRequest' x-stream-index: "009.002" user_id: type: string x-stream-index: "009.001" title: CheckPushRequest type: object CheckPushResponse: nullable: true properties: device_errors: additionalProperties: $ref: '#/components/schemas/DeviceErrorInfo' description: Object with device errors title: Device errors type: object x-stream-index: "001" x-stream-map: key: device_id duration: type: string x-stream-index: "008.001" event_type: description: The event type that was tested title: Event type type: string x-stream-index: "004" general_errors: description: List of general errors items: type: string title: General errors type: array x-stream-index: "002" rendered_apn_template: title: Rendered APN template type: string x-stream-index: "005" rendered_firebase_template: title: Rendered Firebase template type: string x-stream-index: "006" rendered_message: additionalProperties: type: string title: Rendered message type: object x-stream-index: "007" skip_devices: description: Don't require existing devices to render templates title: Skip devices type: boolean x-stream-index: "003" required: - duration 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: string x-stream-index: "010" country_code: deprecated: true description: ISO 3166-1 alpha-2 country the content is aimed at (e.g. US, DE). Ignored when country_codes is set, but an invalid value is still rejected with 400. title: Country Code type: string x-stream-deprecated: true x-stream-deprecated-renamed: country_codes x-stream-index: "011" country_codes: description: ISO 3166-1 alpha-2 countries the content is aimed at (e.g. US, DE), up to 300. The first is the primary country. Every country is sent to the AI text and image harm detection engines as country context. Takes precedence over country_code. items: type: string title: Country Codes type: array x-stream-index: "014" 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: "012.002" user_id: type: string x-stream-index: "012.001" required: - entity_type - entity_id - entity_creator_id type: object CheckResponse: nullable: true properties: duration: type: string x-stream-index: "008.001" intent_scores: description: Score (0-100) of each policy intent topic against this request's text, in policy order (test mode only; omitted when the policy has no topics or scoring failed) items: $ref: '#/components/schemas/IntentScoreResponse' title: Intent Scores type: array x-stream-index: "007" item: $ref: '#/components/schemas/ReviewQueueItemResponse' description: Review queue item (present if action != keep) title: Item x-stream-index: "004" llm_model: description: ID of the LLM model that produced the verdict (e.g. gpt-4o-mini). Omitted when no LLM ran synchronously (e.g. Bodyguard-only checks or async moderation) title: LLM Model type: string x-stream-index: "009" llm_reasoning_effort: description: reasoning_effort sent with the LLM request that produced the verdict. Omitted when the request did not send one title: LLM Reasoning Effort type: string x-stream-index: "010" 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' deprecated: true description: 'Rule triggered by evaluation, with resolved actions and escalation details Deprecated: use triggered_rules instead, which lists every triggered rule (content, user, and call)' title: Triggered Rule x-stream-deprecated: true x-stream-deprecated-message: use triggered_rules instead, which lists every triggered rule (content, user, and call) x-stream-index: "005" triggered_rules: description: All moderation rules triggered by this check (content, user, and call rules), with their resolved actions items: $ref: '#/components/schemas/TriggeredRuleResponse' title: Triggered Rules type: array x-stream-index: "006" required: - status - recommended_action - duration 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 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 CheckSNSRequest: nullable: true properties: sns_key: description: AWS SNS access key title: SNS key type: string x-stream-index: "002" sns_secret: description: AWS SNS key secret title: SNS secret type: string x-stream-index: "003" sns_topic_arn: description: AWS SNS topic ARN title: SNS Topic ARN type: string x-stream-index: "001" type: object CheckSNSResponse: nullable: true properties: data: additionalProperties: {} description: Error data title: ReadOnlyData type: object x-stream-index: "003" duration: type: string x-stream-index: "004.001" error: description: Error text title: Error type: string x-stream-index: "002" status: description: 'Validation result. One of: ok, error' title: Status type: string x-stream-index: "001" required: - status - duration type: object CheckSQSRequest: nullable: true properties: sqs_key: description: AWS SQS access key title: SQS key type: string x-stream-index: "002" sqs_secret: description: AWS SQS key secret title: SQS secret type: string x-stream-index: "003" sqs_url: description: AWS SQS endpoint URL title: SQS URL type: string x-stream-index: "001" type: object CheckSQSResponse: nullable: true properties: data: additionalProperties: {} description: Error data title: ReadOnlyData type: object x-stream-index: "003" duration: type: string x-stream-index: "004.001" error: description: Error text title: Error type: string x-stream-index: "002" status: description: 'Validation result. One of: ok, error' title: Status type: string x-stream-index: "001" required: - status - duration type: object ClaimGuestUserRequest: nullable: true properties: guest_user_id: description: ID of the guest user to claim title: Guest user ID type: string x-stream-index: "001" user_id: description: ID of the regular user that claims the guest and receives its channels, messages and reactions title: User ID type: string x-stream-index: "002" required: - guest_user_id - user_id type: object ClaimGuestUserResponse: nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "001.001" task_id: description: ID of the task that moves the guest's channels, messages and reactions to the claiming user title: Task ID type: string x-stream-index: "002" required: - duration - task_id type: object Classification: properties: confidence: format: double type: number x-stream-index: "002" matched_contributors: items: type: string type: array x-stream-index: "005" name: type: string x-stream-index: "001" severity: type: string x-stream-index: "003" subclassifications: items: $ref: '#/components/schemas/Classification' type: array x-stream-index: "004" required: - name 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" severity: type: string x-stream-index: "005" threshold: format: int32 type: integer x-stream-index: "003" time_window: type: string x-stream-index: "004" type: object CollectionStatus: description: Enrichment status of a collection entry. enum: - ok - notfound title: CollectionStatus type: string 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 CommentStatus: description: Moderation status of a comment. enum: - active - deleted - removed - hidden - shadow_blocked title: CommentStatus type: string ConfigOverridesRequest: description: Channel configuration overrides properties: blocklist: description: Blocklist name title: Blocklist type: string x-stream-index: "008" blocklist_behavior: $ref: '#/components/schemas/BlocklistBehavior' description: 'Blocklist behavior. One of: flag, block' title: Blocklist behavior x-stream-description: 'Blocklist behavior. One of: flag, block' x-stream-index: "009" chat_preferences: $ref: '#/components/schemas/ChatPreferences' x-stream-index: "016" commands: description: List of available commands items: type: string title: Commands type: array x-stream-index: "011" count_messages: description: Enable/disable message counting title: Count messages type: boolean x-stream-index: "014" grants: additionalProperties: items: type: string type: array description: Permission grants modifiers title: Grants type: object x-stream-index: "010" max_message_length: description: Maximum message length format: int32 maximum: 20000 title: Max message length type: integer x-stream-index: "007" push_level: $ref: '#/components/schemas/PushLevel' description: Overrides the push notification level for this channel title: Push level x-stream-description: Overrides the push notification level for this channel x-stream-index: "015" quotes: description: Enable/disable quotes title: Quotes type: boolean x-stream-index: "004" reactions: description: Enable/disable reactions title: Reactions type: boolean x-stream-index: "002" replies: description: Enable/disable replies title: Replies type: boolean x-stream-index: "003" shared_locations: description: Enable/disable shared locations title: Shared locations type: boolean x-stream-index: "013" typing_events: description: Enable/disable typing events title: Typing events type: boolean x-stream-index: "001" uploads: description: Enable/disable uploads title: Uploads type: boolean x-stream-index: "005" url_enrichment: description: Enable/disable URL enrichment title: URL enrichment type: boolean x-stream-index: "006" user_message_reminders: description: Enable/disable user message reminders title: User message reminders type: boolean x-stream-index: "012" title: ConfigOverridesRequest type: object ConfigResponse: properties: ai_audio_config: $ref: '#/components/schemas/AIAudioConfigResponse' description: Configuration for AI audio analysis title: AI Audio Config x-stream-index: "012" 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: "021" 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: "020" 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/AIVideoConfigResponse' 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: "022" 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: "016" engine: $ref: '#/components/schemas/ModerationEngineConfigResponse' description: 'Engine for everything the policy moderates (text, audio transcripts, OCR text, usernames): provider llm or nlp, and an optional LLM model. A missing provider follows the app''s LLM moderation setting' title: Engine x-stream-index: "023" flood_config: $ref: '#/components/schemas/FloodConfig' description: Per-user flood detection for the /labels endpoint (identical and similar message detectors) title: Flood Config x-stream-index: "014" intent_config: $ref: '#/components/schemas/IntentConfigResponse' description: Configuration for conversation-level intent analysis (topics, capture cap, cooldowns, score threshold) title: Intent Config x-stream-index: "015" 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" published_version: description: The version of this configuration moderation currently runs format: int32 title: Published Version type: integer x-stream-index: "024" supported_video_call_harm_types: items: type: string type: array x-stream-index: "019" 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: "017" 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: "018" required: - key - team - async - created_at - updated_at - supported_video_call_harm_types type: object ConfigVersionResponse: properties: created_at: description: When this version was saved format: date-time title: Created At type: number x-stream-index: "002" created_by: description: ID of the user who saved this version, empty when saved without a user title: Created By type: string x-stream-index: "003" published: description: Whether this is the version moderation currently runs title: Published type: boolean x-stream-index: "004" version: description: Sequential version number, per key and team format: int32 title: Version type: integer x-stream-index: "001" required: - version - created_at - created_by - published type: object ContentCountRuleParameters: properties: threshold: format: int32 type: integer x-stream-index: "001" time_window: type: string x-stream-index: "002" type: object ContentCountryCodeParameters: properties: country_codes: items: type: string type: array x-stream-index: "002" operator: type: string x-stream-index: "001" type: object ContentCustomPropertyCountParameters: properties: operator: type: string x-stream-index: "002" property_key: type: string x-stream-index: "001" threshold: format: int32 type: integer x-stream-index: "004" time_window: type: string x-stream-index: "005" type: object ContentCustomPropertyParameters: properties: operator: type: string x-stream-index: "002" property_key: type: string x-stream-index: "001" type: object CreateBlockListRequest: description: Block list contains restricted words nullable: true properties: is_confusable_folding_enabled: type: boolean x-stream-index: "003" is_leet_check_enabled: type: boolean x-stream-index: "001" is_plural_check_enabled: type: boolean x-stream-index: "002" is_substring_matching_enabled: type: boolean x-stream-index: "004" name: description: Block list name maxLength: 255 title: Name type: string x-stream-index: "005" team: type: string x-stream-index: "008" type: description: 'Block list type. One of: regex, domain, domain_allowlist, email, email_allowlist, word, word_allowlist' enum: - regex - domain - domain_allowlist - email - email_allowlist - word - word_allowlist title: Type type: string x-stream-index: "007" user: $ref: '#/components/schemas/UserRequest' x-stream-index: "010.002" user_id: type: string x-stream-index: "010.001" words: description: List of words to block items: type: string title: Words type: array x-stream-index: "006" required: - name - words title: Block list type: object x-stream-docs-page-id: block_lists CreateBlockListResponse: description: Basic response information nullable: true properties: blocklist: $ref: '#/components/schemas/BlockListResponse' x-stream-index: "001" duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "002.001" required: - duration title: Response type: object CreateCampaignRequest: nullable: true properties: channel_template: $ref: '#/components/schemas/CampaignChannelTemplate' description: The channel template for the campaign title: Channel Template x-stream-index: "001.013" create_channels: description: Whether to create channels for the campaign, if they don't exist title: Create Channels type: boolean x-stream-index: "001.008" description: description: The description of the campaign title: Description type: string x-stream-index: "001.007" id: maxLength: 255 type: string x-stream-index: "001.001" message_template: $ref: '#/components/schemas/CampaignMessageTemplate' description: The message template for the campaign title: Message Template x-stream-index: "001.012" name: description: The name of the campaign title: Name type: string x-stream-index: "001.006" segment_ids: description: The IDs of the segments to send the campaign to. Duplicate user IDs are removed. Use either user_ids or segment_ids, not both items: type: string maxItems: 25 title: Segment IDs type: array x-stream-index: "001.002" sender_id: description: The user ID of the sender title: Sender ID type: string x-stream-index: "001.004" sender_mode: $ref: '#/components/schemas/CampaignSenderMode' description: The sender mode of the campaign title: Sender Mode x-stream-description: The sender mode of the campaign x-stream-index: "001.005" sender_visibility: $ref: '#/components/schemas/CampaignSenderVisibility' description: The visibility of the created channels for the sender title: Sender Visibility x-stream-description: The visibility of the created channels for the sender x-stream-index: "001.014" show_channels: description: Whether the campaign should show channels, if they are hidden title: Show Channels type: boolean x-stream-index: "001.009" skip_push: description: Whether to skip push notifications title: Skip Push type: boolean x-stream-index: "001.010" skip_webhook: description: Whether to skip webhooks title: Skip Webhook type: boolean x-stream-index: "001.011" user_ids: description: The userIDs to send the campaign to. Use either segment ids or user ids not both items: type: string maxItems: 10000 title: User IDs type: array x-stream-index: "001.003" required: - sender_id - message_template type: object CreateCampaignResponse: description: Basic response information nullable: true properties: campaign: $ref: '#/components/schemas/CampaignResponse' x-stream-index: "001" duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "003.001" users: $ref: '#/components/schemas/PagerResponse' x-stream-index: "002" required: - duration title: Response type: object CreateChannelTypeRequest: nullable: true properties: automod: $ref: '#/components/schemas/AutomodMode' description: 'Automod. One of: disabled, simple, AI' title: Automod x-stream-description: 'Automod. One of: disabled, simple, AI' x-stream-index: "023" automod_behavior: $ref: '#/components/schemas/BlocklistBehavior' description: 'Automod behavior. One of: flag, block' title: Automod behavior x-stream-description: 'Automod behavior. One of: flag, block' x-stream-index: "024" automod_thresholds: $ref: '#/components/schemas/Thresholds' x-stream-index: "031" blocklist: description: Blocklist title: Blocklist type: string x-stream-index: "028" blocklist_behavior: $ref: '#/components/schemas/ChannelModerationBehavior' description: 'Blocklist behavior. One of: flag, block, shadow_block' title: Blocklist behavior x-stream-description: 'Blocklist behavior. One of: flag, block, shadow_block' x-stream-index: "029" blocklists: description: Blocklists items: $ref: '#/components/schemas/BlockListOptions' title: Blocklists type: array x-stream-index: "030" chat_preferences: $ref: '#/components/schemas/ChatPreferences' x-stream-index: "036" commands: description: List of commands that channel supports items: type: string title: Commands type: array x-stream-index: "025" connect_events: description: Connect events title: Connect events type: boolean x-stream-index: "004" count_messages: description: Count messages in channel. title: Count messages type: boolean x-stream-index: "020" custom_events: description: Custom events title: Custom events type: boolean x-stream-index: "013" delivery_events: type: boolean x-stream-index: "005" grants: additionalProperties: items: type: string type: array description: List of grants for the channel type nullable: true title: Grants type: object x-stream-index: "027" mark_messages_pending: description: Mark messages pending title: Mark messages pending type: boolean x-stream-index: "016" max_message_length: description: Max message length format: int32 title: Max message length type: integer x-stream-index: "022" message_retention: description: 'Message retention. One of: infinite, numeric' title: Message retention type: string x-stream-index: "021" mutes: description: Mutes title: Mutes type: boolean x-stream-index: "010" name: description: Channel type name title: Name type: string x-stream-index: "001" partition_size: description: Partition size format: int32 minimum: 10 title: Partition size type: integer x-stream-index: "032" partition_ttl: description: Partition TTL example: 24h format: duration nullable: true title: Partition TTL type: string x-stream-index: "033" permissions: description: List of permissions for the channel type items: $ref: '#/components/schemas/PolicyRequest' title: Permissions type: array x-stream-index: "026" polls: description: Polls title: Polls type: boolean x-stream-index: "017" push_level: $ref: '#/components/schemas/PushLevel' description: 'Default push notification level for the channel type. One of: all, all_mentions, mentions, direct_mentions, none' title: Push level x-stream-description: 'Default push notification level for the channel type. One of: all, all_mentions, mentions, direct_mentions, none' x-stream-index: "035" push_notifications: description: Push notifications title: Push notifications type: boolean x-stream-index: "014" quotes: description: Enables message quotes title: Quotes type: boolean x-stream-index: "008" reactions: description: Reactions title: Reactions type: boolean x-stream-index: "006" read_events: description: Read events title: Read events type: boolean x-stream-index: "003" reminders: description: Enables message reminders title: Reminders type: boolean x-stream-index: "015" replies: description: Replies title: Replies type: boolean x-stream-index: "007" search: description: Search title: Search type: boolean x-stream-index: "009" shared_locations: description: Enables shared location messages title: Shared locations type: boolean x-stream-index: "019" skip_last_msg_update_for_system_msgs: type: boolean x-stream-index: "034" typing_events: description: Typing events title: Typing events type: boolean x-stream-index: "002" uploads: description: Uploads title: Uploads type: boolean x-stream-index: "011" url_enrichment: description: URL enrichment title: URL enrichment type: boolean x-stream-index: "012" user_message_reminders: type: boolean x-stream-index: "018" required: - name - max_message_length - automod - automod_behavior title: CreateChannelTypeRequest type: object CreateChannelTypeResponse: description: Basic response information nullable: true properties: allowed_flag_reasons: items: type: string type: array x-stream-index: 001.001.028 automod: $ref: '#/components/schemas/AutomodMode' x-stream-index: 001.001.023 automod_behavior: $ref: '#/components/schemas/ChannelModerationBehavior' x-stream-index: 001.001.024 automod_thresholds: $ref: '#/components/schemas/Thresholds' x-stream-index: 001.001.029 blocklist: type: string x-stream-index: 001.001.025 blocklist_behavior: $ref: '#/components/schemas/ChannelModerationBehavior' x-stream-index: 001.001.026 blocklists: items: $ref: '#/components/schemas/BlockListOptions' type: array x-stream-index: 001.001.027 chat_preferences: $ref: '#/components/schemas/ChatPreferences' x-stream-index: 001.001.034 commands: items: type: string type: array x-stream-index: "001.003" connect_events: type: boolean x-stream-index: 001.001.004 count_messages: type: boolean x-stream-index: 001.001.020 created_at: format: date-time type: number x-stream-index: 001.002.003 custom_events: type: boolean x-stream-index: 001.001.013 delivery_events: type: boolean x-stream-index: 001.001.005 duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "004.001" grants: additionalProperties: items: type: string type: array type: object x-stream-index: "003" mark_messages_pending: type: boolean x-stream-index: 001.001.016 max_message_length: format: int32 type: integer x-stream-index: 001.001.022 message_retention: type: string x-stream-index: 001.001.021 mutes: type: boolean x-stream-index: 001.001.010 name: type: string x-stream-index: 001.001.001 partition_size: format: int32 type: integer x-stream-index: 001.001.030 partition_ttl: example: 24h format: duration type: string x-stream-index: 001.001.031 permissions: items: $ref: '#/components/schemas/PolicyRequest' type: array x-stream-index: "002" polls: type: boolean x-stream-index: 001.001.017 push_level: $ref: '#/components/schemas/PushLevel' description: Sets the push notification level for a channel type title: Push notification level x-stream-description: Sets the push notification level for a channel type x-stream-index: 001.001.033 push_notifications: type: boolean x-stream-index: 001.001.014 quotes: type: boolean x-stream-index: 001.001.009 reactions: type: boolean x-stream-index: 001.001.007 read_events: type: boolean x-stream-index: 001.001.003 reminders: type: boolean x-stream-index: 001.001.015 replies: type: boolean x-stream-index: 001.001.008 search: type: boolean x-stream-index: 001.001.006 shared_locations: type: boolean x-stream-index: 001.001.019 skip_last_msg_update_for_system_msgs: type: boolean x-stream-index: 001.001.032 typing_events: type: boolean x-stream-index: 001.001.002 updated_at: format: date-time type: number x-stream-index: 001.002.004 uploads: type: boolean x-stream-index: 001.001.011 url_enrichment: type: boolean x-stream-index: 001.001.012 user_message_reminders: type: boolean x-stream-index: 001.001.018 required: - 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 - created_at - updated_at - commands - permissions - grants - duration type: object CreateCommandRequest: description: Create a new command nullable: true properties: args: description: Arguments help text, shown in commands auto-completion maxLength: 255 title: Arguments type: string x-stream-index: "003" description: description: Description, shown in commands auto-completion maxLength: 255 title: Description type: string x-stream-index: "002" name: description: Unique command name maxLength: 255 minLength: 1 title: Name type: string x-stream-index: "001" set: description: Set name used for grouping commands maxLength: 255 title: Set type: string x-stream-index: "004" required: - name - description title: CreateCommandRequest type: object CreateCommandResponse: nullable: true properties: command: $ref: '#/components/schemas/Command' description: Command object title: Command x-stream-index: "001" duration: type: string x-stream-index: "002.001" required: - duration title: CreateCommandResponse type: object CreateDeviceRequest: description: Create device request nullable: true properties: hardware_id: description: Stable physical device identifier used to deduplicate pushes across push providers (e.g. APNs VoIP and Firebase on the same iOS device). Distinct from 'id', which is the push token. maxLength: 255 title: HardwareID type: string x-stream-index: "005" id: description: Device ID maxLength: 255 minLength: 1 title: ID type: string x-stream-index: "001" push_provider: $ref: '#/components/schemas/PushProviderName' description: Push provider title: PushProvider x-stream-description: Push provider x-stream-index: "002" push_provider_name: description: Push provider name title: PushProviderName type: string x-stream-index: "003" user: $ref: '#/components/schemas/UserRequest' x-stream-index: "006.002" user_id: description: '**Server-side only**. User ID which server acts upon' title: User ID type: string x-stream-index: "006.001" voip_token: description: When true the token is for Apple VoIP push notifications title: VoipToken type: boolean x-stream-index: "004" required: - id - push_provider title: CreateDeviceRequest type: object CreateExternalStorageRequest: description: Create external storage nullable: true properties: aws_s3: $ref: '#/components/schemas/S3Request' description: Only required if you want to create an Amazon S3 storage title: AwsS3 x-stream-index: "003.004" azure_blob: $ref: '#/components/schemas/AzureRequest' description: Only required if you want to create an Azure Blob Storage title: AzureBlob x-stream-index: "003.006" bucket: description: The name of the bucket on the service provider title: Bucket type: string x-stream-index: "003.002" gcs_credentials: type: string x-stream-index: "003.005" name: description: The name of the provider, this must be unique title: Name type: string x-stream-index: "001" path: description: The path prefix to use for storing files title: Path type: string x-stream-index: "003.003" storage_type: description: The type of storage to use enum: - s3 - gcs - abs title: StorageType type: string x-stream-index: "003.001" required: - name - storage_type - bucket title: CreateExternalStorageRequest type: object CreateExternalStorageResponse: 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 CreateGuestRequest: nullable: true properties: user: $ref: '#/components/schemas/UserRequest' description: User object which server acts upon title: User x-stream-index: "001" required: - user type: object CreateGuestResponse: nullable: true properties: access_token: description: the access token to authenticate the user title: Access token type: string x-stream-index: "002" duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "003.001" user: $ref: '#/components/schemas/UserResponse' description: User object which server acts upon title: User x-stream-index: "001" required: - user - access_token - duration type: object CreateImportRequest: nullable: true properties: merge_custom: type: boolean x-stream-index: "003" mode: enum: - insert - upsert type: string x-stream-index: "002" path: type: string x-stream-index: "001" required: - path - mode type: object CreateImportResponse: description: Basic response information nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "002.001" import_task: $ref: '#/components/schemas/ImportTask' x-stream-index: "001" required: - duration title: Response type: object CreateImportURLRequest: nullable: true properties: filename: type: string x-stream-index: "001" type: object CreateImportURLResponse: description: Basic response information nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "003.001" path: type: string x-stream-index: "001" upload_url: type: string x-stream-index: "002" required: - path - upload_url - duration title: Response type: object CreateImportV2TaskRequest: description: Client request nullable: true properties: product: enum: - chat - feeds type: string x-stream-index: "001" settings: $ref: '#/components/schemas/ImportV2TaskSettings' x-stream-index: "002" user: $ref: '#/components/schemas/UserRequest' x-stream-index: "004.002" user_id: type: string x-stream-index: "004.001" required: - product - settings title: ClientRequest type: object CreateImportV2TaskResponse: description: Basic response information nullable: true properties: app_pk: format: int32 type: integer x-stream-index: "002" created_at: format: date-time type: number x-stream-index: "006" duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "008.001" id: type: string x-stream-index: "001" product: type: string x-stream-index: "003" settings: $ref: '#/components/schemas/ImportV2TaskSettings' x-stream-index: "005" state: type: integer x-stream-index: "004" updated_at: format: date-time type: number x-stream-index: "007" required: - id - app_pk - product - state - settings - created_at - updated_at - duration title: Response type: object CreatePermissionRequest: nullable: true properties: action: description: Action name this permission is for (e.g. SendMessage) title: Action type: string x-stream-index: "002.003" condition: additionalProperties: {} description: MongoDB style condition which decides whether or not the permission is granted title: Condition type: object x-stream-index: "002.006" description: description: Description of the permission maxLength: 2048 title: Description type: string x-stream-index: "002.002" id: description: Unique permission ID maxLength: 255 title: ID type: string x-stream-index: "001" name: description: Name of the permission maxLength: 100 title: Name type: string x-stream-index: "002.001" owner: description: Whether this permission applies to resource owner or not title: Owner type: boolean x-stream-index: "002.004" same_team: description: Whether this permission applies to teammates (multi-tenancy mode only) title: Same team type: boolean x-stream-index: "002.005" required: - id - name - action - condition type: object CreatePolicyTestSetRequest: nullable: true properties: config_key: description: 'Moderation config key (default: app default)' title: Config Key type: string x-stream-index: "003" mode: description: 'Execution target: ''check'' or ''labels''. Optional — defaults to ''labels'' when the org has the labels API enabled, ''check'' otherwise' title: Mode type: string x-stream-index: "002" name: description: Display name; unique within an app title: Name type: string x-stream-index: "001" rows: description: Messages to test; capped at 1000. Mutually exclusive with seed items: $ref: '#/components/schemas/PolicyTestRow' title: Rows type: array x-stream-index: "005" seed: $ref: '#/components/schemas/PolicyTestSeedSpec' description: Server-side sampling spec; mutually exclusive with rows title: Seed x-stream-index: "006" team: description: Team scope for the config (optional) title: Team type: string x-stream-index: "004" required: - name type: object CreatePollOptionRequest: nullable: true properties: config_key: description: Key of the moderation configuration to use. Server-side only. title: Config Key type: string x-stream-index: "004" config_team: description: Team associated with the configuration. Server-side only. title: Config Team type: string x-stream-index: "005" custom: additionalProperties: {} description: Custom data for this object title: Custom data type: object x-stream-index: "003" text: description: Option text title: string type: string x-stream-index: "002" user: $ref: '#/components/schemas/UserRequest' x-stream-index: "006.002" user_id: type: string x-stream-index: "006.001" required: - text type: object CreatePollRequest: description: Contains all information needed to create a new poll nullable: true properties: allow_answers: description: Indicates whether users can suggest user defined answers title: Allow answers type: boolean x-stream-index: "009" allow_user_suggested_options: type: boolean x-stream-index: "008" config_key: description: Key of the moderation configuration to use. Server-side only. title: Config Key type: string x-stream-index: "013" config_team: description: Team associated with the configuration. Server-side only. title: Config Team type: string x-stream-index: "014" custom: additionalProperties: {} description: Custom data for this object title: Custom data type: object x-stream-index: "012" description: description: A description of the poll title: Description type: string x-stream-index: "003" enforce_unique_vote: description: Indicates whether users can cast multiple votes title: Multiple choice type: boolean x-stream-index: "006" id: maxLength: 255 type: string x-stream-index: "001" is_closed: description: Indicates whether the poll is open for voting title: Is closed type: boolean x-stream-index: "010" max_votes_allowed: description: Indicates the maximum amount of votes a user can cast format: int32 maximum: 10 title: Maximum votes allowed type: integer x-stream-index: "007" name: description: The name of the poll title: Name type: string x-stream-index: "002" options: items: $ref: '#/components/schemas/PollOptionInput' maxItems: 100 type: array x-stream-index: "004" team: maxLength: 255 type: string x-stream-index: "011" user: $ref: '#/components/schemas/UserRequest' x-stream-index: "015.002" user_id: type: string x-stream-index: "015.001" voting_visibility: $ref: '#/components/schemas/VotingVisibility' description: Represents the visibility of votes in a poll. title: Voting visibility x-stream-description: Represents the visibility of votes in a poll. x-stream-index: "005" required: - name title: Create Poll Request type: object CreatePredefinedFilterRequest: nullable: true properties: description: description: The description of the predefined filter maxLength: 256 title: Description type: string x-stream-index: "002" filter: additionalProperties: {} description: Filter to apply to the query minimum: 1 title: Filter type: object x-stream-filter-fields: app_banned: operators: - $eq type: string archived: operators: - $eq type: boolean blocked: operators: - $eq type: boolean channel_role: operators: - $eq - $in type: string cid: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string created_at: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: date created_by_id: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string custom: operators: - $autocomplete - $contains - $eq - $exists - $gt - $gte - $in - $lt - $lte - $q type: object disabled: operators: - $eq type: boolean distinct: operators: - $eq type: boolean filter_tags: operators: - $eq - $in type: string value_types: $eq: array frozen: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: boolean has_unread: accepted_values: - true operators: - $eq type: boolean hidden: operators: - $eq type: boolean id: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string invite: operators: - $eq type: string joined: operators: - $eq type: boolean last_message_at: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: date last_updated: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: date member.user.name: operators: - $autocomplete - $eq type: string member_count: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: number members: operators: - $eq - $in type: string value_types: $eq: array message_count: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: number muted: operators: - $eq type: boolean name: operators: - $autocomplete - $eq - $exists - $gt - $gte - $in - $lt - $lte - $q type: string pinned: operators: - $eq type: boolean team: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string type: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string updated_at: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: date x-stream-index: "004" name: description: The unique name of the predefined filter (alphanumeric, _, - only) maxLength: 255 title: Name type: string x-stream-index: "001" operation: description: The operation this filter is for (e.g., QueryChannels) enum: - QueryChannels title: Operation type: string x-stream-index: "003" sort: items: additionalProperties: {} type: object type: array x-stream-index: "005" required: - name - operation - filter type: object CreatePredefinedFilterResponse: nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "002.001" predefined_filter: $ref: '#/components/schemas/PredefinedFilterResponse' description: Predefined filter title: PredefinedFilterResponse x-stream-index: "001" required: - duration type: object CreateQueueRequest: nullable: true properties: description: maxLength: 512 type: string x-stream-index: "002" filters: additionalProperties: {} type: object x-stream-index: "004" name: maxLength: 255 type: string x-stream-index: "001" sort: items: additionalProperties: {} type: object type: array x-stream-index: "005" type: enum: - personal_view - operational_queue type: string x-stream-index: "003" user: $ref: '#/components/schemas/UserRequest' x-stream-index: "006.002" user_id: type: string x-stream-index: "006.001" required: - name - type type: object CreateReminderRequest: nullable: true properties: expires_at: format: date-time type: string x-stream-index: "002" remind_at: format: date-time type: string x-stream-index: "001" user: $ref: '#/components/schemas/UserRequest' x-stream-index: "004.002" user_id: type: string x-stream-index: "004.001" type: object CreateReminderResponse: description: Basic response information nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "002.001" reminder: $ref: '#/components/schemas/ReminderResponseData' x-stream-index: "001" required: - reminder - duration title: Response type: object CreateRoleRequest: nullable: true properties: name: description: Role name maxLength: 64 title: Name type: string x-stream-index: "001" required: - name type: object CreateRoleResponse: description: Basic response information nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "001.001" role: $ref: '#/components/schemas/Role' x-stream-index: "002" required: - duration - role title: Response type: object CreateSegmentRequest: nullable: true properties: all_sender_channels: description: If true, all sender channels are included in the segment title: AllSenderChannels type: boolean x-stream-index: "007" all_users: description: If true, all users are included in the segment title: AllUsers type: boolean x-stream-index: "006" description: description: The description of the segment (max 256 characters) maxLength: 256 title: Description type: string x-stream-index: "004" filter: additionalProperties: {} description: Filter to apply to the query minimum: 1 title: Filter type: object x-stream-index: "005" id: description: The ID of the segment maxLength: 255 title: ID type: string x-stream-index: "001" name: description: The name of the segment (max 128 characters) maxLength: 128 title: Name type: string x-stream-index: "003" type: description: The type of the segment enum: - user - channel title: Type type: string x-stream-index: "002" required: - type type: object CreateSegmentResponse: description: Basic response information nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "002.001" segment: $ref: '#/components/schemas/SegmentResponse' x-stream-index: "001" required: - duration title: Response type: object CreateUserGroupRequest: description: Request body for creating a user group nullable: true properties: description: description: An optional description for the group maxLength: 1024 title: Description type: string x-stream-index: "003" id: description: Optional user group ID. If not provided, a UUID v7 will be generated maxLength: 255 title: ID type: string x-stream-index: "001" member_ids: description: Optional initial list of user IDs to add as members items: type: string maxItems: 100 title: Member IDs type: array x-stream-index: "005" name: description: The user friendly name of the user group maxLength: 255 minLength: 1 title: Name type: string x-stream-index: "002" team_id: description: Optional team ID to scope the group to a team maxLength: 255 title: Team ID type: string x-stream-index: "004" required: - name title: CreateUserGroupRequest type: object CreateUserGroupResponse: description: Response for creating a user group nullable: true properties: duration: type: string x-stream-index: "002.001" user_group: $ref: '#/components/schemas/UserGroupResponse' description: The created user group title: UserGroup x-stream-index: "001" required: - duration title: CreateUserGroupResponse 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 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 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 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 CustomEvent: nullable: true properties: created_at: format: date-time type: number x-stream-index: "001.003" custom: additionalProperties: {} type: object x-stream-index: "001.007" received_at: format: date-time type: number x-stream-index: "001.004" type: default: '*' type: string x-stream-index: "001.002" required: - type - created_at - custom title: CustomEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent DailyValue: description: Metric value for a specific date properties: date: description: Date in YYYY-MM-DD format title: string type: string x-stream-index: "001" value: description: Metric value for this date format: int64 title: integer type: integer x-stream-index: "002" required: - date - value title: Daily Value type: object Data: properties: id: type: string x-stream-index: "001" required: - id type: object DataDogInfo: properties: api_key: type: string x-stream-index: "001" enabled: type: boolean x-stream-index: "003" site: type: string x-stream-index: "002" type: object DeactivateUserRequest: nullable: true properties: created_by_id: description: ID of the user who deactivated the user title: Created by ID type: string x-stream-index: "003" mark_messages_deleted: description: Makes messages appear to be deleted title: Mark messages deleted type: boolean x-stream-index: "002" type: object DeactivateUserResponse: nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "002.001" user: $ref: '#/components/schemas/UserResponse' description: Deactivated user object title: User x-stream-index: "001" required: - duration type: object DeactivateUsersRequest: description: Deactivate users request nullable: true properties: created_by_id: description: ID of the user who deactivated the users title: Created by ID type: string x-stream-index: "003" mark_channels_deleted: type: boolean x-stream-index: "004" mark_messages_deleted: description: Makes messages appear to be deleted title: Mark messages deleted type: boolean x-stream-index: "002" user_ids: description: User IDs to deactivate items: type: string maxItems: 100 minItems: 1 title: User IDs type: array x-stream-index: "001" required: - user_ids title: DeactivateUsersRequest type: object DeactivateUsersResponse: description: Basic response information nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "002.001" task_id: type: string x-stream-index: "001" required: - task_id - duration title: Response 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 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 DeleteCampaignResponse: 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 DeleteChannelResponse: description: Basic response information nullable: true properties: channel: $ref: '#/components/schemas/ChannelResponse' x-stream-index: "002" duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "001.001" required: - duration title: Response type: object DeleteChannelsRequest: nullable: true properties: cids: description: All channels that should be deleted items: type: string maxItems: 100 minItems: 1 title: Channels CID type: array x-stream-index: "001" hard_delete: description: Server-side only. When true, the channels and all their resources are permanently deleted instead of soft-deleted. title: Hard delete type: boolean x-stream-index: "002" skip_truncate: description: Server-side only. When true, the soft delete preserves message history instead of hiding it, so a later recreation of any of these channel IDs restores the full history. Only supported for distinct channels. Cannot be combined with hard_delete. title: Skip truncate type: boolean x-stream-index: "003" required: - cids type: object DeleteChannelsResponse: nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "003.001" result: additionalProperties: $ref: '#/components/schemas/DeleteChannelsResultResponse' description: Map of channel IDs and their deletion results title: Result type: object x-stream-index: "001" task_id: type: string x-stream-index: "002" required: - duration type: object DeleteChannelsResultResponse: nullable: true properties: error: type: string x-stream-index: "002" status: type: string x-stream-index: "001" required: - status type: object DeleteCommandResponse: nullable: true properties: duration: type: string x-stream-index: "002.001" name: description: Command name title: Name type: string x-stream-index: "001" required: - name - duration title: DeleteCommandResponse 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 DeleteExternalStorageResponse: 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 DeleteHistoryWindowTeamsRequest: nullable: true properties: teams: description: Teams to put back on the app's default history window, 1 to 10, each listed once. A team without full history is ignored items: type: string maxItems: 10 minItems: 1 title: Teams type: array x-stream-index: "001" required: - teams type: object DeleteHistoryWindowTeamsResponse: nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "002.001" teams: description: The teams of the request that had full history and are now back on the default window items: type: string title: Teams type: array x-stream-index: "001" required: - teams - duration type: object DeleteImportV2TaskResponse: 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 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 DeleteMessageResponse: description: Basic response information nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "002.001" message: $ref: '#/components/schemas/MessageResponse' x-stream-index: "001" required: - message - duration title: Response type: object DeleteMessages: description: How a ban or user deletion treats the user's messages. enum: - soft - pruning - hard title: DeleteMessages type: string DeleteModerationConfigResponse: nullable: true properties: duration: type: string x-stream-index: "001.001" required: - duration 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 DeleteModerationTemplateResponse: nullable: true properties: duration: type: string x-stream-index: "001.001" required: - duration type: object DeletePollAnswerRequestPayload: description: Configuration for deleting the free-text poll answer a review item was raised for. Chat polls only. Deletion is permanent; the poll and other votes are kept. properties: reason: description: Reason for deletion title: Reason type: string x-stream-index: "001" title: DeletePollAnswerRequest type: object DeletePollOptionRequestPayload: description: Configuration for deleting the single poll option a review item was raised for. Deletion is permanent; the rest of the poll is kept. properties: option_id: description: Option to delete. Required on an item for a whole poll (create or edit); defaults to the option an add_option / update_option item was raised for maxLength: 255 title: Option ID type: string x-stream-index: "002" reason: description: Reason for deletion title: Reason type: string x-stream-index: "001" title: DeletePollOptionRequest type: object DeletePollRequestPayload: description: Configuration for poll deletion action. Poll deletion is always permanent. properties: reason: description: Reason for deletion title: Reason type: string x-stream-index: "001" title: DeletePollRequest type: object DeleteQueueRequest: nullable: true properties: user: $ref: '#/components/schemas/UserRequest' x-stream-index: "002.002" user_id: type: string x-stream-index: "002.001" 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 DeleteReactionResponse: description: Basic response information nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "003.001" message: $ref: '#/components/schemas/MessageResponse' x-stream-index: "001" reaction: $ref: '#/components/schemas/ReactionResponse' x-stream-index: "002" required: - message - reaction - duration title: Response type: object DeleteReminderResponse: 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 DeleteRetentionPolicyRequest: nullable: true properties: channel_type: type: string x-stream-index: "002" policy: $ref: '#/components/schemas/RetentionPolicyType' x-stream-index: "001" required: - policy type: object DeleteRetentionPolicyResponse: 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 DeleteScheduledMessageResponse: nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "002.001" scheduled_message: $ref: '#/components/schemas/ScheduledMessageResponse' description: The scheduled message title: Scheduled message x-stream-index: "001" required: - scheduled_message - duration type: object DeleteSegmentTargetsRequest: nullable: true properties: target_ids: description: Target IDs items: type: string maxItems: 100 minItems: 1 title: '[]string' type: array x-stream-index: "002" required: - target_ids type: object DeleteUserMessagesRequestPayload: description: Configuration for deleting all of a user's chat messages without banning them or deleting their account properties: channel_cid: description: 'Optional: scope deletion to a single channel (alternative to app-wide deletion)' title: Channel CID type: string x-stream-index: "001" delete_messages: $ref: '#/components/schemas/DeleteMessages' description: 'Message deletion mode: soft, pruning, or hard' title: Delete Messages x-stream-description: 'Message deletion mode: soft, pruning, or hard' x-stream-index: "002" delete_reactions: description: Whether to also delete the user's reactions on other users' messages title: Delete Reactions type: boolean x-stream-index: "003" entity_id: description: ID of the user whose messages should be deleted (alternative to item_id) title: Entity ID type: string x-stream-index: "005" entity_type: description: Type of the entity title: Entity Type type: string x-stream-index: "006" reason: description: Reason for the deletion title: Reason type: string x-stream-index: "004" required: - delete_messages title: DeleteUserMessagesRequest 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 DeleteUsersRequest: nullable: true properties: calls: description: | Calls delete mode. Affected calls are those that include exactly two members, one of whom is the user being deleted. * null or empty string - doesn't delete any calls * soft - marks user's calls and their related data as deleted (soft-delete) * hard - deletes user's calls and their data completely (hard-delete) enum: - soft - hard title: Delete User's calls type: string x-stream-index: 001.002.004 conversations: description: | Conversation channels delete mode. Conversation channel is any channel which only has two members one of which is the user being deleted. * null or empty string - doesn't delete any conversation channels, unless user is 'hard', in which case it defaults to 'hard' * soft - marks all conversation channels as deleted (same effect as Delete Channels with 'hard' option disabled) * hard - deletes channel and all its data completely including messages (same effect as Delete Channels with 'hard' option enabled) * keep - doesn't delete any conversation channels. Use it with user 'hard', where null or empty string defaults to 'hard' enum: - soft - hard - keep title: Delete Conversations type: string x-stream-index: 001.002.003 files: description: | Delete user files. * false or empty string - doesn't delete any files * true - deletes all files uploaded by the user, including images and attachments. title: Delete User's files type: boolean x-stream-index: 001.002.005 messages: description: | Message delete mode. * null or empty string - doesn't delete user messages * soft - marks all user messages as deleted without removing any related message data * pruning - marks all user messages as deleted, nullifies message information and removes some message data such as reactions and flags * hard - deletes messages completely with all related information enum: - soft - pruning - hard title: Delete Messages type: string x-stream-index: 001.002.002 new_call_owner_id: type: string x-stream-index: 001.002.007 new_channel_owner_id: type: string x-stream-index: 001.002.006 user: description: | User delete mode. * soft - marks user as deleted and retains all user data * pruning - marks user as deleted and nullifies user information * hard - deletes user completely. Requires 'hard' option for messages, and 'hard' or 'keep' option for conversations enum: - soft - pruning - hard title: Delete User type: string x-stream-index: 001.002.001 user_ids: description: IDs of users to delete items: type: string maxItems: 100 minItems: 1 title: User IDs type: array x-stream-index: "001.001" required: - user_ids type: object DeleteUsersResponse: nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "002.001" task_id: description: ID of the task to delete users title: Task ID type: string x-stream-index: "001" required: - task_id - duration type: object DeliveredMessagePayload: properties: cid: type: string x-stream-index: "001" id: type: string x-stream-index: "002" type: object DeliveryReceiptsResponse: description: The settings for the delivery receipt events. properties: enabled: type: boolean x-stream-index: "001" required: - enabled type: object DetectedURLResponse: properties: source: description: 'Where it was found: `qr` (decoded from a QR code in an image), `ocr` (in text visible in an image) or `text` (in a moderated text).' title: Source type: string x-stream-index: "002" url: description: The URL as found. title: URL type: string x-stream-index: "001" required: - url type: object DeviceErrorInfo: properties: error_message: type: string x-stream-index: "003" provider: type: string x-stream-index: "001" provider_name: type: string x-stream-index: "002" required: - provider - provider_name - error_message type: object DeviceResponse: description: An object representing a device which can receive push notifications. nullable: true properties: created_at: description: The date when the device was created. 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" hardware_id: description: Stable physical device identifier used to deduplicate pushes across push providers title: HardwareID type: string x-stream-index: "008" id: description: The device identifier. title: ID type: string x-stream-index: "003" push_provider: $ref: '#/components/schemas/PushProviderName' description: Push provider title: PushProvider x-stream-description: Push provider 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: "009" 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 DraftPayloadResponse: description: Contains the draft message content properties: attachments: description: Array of message attachments items: $ref: '#/components/schemas/Attachment' title: Message attachments type: array x-stream-docs-page-id: message_format#attachment-format x-stream-index: "004" custom: additionalProperties: {} type: object x-stream-index: "007" html: description: Contains HTML markup of the message title: HTML content type: string x-stream-index: "010" id: description: Message ID is unique string identifier of the message title: ID type: string x-stream-index: "001" mentioned_users: description: List of mentioned users items: $ref: '#/components/schemas/UserResponse' title: Mentioned Users type: array x-stream-index: "008" mml: description: MML content of the message title: Messaging Markup Language type: string x-stream-docs-page-id: mml_overview x-stream-index: "003" parent_id: description: ID of parent message (thread) title: Parent message ID type: string x-stream-docs-page-id: threads x-stream-index: "005" poll_id: description: Identifier of the poll to include in the message title: Poll ID type: string x-stream-index: "013" quoted_message_id: title: ID of quoted message type: string x-stream-docs-page-id: threads#quote-message x-stream-index: "009" show_in_channel: description: Whether thread reply should be shown in the channel as well title: Show in channel type: boolean x-stream-docs-page-id: threads x-stream-index: "006" silent: description: Whether message is silent or not title: Silent type: boolean x-stream-index: "012" text: description: Text of the message title: Text type: string x-stream-index: "002" type: description: 'Contains type of the message. One of: regular, system' title: Message Type type: string x-stream-docs-page-id: message_format#message-types x-stream-index: "011" required: - id - text - custom title: Draft Message Payload type: object DraftResponse: properties: channel: $ref: '#/components/schemas/ChannelResponse' x-stream-index: "003" channel_cid: type: string x-stream-index: "002" created_at: format: date-time type: number x-stream-index: "007" message: $ref: '#/components/schemas/DraftPayloadResponse' x-stream-index: "001" parent_id: type: string x-stream-index: "004" parent_message: $ref: '#/components/schemas/MessageResponse' x-stream-index: "005" quoted_message: $ref: '#/components/schemas/MessageResponse' x-stream-index: "006" required: - message - channel_cid - created_at 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: double type: number x-stream-index: "010" target: $ref: '#/components/schemas/Data' x-stream-index: "006" time: type: string x-stream-index: "007" to: items: type: string type: array x-stream-index: "009" verb: type: string x-stream-index: "003" 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: type: string 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: type: string 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 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 ErrorResult: properties: description: type: string x-stream-index: "002" stacktrace: type: string x-stream-index: "003" type: type: string x-stream-index: "001" version: type: string x-stream-index: "004" required: - type - description 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 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 EventHook: nullable: true properties: callback: $ref: '#/components/schemas/AsyncModerationCallbackConfig' x-stream-index: 023.001.002 created_at: format: date-time type: number x-stream-dual-direction-date: true x-stream-index: "024" enabled: type: boolean x-stream-index: "003" event_types: items: type: string type: array x-stream-index: "004" failover_config: $ref: '#/components/schemas/WebhookFailoverConfig' x-stream-index: "023.005" gcp_pubsub_auth_type: type: string x-stream-index: "019" gcp_pubsub_event_based_ordering_key_enabled: type: boolean x-stream-index: "023.004" gcp_pubsub_region: type: string x-stream-index: "020" gcp_pubsub_topic: type: string x-stream-index: "018" hook_type: type: string x-stream-index: "002" id: type: string x-stream-index: "001" product: type: string x-stream-index: "021" should_send_custom_events: type: boolean x-stream-index: "022" sns_auth_type: type: string x-stream-index: "014" sns_event_based_message_group_id_enabled: type: boolean x-stream-index: "023.002" sns_key: type: string x-stream-index: "015" sns_region: type: string x-stream-index: "013" sns_role_arn: type: string x-stream-index: "017" sns_secret: type: string x-stream-index: "016" sns_topic_arn: type: string x-stream-index: "012" sqs_auth_type: type: string x-stream-index: "008" sqs_event_based_message_group_id_enabled: type: boolean x-stream-index: "023.003" sqs_key: type: string x-stream-index: "009" sqs_queue_url: type: string x-stream-index: "006" sqs_region: type: string x-stream-index: "007" sqs_role_arn: type: string x-stream-index: "011" sqs_secret: type: string x-stream-index: "010" timeout_ms: format: int32 type: integer x-stream-index: 023.001.001 updated_at: format: date-time type: number x-stream-dual-direction-date: true x-stream-index: "025" webhook_url: type: string x-stream-index: "005" type: object EventNotificationSettings: properties: apns: $ref: '#/components/schemas/APNS' x-stream-index: "002" enabled: type: boolean x-stream-index: "001" fcm: $ref: '#/components/schemas/FCM' x-stream-index: "003" required: - enabled - apns - fcm type: object EventRequest: properties: custom: additionalProperties: {} type: object x-stream-index: "003" parent_id: type: string x-stream-index: "002" type: type: string x-stream-index: "001" user: $ref: '#/components/schemas/UserRequest' x-stream-index: "004.002" user_id: type: string x-stream-index: "004.001" required: - type type: object EventResponse: description: Basic response information nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "002.001" event: $ref: '#/components/schemas/WSEvent' x-stream-index: "001" required: - event - duration title: Response type: object ExportChannelsRequest: nullable: true properties: channels: description: Export options for channels items: $ref: '#/components/schemas/ChannelExport' maxItems: 100 minItems: 1 title: Channels type: array x-stream-index: "002.001" clear_deleted_message_text: description: Set if deleted message text should be cleared title: Clear deleted message text type: boolean x-stream-index: "002.002" export_users: type: boolean x-stream-index: "002.005" format: description: 'Output format: ''json'' (default) or ''csv''. csv requires version=v2 and is incompatible with export_users' enum: - json - csv title: Format type: string x-stream-index: "002.006" include_fields: description: 'For csv format: subset of message columns to include (defaults to a standard set)' items: type: string title: Include fields type: array x-stream-index: "002.007" include_soft_deleted_channels: description: Set if you want to include deleted channels title: Include soft deleted channels type: boolean x-stream-index: "002.004" include_truncated_messages: description: Set if you want to include truncated messages title: Include truncated messages type: boolean x-stream-index: "002.003" version: description: Export version title: Version type: string x-stream-index: "001" required: - channels type: object ExportChannelsResponse: nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "002.001" task_id: description: ID of the task to export channels title: Task ID type: string x-stream-index: "001" required: - task_id - duration type: object ExportUserResponse: nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "004.001" messages: description: List of exported messages items: $ref: '#/components/schemas/MessageResponse' title: Messages type: array x-stream-index: "002" reactions: description: List of exported reactions items: $ref: '#/components/schemas/ReactionResponse' title: Reactions type: array x-stream-index: "003" user: $ref: '#/components/schemas/UserResponse' description: Exported user object title: User x-stream-index: "001" required: - duration type: object ExportUsersRequest: nullable: true properties: user_ids: items: type: string maxItems: 25 minItems: 1 type: array x-stream-index: "001" required: - user_ids type: object ExportUsersResponse: description: Basic response information nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "002.001" task_id: type: string x-stream-index: "001" required: - task_id - duration title: Response type: object ExternalStorageResponse: properties: bucket: type: string x-stream-index: "003" name: type: string x-stream-index: "001" path: type: string x-stream-index: "004" type: enum: - s3 - gcs - abs type: string x-stream-index: "002" required: - name - type - bucket - path type: object FCM: properties: data: additionalProperties: {} type: object x-stream-index: "001" type: object FailedChannelUpdates: properties: cids: items: type: string type: array x-stream-index: "002" reason: type: string x-stream-index: "001" required: - reason - cids type: object FeatureActivationMode: description: Whether a call feature is available, disabled, or turned on automatically. enum: - available - disabled - auto-on title: FeatureActivationMode type: string FeedVisibility: description: Who can see and follow a feed. enum: - public - visible - followers - members - private title: FeedVisibility type: string FeedsActivityLocation: properties: lat: format: double type: number x-stream-index: "001" lng: format: double type: number x-stream-index: "002" required: - lat - lng 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 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: $ref: '#/components/schemas/CollectionStatus' 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 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: $ref: '#/components/schemas/FeedVisibility' 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 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 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" parent_id: type: string x-stream-index: "005" user_id: type: string x-stream-index: "002" required: - id - user_id - comment type: object FeedsNotificationContext: properties: target: $ref: '#/components/schemas/FeedsNotificationTarget' x-stream-index: "002" trigger: $ref: '#/components/schemas/FeedsNotificationTrigger' x-stream-index: "001" 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 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 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 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 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 FeedsShareResponse: properties: activity_id: type: string x-stream-index: "002" created_at: format: date-time type: number x-stream-index: "003" user: $ref: '#/components/schemas/UserResponse' x-stream-index: "001" required: - user - activity_id - created_at 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: "033" collections: additionalProperties: $ref: '#/components/schemas/FeedsEnrichedCollectionResponse' type: object x-stream-index: "042" comment_count: format: int32 type: integer x-stream-index: "032" 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: "045" custom: additionalProperties: {} type: object x-stream-index: "012" deleted_at: format: date-time type: number x-stream-index: "025" edited_at: format: date-time type: number x-stream-index: "024" expires_at: format: date-time type: number x-stream-index: "026" feeds: items: type: string type: array x-stream-index: "004" filter_tags: items: type: string type: array x-stream-index: "028" friend_reaction_count: format: int32 type: integer x-stream-index: "044" friend_reactions: items: $ref: '#/components/schemas/FeedsReactionResponse' type: array x-stream-index: "043" hidden: type: boolean x-stream-index: "046" i18n: additionalProperties: type: string type: object x-stream-index: "020" id: type: string x-stream-index: "001" interest_tags: items: type: string type: array x-stream-index: "029" is_read: type: boolean x-stream-index: "050" is_seen: type: boolean x-stream-index: "049" is_watched: type: boolean x-stream-index: "048" latest_reactions: items: $ref: '#/components/schemas/FeedsReactionResponse' type: array x-stream-index: "037" latest_shares: items: $ref: '#/components/schemas/FeedsShareResponse' type: array x-stream-index: "038" location: $ref: '#/components/schemas/FeedsActivityLocation' x-stream-index: "021" mentioned_users: items: $ref: '#/components/schemas/UserResponse' type: array x-stream-index: "011" metrics: additionalProperties: format: int64 type: integer type: object x-stream-index: "036" moderation: $ref: '#/components/schemas/ModerationV2Response' x-stream-index: "030" moderation_action: type: string x-stream-index: "031" notification_context: $ref: '#/components/schemas/FeedsNotificationContext' x-stream-index: "013" own_bookmarks: items: $ref: '#/components/schemas/FeedsBookmarkResponse' type: array x-stream-index: "041" own_reactions: items: $ref: '#/components/schemas/FeedsReactionResponse' type: array x-stream-index: "040" parent: $ref: '#/components/schemas/FeedsV3ActivityResponse' x-stream-index: "022" poll: $ref: '#/components/schemas/PollResponseData' x-stream-index: "023" popularity: format: int32 type: integer x-stream-index: "014" preview: type: boolean x-stream-index: "047" reaction_count: format: int32 type: integer x-stream-index: "035" reaction_groups: additionalProperties: $ref: '#/components/schemas/FeedsReactionGroupResponse' type: object x-stream-index: "039" restrict_replies: $ref: '#/components/schemas/RestrictReplies' x-stream-index: "007" score: format: double type: number x-stream-index: "015" score_vars: additionalProperties: {} type: object x-stream-index: "016" search_data: additionalProperties: {} type: object x-stream-index: "027" selector_source: type: string x-stream-index: "017" share_count: format: int32 type: integer x-stream-index: "034" 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: $ref: '#/components/schemas/ActivityVisibility' 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 FeedsV3CommentResponse: properties: attachments: items: $ref: '#/components/schemas/Attachment' type: array x-stream-index: "012" bookmark_count: format: int32 type: integer x-stream-index: "024" confidence_score: format: double type: number x-stream-index: "026" controversy_score: format: double type: number x-stream-index: "027" created_at: format: date-time type: number x-stream-index: "016" custom: additionalProperties: {} type: object x-stream-index: "007" deleted_at: format: date-time type: number x-stream-index: "019" downvote_count: format: int32 type: integer x-stream-index: "023" edited_at: format: date-time type: number x-stream-index: "018" hidden: type: boolean x-stream-index: "014" i18n: additionalProperties: type: string type: object x-stream-index: "006" id: type: string x-stream-index: "001" latest_reactions: items: $ref: '#/components/schemas/FeedsReactionResponse' type: array x-stream-index: "010" mentioned_users: items: $ref: '#/components/schemas/UserResponse' type: array x-stream-index: "013" moderation: $ref: '#/components/schemas/ModerationV2Response' x-stream-index: "020" 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: "028" parent_id: type: string x-stream-index: "008" reaction_count: format: int32 type: integer x-stream-index: "009" reaction_groups: additionalProperties: $ref: '#/components/schemas/FeedsReactionGroupResponse' type: object x-stream-index: "011" reply_count: format: int32 type: integer x-stream-index: "021" score: format: int32 type: integer x-stream-index: "025" status: $ref: '#/components/schemas/CommentStatus' x-stream-index: "015" text: type: string x-stream-index: "005" updated_at: format: date-time type: number x-stream-index: "017" upvote_count: format: int32 type: integer x-stream-index: "022" user: $ref: '#/components/schemas/UserResponse' x-stream-index: "004" required: - id - object_id - object_type - user - reaction_count - mentioned_users - hidden - status - created_at - updated_at - reply_count - upvote_count - downvote_count - bookmark_count - score - confidence_score - own_reactions 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 FileUploadConfig: properties: allowed_file_extensions: items: type: string type: array x-stream-index: "001" allowed_mime_types: items: type: string type: array x-stream-index: "003" blocked_file_extensions: items: type: string type: array x-stream-index: "002" blocked_mime_types: items: type: string type: array x-stream-index: "004" size_limit: format: int32 maximum: 104857600 minimum: 0 type: integer x-stream-index: "005" required: - size_limit type: object FileUploadRequest: nullable: true properties: file: description: file field title: File type: string x-stream-index: "001" user: $ref: '#/components/schemas/OnlyUserID' description: user for the request **server side only** title: User x-stream-index: "002" type: object FileUploadResponse: nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "003.001" file: description: URL to the uploaded asset. Should be used to put to `asset_url` attachment field title: File type: string x-stream-index: "001" thumb_url: description: URL of the file thumbnail for supported file formats. Should be put to `thumb_url` attachment field title: Thumbnail URL type: string x-stream-index: "002" required: - duration type: object FilterConfigResponse: properties: ai_image_labels: description: 'AI image moderation labels available as filter values. Reflects the app''s effective image taxonomy: custom Bodyguard taxonomy when enabled, otherwise the standard L1 label set.' items: type: string title: AI Image Labels type: array x-stream-index: "003" ai_image_ocr_labels: description: Labels the image OCR pipeline can flag, available as filter values on the `label` field under the ai_image category. The app's LLM labels when LLM configurability is enabled, otherwise the AI text labels. OCR and image-classification labels share the `label` field, so a name present in both matches either. items: type: string title: AI Image OCR Labels type: array x-stream-index: "005" ai_image_taxonomy: additionalProperties: items: type: string type: array description: 'AI image moderation labels available as filter values, as a map of L1 label to its L2 sub-labels. Reflects the app''s effective image taxonomy: custom Bodyguard taxonomy when enabled, otherwise the standard catalogue of the org''s enabled image providers.' title: AI Image Taxonomy type: object x-stream-index: "004" ai_text_labels: description: AI text moderation labels available as filter values items: type: string title: AI Text Labels type: array x-stream-index: "002" config_keys: description: Moderation config keys present in the queue, available as filter values items: type: string title: Config Keys type: array x-stream-index: "006" filterable_custom_keys: description: The moderation_payload.custom keys the app has configured as review-queue filter chips (via moderation_dashboard_preferences.filterable_custom_keys). Discovery hint for the dashboard only — the filter accepts any custom key regardless of this list. items: type: string title: Filterable Custom Keys type: array x-stream-index: "008" llm_labels: description: LLM moderation labels available as filter values items: type: string title: LLM Labels type: array x-stream-index: "001" rule_names: description: Names of the app's moderation rules, available as filter values on the `label` field when filtering rule-flagged content. Includes disabled rules, since items flagged before a rule was turned off still carry its name; excludes deleted ones. Scoped to the caller's teams on a multi-tenant app. Capped at 30 names, ordered by name, so an app above that cap is listed partially. items: type: string title: Rule Names type: array x-stream-index: "007" required: - llm_labels type: object FirebaseConfig: properties: Disabled: type: boolean writeOnly: true x-stream-index: "001" apn_template: type: string x-stream-index: "005" credentials_json: type: string x-stream-index: "006" data_template: type: string x-stream-index: "004" notification_template: type: string x-stream-index: "003" server_key: type: string x-stream-index: "002" type: object FirebaseConfigFields: properties: apn_template: type: string x-stream-index: "004" credentials_json: type: string x-stream-index: "006" data_template: type: string x-stream-index: "003" enabled: type: boolean x-stream-index: "001" notification_template: type: string x-stream-index: "002" server_key: type: string x-stream-index: "005" required: - enabled type: object FlagCountRuleParameters: properties: threshold: format: int32 type: integer x-stream-index: "001" type: object FlagDetails: properties: automod: $ref: '#/components/schemas/AutomodDetailsResponse' x-stream-index: "001" original_text: type: string x-stream-index: "002" required: - original_text type: object FlagDetailsResponse: properties: automod: $ref: '#/components/schemas/AutomodDetailsResponse' x-stream-index: "001" extra: additionalProperties: {} type: object x-stream-index: "002" original_text: type: string x-stream-index: "003" required: - original_text type: object FlagFeedbackResponse: properties: created_at: format: date-time type: number x-stream-index: "002" labels: items: $ref: '#/components/schemas/LabelResponse' type: array x-stream-index: "003" message_id: type: string x-stream-index: "001" required: - message_id - created_at - labels type: object FlagItemResponse: 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 FlagMessageDetailsResponse: properties: pin_changed: type: boolean x-stream-index: "002" should_enrich: type: boolean x-stream-index: "003" skip_push: type: boolean x-stream-index: "004" updated_by_id: type: string x-stream-index: "001" 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 FlagResponse: properties: approved_at: format: date-time type: number x-stream-index: "010" created_at: format: date-time type: number x-stream-index: "006" created_by_automod: type: boolean x-stream-index: "001" custom: additionalProperties: {} type: object x-stream-index: "014" details: $ref: '#/components/schemas/FlagDetails' x-stream-index: "013" reason: type: string x-stream-index: "012" rejected_at: format: date-time type: number x-stream-index: "011" reviewed_at: format: date-time type: number x-stream-index: "008" reviewed_by: type: string x-stream-index: "009" target_message: $ref: '#/components/schemas/MessageResponse' x-stream-index: "004" target_message_id: type: string x-stream-index: "003" target_user: $ref: '#/components/schemas/UserResponse' x-stream-index: "005" updated_at: format: date-time type: number x-stream-index: "007" user: $ref: '#/components/schemas/UserResponse' x-stream-index: "002" required: - created_by_automod - created_at - updated_at type: object FlagUpdatedEvent: nullable: true properties: CreatedBy: $ref: '#/components/schemas/UserResponse' x-stream-index: "004" Message: $ref: '#/components/schemas/MessageResponse' x-stream-index: "002" User: $ref: '#/components/schemas/UserResponse' x-stream-index: "003" created_at: format: date-time type: number x-stream-index: "001.003" custom: additionalProperties: {} type: object x-stream-index: "001.007" received_at: format: date-time type: number x-stream-index: "001.004" type: default: flag.updated type: string x-stream-index: "001.002" required: - type - created_at - custom title: FlagUpdatedEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent FlagUserOptions: properties: reason: type: string x-stream-index: "001" type: object FloodConfig: properties: allowlist: items: type: string type: array x-stream-index: "003" identical: $ref: '#/components/schemas/FloodIdenticalConfig' x-stream-index: "001" similar: $ref: '#/components/schemas/FloodSimilarConfig' x-stream-index: "002" type: object FloodIdenticalConfig: properties: action: type: string x-stream-index: "004" enabled: type: boolean x-stream-index: "001" threshold: format: int32 type: integer x-stream-index: "002" time_window: type: string x-stream-index: "003" type: object FloodIdenticalRuleParameters: properties: allowlist: items: type: string type: array x-stream-index: "003" min_text_length: format: int32 type: integer x-stream-index: "005" threshold: format: int32 type: integer x-stream-index: "001" time_window: type: string x-stream-index: "002" track_across_users: type: boolean x-stream-index: "004" type: object FloodSimilarConfig: properties: action: type: string x-stream-index: "005" enabled: type: boolean x-stream-index: "001" similarity_distance: format: int32 type: integer x-stream-index: "004" threshold: format: int32 type: integer x-stream-index: "002" time_window: type: string x-stream-index: "003" type: object FloodSimilarRuleParameters: properties: allowlist: items: type: string type: array x-stream-index: "004" min_text_length: format: int32 type: integer x-stream-index: "005" similarity_distance: format: int32 type: integer x-stream-index: "003" threshold: format: int32 type: integer x-stream-index: "001" time_window: type: string x-stream-index: "002" type: object ForkChannelRequest: nullable: true properties: channel: $ref: '#/components/schemas/ForkChannelTarget' description: The agent channel to create. It must not exist yet title: Channel x-stream-index: "004" exclude_attachments: description: When true, the copied messages carry no attachments. By default attachments are copied title: Exclude attachments type: boolean x-stream-index: "005" message_id: description: 'ID of the top-level message to fork at. The fork copies the visible messages created up to it, itself included, and their replies up to it. Fork only at a message the agent has finished writing: a message still being streamed is copied as it is at the time of the fork' title: Message ID type: string x-stream-index: "003" user: $ref: '#/components/schemas/UserRequest' x-stream-index: "006.002" user_id: type: string x-stream-index: "006.001" required: - message_id - channel type: object ForkChannelResponse: nullable: true properties: active_live_locations: description: Active live locations in the channel items: $ref: '#/components/schemas/SharedLocationResponseData' title: Active Live Locations type: array x-stream-index: "001.015" channel: $ref: '#/components/schemas/ChannelResponse' x-stream-index: "001.001" cooldown_remaining_ms: description: Milliseconds until the current user's slow mode cool down period ends. Only set on client-side get or create channel and get channel requests while the user is under cool down format: int64 title: Cooldown remaining ms type: integer x-stream-index: "001.016" draft: $ref: '#/components/schemas/DraftResponse' x-stream-index: "001.014" duration: type: string x-stream-index: "003.001" fork: $ref: '#/components/schemas/ChannelForkResponse' description: The fork title: Fork x-stream-index: "002" hidden: description: Whether this channel is hidden or not title: Hidden type: boolean x-stream-index: "001.011" hide_messages_before: description: Messages before this date are hidden from the user format: date-time title: Hide messages before type: number x-stream-index: "001.012" members: description: List of channel members items: $ref: '#/components/schemas/ChannelMemberResponse' title: Members type: array x-stream-index: "001.007" membership: $ref: '#/components/schemas/ChannelMemberResponse' description: Current user membership object title: Membership x-stream-index: "001.008" messages: description: List of channel messages items: $ref: '#/components/schemas/MessageResponse' title: Message type: array x-stream-index: "001.002" pending_messages: description: Pending messages that this user has sent items: $ref: '#/components/schemas/PendingMessageResponse' title: Pending messages type: array x-stream-index: "001.013" pinned_messages: description: List of pinned messages in the channel items: $ref: '#/components/schemas/MessageResponse' title: Pinned messages type: array x-stream-docs-page-id: pinned_messages x-stream-index: "001.003" push_preferences: $ref: '#/components/schemas/ChannelPushPreferencesResponse' x-stream-index: "001.009" read: description: List of read states items: $ref: '#/components/schemas/ReadStateResponse' title: Read type: array x-stream-index: "001.006" scheduled_messages: description: The caller's own scheduled, sending and failed messages in this channel. Set only by a client-side GetOrCreateChannel or QueryChannels with include_scheduled_messages; absent when not requested or not known, in which case use the scheduled messages query items: $ref: '#/components/schemas/ScheduledMessageResponse' title: Scheduled messages type: array x-stream-index: "001.017" threads: items: $ref: '#/components/schemas/ThreadStateResponse' type: array x-stream-index: "001.010" watcher_count: description: Number of channel watchers format: int32 title: Watcher count type: integer x-stream-index: "001.004" watchers: description: List of user who is watching the channel items: $ref: '#/components/schemas/UserResponse' title: Watchers type: array x-stream-index: "001.005" required: - messages - pinned_messages - members - threads - fork - duration type: object ForkChannelTarget: description: The channel a fork creates properties: data: $ref: '#/components/schemas/ChannelInput' description: Data of the new channel, as on channel creation. Members go in `members` title: Data x-stream-index: "002" id: description: ID of the new agent channel title: ID type: string x-stream-index: "001" members: description: Members of the new channel. Defaults to the source channel's members items: $ref: '#/components/schemas/ChannelMemberRequest' maxItems: 100 title: Members type: array x-stream-index: "003" required: - id type: object ForkMessageIDsRequest: nullable: true properties: source_message_ids: description: IDs of messages of the source channel, up to 1000 items: type: string maxItems: 1000 minItems: 1 title: Source message IDs type: array x-stream-index: "003" user: $ref: '#/components/schemas/UserRequest' x-stream-index: "004.002" user_id: type: string x-stream-index: "004.001" required: - source_message_ids type: object ForkMessageIDsResponse: nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "002.001" message_id_map: additionalProperties: type: string description: Maps each given source message ID the fork holds a copy of to the copy's ID. IDs the fork holds no copy of are left out title: Message ID map type: object x-stream-index: "001" required: - message_id_map - duration type: object FrameRecordSettings: properties: capture_interval_in_seconds: format: int32 maximum: 60 minimum: 2 type: integer x-stream-index: "003" mode: $ref: '#/components/schemas/FeatureActivationMode' x-stream-index: "001" quality: type: string x-stream-index: "002" required: - mode - capture_interval_in_seconds type: object FullUserResponse: properties: avg_response_time: format: int32 type: integer x-stream-index: "001.018" ban_expires: format: date-time type: number x-stream-index: "016" banned: type: boolean x-stream-index: "001.012" blocked_user_ids: items: type: string type: array x-stream-index: "015" bypass_moderation: type: boolean x-stream-index: "014" 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' 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: "012" 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" revoke_tokens_issued_before: format: date-time type: number x-stream-index: "001.015" role: type: string x-stream-index: "001.006" shadow_banned: type: boolean x-stream-index: "013" 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" unread_channels: format: int32 type: integer x-stream-index: "010" unread_count: deprecated: true description: 'Deprecated: Use total_unread_count instead.' format: int32 title: Unread count type: integer x-stream-deprecated: true x-stream-deprecated-message: Use total_unread_count instead. x-stream-deprecated-renamed: total_unread_count x-stream-index: "008" unread_threads: format: int32 type: integer x-stream-index: "011" 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 - shadow_banned - blocked_user_ids type: object FutureChannelBanResponse: nullable: true properties: banned_by: $ref: '#/components/schemas/UserResponse' x-stream-index: "002" created_at: format: date-time type: number x-stream-index: "006" 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: "001" required: - created_at type: object GeofenceResponse: nullable: true properties: country_codes: items: type: string type: array x-stream-index: "004" description: type: string x-stream-index: "003" name: type: string x-stream-index: "001" type: type: string x-stream-index: "002" required: - name type: object GeofenceSettings: properties: names: items: type: string type: array x-stream-index: "001" required: - names 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 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 GetApplicationResponse: description: Basic response information nullable: true properties: app: $ref: '#/components/schemas/AppResponseFields' x-stream-index: "001" duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "002.001" required: - app - duration title: Response type: object GetBlockListResponse: description: Response for get block list nullable: true properties: blocklist: $ref: '#/components/schemas/BlockListResponse' description: Block list object title: BlockListResponse x-stream-index: "001" duration: type: string x-stream-index: "002.001" required: - duration title: GetBlockListResponse type: object x-stream-docs-page-id: get_block_list GetBlockedUsersResponse: nullable: true properties: blocks: description: Array of blocked user object items: $ref: '#/components/schemas/BlockedUserResponse' title: Blocks type: array x-stream-index: "001" duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "002.001" required: - blocks - duration type: object GetCampaignResponse: description: Basic response information nullable: true properties: campaign: $ref: '#/components/schemas/CampaignResponse' x-stream-index: "001" duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "003.001" users: $ref: '#/components/schemas/PagerResponse' x-stream-index: "002" required: - duration title: Response type: object GetChannelTypeResponse: description: Basic response information nullable: true properties: allowed_flag_reasons: items: type: string type: array x-stream-index: 003.002.028 automod: $ref: '#/components/schemas/AutomodMode' x-stream-index: 003.002.023 automod_behavior: $ref: '#/components/schemas/ChannelModerationBehavior' x-stream-index: 003.002.024 automod_thresholds: $ref: '#/components/schemas/Thresholds' x-stream-index: 003.002.029 blocklist: type: string x-stream-index: 003.002.025 blocklist_behavior: $ref: '#/components/schemas/ChannelModerationBehavior' x-stream-index: 003.002.026 blocklists: items: $ref: '#/components/schemas/BlockListOptions' type: array x-stream-index: 003.002.027 chat_preferences: $ref: '#/components/schemas/ChatPreferences' x-stream-index: 003.002.034 commands: items: $ref: '#/components/schemas/Command' type: array x-stream-index: "003.003" connect_events: type: boolean x-stream-index: 003.002.004 count_messages: type: boolean x-stream-index: 003.002.020 created_at: format: date-time type: number x-stream-index: 003.001.003 custom_events: type: boolean x-stream-index: 003.002.013 delivery_events: type: boolean x-stream-index: 003.002.005 duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "004.001" grants: additionalProperties: items: type: string type: array type: object x-stream-index: "002" mark_messages_pending: type: boolean x-stream-index: 003.002.016 max_message_length: format: int32 type: integer x-stream-index: 003.002.022 message_retention: type: string x-stream-index: 003.002.021 mutes: type: boolean x-stream-index: 003.002.010 name: type: string x-stream-index: 003.002.001 partition_size: format: int32 type: integer x-stream-index: 003.002.030 partition_ttl: example: 24h format: duration type: string x-stream-index: 003.002.031 permissions: items: $ref: '#/components/schemas/PolicyRequest' type: array x-stream-index: "001" polls: type: boolean x-stream-index: 003.002.017 push_level: $ref: '#/components/schemas/PushLevel' description: Sets the push notification level for a channel type title: Push notification level x-stream-description: Sets the push notification level for a channel type x-stream-index: 003.002.033 push_notifications: type: boolean x-stream-index: 003.002.014 quotes: type: boolean x-stream-index: 003.002.009 reactions: type: boolean x-stream-index: 003.002.007 read_events: type: boolean x-stream-index: 003.002.003 reminders: type: boolean x-stream-index: 003.002.015 replies: type: boolean x-stream-index: 003.002.008 search: type: boolean x-stream-index: 003.002.006 shared_locations: type: boolean x-stream-index: 003.002.019 skip_last_msg_update_for_system_msgs: type: boolean x-stream-index: 003.002.032 typing_events: type: boolean x-stream-index: 003.002.002 updated_at: format: date-time type: number x-stream-index: 003.001.004 uploads: type: boolean x-stream-index: 003.002.011 url_enrichment: type: boolean x-stream-index: 003.002.012 user_message_reminders: type: boolean x-stream-index: 003.002.018 required: - permissions - grants - 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 - duration title: Response type: object GetCommandResponse: nullable: true properties: args: type: string x-stream-index: "001.006" created_at: format: date-time readOnly: true type: number x-stream-index: "001.001" description: type: string x-stream-index: "001.005" duration: type: string x-stream-index: "002.001" name: type: string x-stream-index: "001.004" set: type: string x-stream-index: "001.007" updated_at: format: date-time readOnly: true type: number x-stream-index: "001.002" required: - name - description - args - set - duration title: GetCommandResponse 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 GetConfigVersionResponse: nullable: true properties: config: $ref: '#/components/schemas/ConfigResponse' description: The full configuration stored in this version, published or not title: Config x-stream-index: "002" duration: type: string x-stream-index: "003.001" version: $ref: '#/components/schemas/ConfigVersionResponse' description: Metadata of the retrieved version title: Version x-stream-index: "001" required: - version - duration type: object GetCustomPermissionResponse: description: Basic response information nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "002.001" permission: $ref: '#/components/schemas/Permission' x-stream-index: "001" required: - permission - duration title: Response type: object GetDraftResponse: description: Basic response information nullable: true properties: draft: $ref: '#/components/schemas/DraftResponse' x-stream-index: "001" duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "002.001" required: - draft - duration title: Response type: object GetExternalStorageAWSS3Response: properties: bucket: type: string x-stream-index: "002" path_prefix: type: string x-stream-index: "004" region: type: string x-stream-index: "003" role_arn: type: string x-stream-index: "001" required: - role_arn - bucket - region type: object GetExternalStorageGCSResponse: properties: bucket: type: string x-stream-index: "001" credentials_set: type: boolean x-stream-index: "003" path_prefix: type: string x-stream-index: "002" required: - bucket - credentials_set type: object GetExternalStorageResponse: description: Basic response information nullable: true properties: aws_s3: $ref: '#/components/schemas/GetExternalStorageAWSS3Response' x-stream-index: "002" created_at: format: date-time type: number x-stream-index: "004" duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "006.001" gcs: $ref: '#/components/schemas/GetExternalStorageGCSResponse' x-stream-index: "003" type: type: string x-stream-index: "001" updated_at: format: date-time type: number x-stream-index: "005" required: - type - created_at - updated_at - duration title: Response 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 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 GetHistoryWindowTeamsResponse: nullable: true properties: default_window_hours: description: History window, in hours, of every team without full history; 0 is full history format: int32 title: Default window hours type: integer x-stream-index: "001" duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "003.001" teams: description: Teams with full history items: $ref: '#/components/schemas/HistoryWindowTeam' title: Teams type: array x-stream-index: "002" required: - default_window_hours - teams - duration type: object GetImportResponse: description: Basic response information nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "002.001" import_task: $ref: '#/components/schemas/ImportTask' x-stream-index: "001" required: - duration title: Response type: object GetImportV2TaskResponse: description: Basic response information nullable: true properties: app_pk: format: int32 type: integer x-stream-index: "002" created_at: format: date-time type: number x-stream-index: "007" duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "009.001" id: type: string x-stream-index: "001" product: type: string x-stream-index: "003" result: readOnly: true type: object x-stream-index: "006" settings: $ref: '#/components/schemas/ImportV2TaskSettings' x-stream-index: "005" state: type: integer x-stream-index: "004" updated_at: format: date-time type: number x-stream-index: "008" required: - id - app_pk - product - state - settings - created_at - updated_at - duration title: Response type: object GetManyMessagesResponse: nullable: true properties: duration: type: string x-stream-index: 001.002.001 messages: description: List of messages items: $ref: '#/components/schemas/MessageResponse' title: Messages type: array x-stream-index: "001.001" required: - messages - duration type: object GetMessageResponse: description: Basic response information nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "003.001" message: $ref: '#/components/schemas/MessageWithChannelResponse' x-stream-index: "001" pending_message_metadata: additionalProperties: type: string type: object x-stream-index: "002" required: - message - duration title: Response 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 GetOGResponse: nullable: true properties: actions: items: $ref: '#/components/schemas/Action' type: array x-stream-index: "001.015" asset_url: description: URL of detected video or audio title: Image URL type: string x-stream-index: "001.017" author_icon: type: string x-stream-index: "001.007" author_link: description: og:site title: Author Link type: string x-stream-index: "001.006" author_name: description: og:site_name title: Author Name type: string x-stream-index: "001.005" color: type: string x-stream-index: "001.003" custom: additionalProperties: {} type: object x-stream-index: "001.018" duration: type: string x-stream-index: "002.001" fallback: type: string x-stream-index: "001.002" fields: items: $ref: '#/components/schemas/Field' type: array x-stream-index: "001.016" footer: type: string x-stream-index: "001.013" footer_icon: type: string x-stream-index: "001.014" giphy: $ref: '#/components/schemas/Images' x-stream-index: "001.019" image_url: description: URL of detected image title: Image URL type: string x-stream-index: "001.011" og_scrape_url: description: extracted url from the text title: OG Scrape URL type: string x-stream-index: "001.020" original_height: format: int32 type: integer x-stream-index: "001.022" original_width: format: int32 type: integer x-stream-index: "001.021" pretext: type: string x-stream-index: "001.004" text: description: og:description title: Text type: string x-stream-index: "001.010" thumb_url: description: URL of detected thumb image title: Image URL type: string x-stream-index: "001.012" title: description: og:title title: Title type: string x-stream-index: "001.008" title_link: description: og:url title: Title Link type: string x-stream-index: "001.009" type: description: Attachment type, could be empty, image, audio or video title: Type type: string x-stream-index: "001.001" required: - custom - duration title: Get OG Attachment type: object x-stream-docs-page-id: og GetOrCreateChannelDefaults: description: Defaults applied by the get-or-create channel endpoint. properties: members: $ref: '#/components/schemas/PagerDefaults' description: Defaults for the `members` pagination object. title: Members x-stream-index: "002" messages: $ref: '#/components/schemas/PagerDefaults' description: Defaults for the `messages` pagination object. title: Messages x-stream-index: "001" required: - messages - members type: object GetPinnedMessagesResponse: nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "002.001" messages: description: Messages items: $ref: '#/components/schemas/MessageResponse' title: Messages type: array x-stream-index: "001" required: - messages - duration type: object GetPredefinedFilterResponse: nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "002.001" predefined_filter: $ref: '#/components/schemas/PredefinedFilterResponse' description: Predefined filter title: PredefinedFilterResponse x-stream-index: "001" required: - duration type: object GetPushTemplatesResponse: description: Basic response information nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "001.001" templates: items: $ref: '#/components/schemas/PushTemplateResponse' type: array x-stream-index: "002" required: - duration - templates title: Response type: object GetRateLimitsResponse: nullable: true properties: android: additionalProperties: $ref: '#/components/schemas/LimitInfoResponse' description: Map of endpoint rate limits for the Android platform title: Android type: object x-stream-index: "002" x-stream-map: description: The name of the endpoint for which the limits apply key: endpoint title: Endpoint name duration: type: string x-stream-index: "008.001" ios: additionalProperties: $ref: '#/components/schemas/LimitInfoResponse' description: Map of endpoint rate limits for the iOS platform title: iOS type: object x-stream-index: "003" x-stream-map: description: The name of the endpoint for which the limits apply key: endpoint title: Endpoint name server_side: additionalProperties: $ref: '#/components/schemas/LimitInfoResponse' description: Map of endpoint rate limits for the server-side platform title: Server-side type: object x-stream-index: "001" x-stream-map: description: The name of the endpoint for which the limits apply key: endpoint title: Endpoint name unity: additionalProperties: $ref: '#/components/schemas/LimitInfoResponse' description: Map of endpoint rate limits for the Unity platform title: Unity type: object x-stream-index: "005" x-stream-map: description: The name of the endpoint for which the limits apply key: endpoint title: Endpoint name unity_console: additionalProperties: $ref: '#/components/schemas/LimitInfoResponse' description: Map of endpoint rate limits for the Unity console platform title: Unity console type: object x-stream-index: "007" x-stream-map: description: The name of the endpoint for which the limits apply key: endpoint title: Endpoint name unity_desktop: additionalProperties: $ref: '#/components/schemas/LimitInfoResponse' description: Map of endpoint rate limits for the Unity desktop platform title: Unity desktop type: object x-stream-index: "006" x-stream-map: description: The name of the endpoint for which the limits apply key: endpoint title: Endpoint name web: additionalProperties: $ref: '#/components/schemas/LimitInfoResponse' description: Map of endpoint rate limits for the web platform title: Web type: object x-stream-index: "004" x-stream-map: description: The name of the endpoint for which the limits apply key: endpoint title: Endpoint name required: - duration title: Get Rate Limits Response type: object x-stream-docs-page-id: rate_limits GetReactionsResponse: nullable: true properties: duration: type: string x-stream-index: "002.001" reactions: description: List of reactions items: $ref: '#/components/schemas/ReactionResponse' title: Reactions type: array x-stream-index: "001" required: - reactions - duration type: object GetRepliesResponse: description: Basic response information nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "002.001" messages: items: $ref: '#/components/schemas/MessageResponse' type: array x-stream-index: "001" required: - messages - duration title: Response type: object GetRetentionPolicyResponse: description: Basic response information nullable: true properties: channel_type_rules: items: $ref: '#/components/schemas/ChannelTypeRuleResponse' type: array x-stream-index: "002" duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "003.001" policies: items: $ref: '#/components/schemas/RetentionPolicy' type: array x-stream-index: "001" required: - policies - duration title: Response type: object GetRetentionPolicyRunsRequest: nullable: true properties: filter_conditions: additionalProperties: {} description: Filter conditions to apply to the query title: Filter type: object x-stream-filter-fields: date: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: date policy: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string 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: Array of sort parameters items: $ref: '#/components/schemas/SortParamRequest' maxItems: 2 title: Sort type: array x-stream-index: "002" x-stream-sort-combinations: - - policy - - date x-stream-sort-fields: - date - policy type: object GetRetentionPolicyRunsResponse: description: Basic response information nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "003.001" next: type: string x-stream-index: "002.001" prev: type: string x-stream-index: "002.002" runs: items: $ref: '#/components/schemas/RetentionRunResponse' type: array x-stream-index: "001" required: - runs - duration title: Response 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 GetSegmentResponse: nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "002.001" segment: $ref: '#/components/schemas/SegmentResponse' description: Segment title: SegmentResponse x-stream-index: "001" required: - duration type: object GetSetupSessionResponse: nullable: true properties: duration: type: string x-stream-index: "002.001" setup_session: $ref: '#/components/schemas/SetupSession' description: The current setup session for the app title: Setup Session x-stream-index: "001" required: - duration type: object GetTaskResponse: nullable: true properties: created_at: format: date-time type: number x-stream-index: "001.003" duration: type: string x-stream-index: "004.001" error: $ref: '#/components/schemas/ErrorResult' description: Error produced by task title: Error x-stream-index: "003" result: additionalProperties: {} description: Result produced by task after completion. A task that does its work in stages may carry a status of its own here, describing that work rather than the task; the top-level status already accounts for it, so use that to tell whether the operation has finished. title: Result type: object x-stream-index: "002" status: description: Current status of the whole operation. A task whose result reports an in-progress status of its own is returned as running until that status is terminal, so completed means the operation itself finished rather than that its first step was accepted. A result that never reaches a terminal status stops being reported as running after a fixed period and falls back to the task's own status. title: Status type: string x-stream-index: "001.002" task_id: description: ID of task title: Task ID type: string x-stream-index: "001.001" updated_at: format: date-time type: number x-stream-index: "001.004" required: - task_id - status - created_at - updated_at - duration title: Get Task Response type: object x-stream-docs-page-id: tasks GetThreadResponse: nullable: true properties: duration: type: string x-stream-index: "002.001" thread: $ref: '#/components/schemas/ThreadStateResponse' description: Enriched thread state title: Thread x-stream-index: "001" required: - thread - duration type: object GetUserGroupResponse: description: Response for getting a user group nullable: true properties: duration: type: string x-stream-index: "002.001" user_group: $ref: '#/components/schemas/UserGroupResponse' description: The user group title: UserGroup x-stream-index: "001" required: - duration title: GetUserGroupResponse type: object GoogleVisionConfig: properties: enabled: type: boolean x-stream-index: "001" type: object GroupedChannelsBucket: properties: channels: description: Channels returned for this bucket items: $ref: '#/components/schemas/ChannelStateResponseFields' title: Channels type: array x-stream-index: "001" next: description: Cursor for the next page of this group title: Next type: string x-stream-index: "003.001" prev: description: Cursor for the previous page of this group title: Previous type: string x-stream-index: "003.002" unread_channels: description: Total unread channels matching this bucket and its filters, independent of page size format: int32 title: Unread Channels type: integer x-stream-index: "002" required: - channels title: Grouped Channels Bucket type: object GroupedChannelsGroupRequest: properties: filter_conditions: additionalProperties: {} description: Optional query_timestamp $gte bound for a stored group, requiring query_timestamp sort; do not repeat its group name. For all, combine group equality/$in and date bounds with $or, or use one standalone group $ne exclusion. An empty object matches a stored group; omitted or null preserves legacy grouping. title: Filter type: object x-stream-filter-fields: group: operators: - $eq - $in - $ne type: string query_timestamp: operators: - $gte type: date x-stream-go-pointer: true x-stream-index: "004" limit: description: Max channels for this group; values above 15 are capped at 15. Omitted or zero uses the request limit format: int32 minimum: 0 title: Limit type: integer x-stream-index: "001" next: description: Cursor for the next page; only allowed when requesting one group title: Next type: string x-stream-index: "002" prev: description: Cursor for the previous page; only allowed when requesting one group title: Previous type: string x-stream-index: "003" title: Grouped Channels Group Request type: object GroupedQueryChannelsRequest: nullable: true properties: groups: additionalProperties: $ref: '#/components/schemas/GroupedChannelsGroupRequest' description: 'Groups to return, keyed by stored group name. Each entry can define limit, next, prev, and optional filter_conditions: date bounds for stored groups; all supports combined group/date branches or one group $ne exclusion. Cursors are only allowed when requesting exactly one group. Omitted or null filters preserve legacy grouping, including all.' title: Groups type: object x-stream-index: "002" limit: description: Default max channels per group (default 10); values above 15 are capped at 15 format: int32 title: Limit type: integer x-stream-index: "001" sort: description: Optional query_timestamp descending with NULLS LAST when enabled. Omitted sort preserves existing last_updated ordering and cursor formats items: $ref: '#/components/schemas/SortParamRequest' maxItems: 1 title: Sort type: array x-stream-index: "009" user: $ref: '#/components/schemas/UserRequest' x-stream-index: "007.002" user_id: type: string x-stream-index: "007.001" title: Grouped Query Channels Request type: object x-stream-docs-page-id: grouped_query_channels GroupedQueryChannelsResponse: nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "002.001" groups: additionalProperties: $ref: '#/components/schemas/GroupedChannelsBucket' description: Groups keyed by the requested stored group name title: Groups type: object x-stream-index: "001" x-stream-map: description: Channels and unread counts for one group key: group_name title: Grouped Channels Bucket required: - groups - duration title: Grouped Query Channels Response type: object HLSSettings: properties: auto_on: type: boolean x-stream-index: "001" enabled: type: boolean x-stream-index: "002" layout: $ref: '#/components/schemas/LayoutSettings' x-stream-index: "004" quality_tracks: items: type: string type: array x-stream-index: "003" required: - auto_on - enabled - quality_tracks 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 HideChannelRequest: nullable: true properties: clear_history: description: Whether to clear message history of the channel or not title: Clear history type: boolean x-stream-index: "001" user: $ref: '#/components/schemas/UserRequest' x-stream-index: "003.002" user_id: type: string x-stream-index: "003.001" type: object HideChannelResponse: 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 HistoryWindowTeam: description: A team with full history properties: created_at: description: Date/time the team was first given full history format: date-time title: Created at type: number x-stream-index: "002" team: description: The team, as set on channels and users title: Team type: string x-stream-index: "001" updated_at: description: Date/time the team was last marked format: date-time title: Updated at type: number x-stream-index: "003" required: - team - created_at - updated_at type: object HuaweiConfig: properties: Disabled: type: boolean writeOnly: true x-stream-index: "003" id: type: string x-stream-index: "001" secret: type: string x-stream-index: "002" type: object HuaweiConfigFields: properties: enabled: type: boolean x-stream-index: "001" id: type: string x-stream-index: "002" secret: type: string x-stream-index: "003" required: - enabled type: object IPContentCountRuleParameters: properties: threshold: format: int32 type: integer x-stream-index: "001" time_window: type: string x-stream-index: "002" type: object IPFlagCountRuleParameters: properties: harm_labels: items: type: string type: array x-stream-index: "003" severity: type: string x-stream-index: "004" threshold: format: int32 type: integer x-stream-index: "001" time_window: type: string x-stream-index: "002" 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: double type: number x-stream-index: "003" 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 ImageRuleParameters: properties: harm_labels: items: type: string type: array x-stream-index: "003" min_confidence: format: double 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 ImageSize: properties: crop: description: 'Crop mode. One of: top, bottom, left, right, center' title: Crop type: string x-stream-index: "001" height: description: Target image height format: int32 title: Height type: integer x-stream-index: "003" resize: description: 'Resize method. One of: clip, crop, scale, fill' title: Resize type: string x-stream-index: "002" width: description: Target image width format: int32 title: Width type: integer x-stream-index: "004" title: Image size configuration type: object ImageUploadRequest: nullable: true properties: file: type: string x-stream-index: "001.001" upload_sizes: description: field with JSON-encoded array of image size configurations items: $ref: '#/components/schemas/ImageSize' title: Upload sizes type: array x-stream-index: "002" user: $ref: '#/components/schemas/OnlyUserID' x-stream-index: "001.002" type: object ImageUploadResponse: nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: 001.003.001 file: type: string x-stream-index: "001.001" thumb_url: type: string x-stream-index: "001.002" upload_sizes: description: Array of image size configurations items: $ref: '#/components/schemas/ImageSize' title: Upload sizes type: array x-stream-index: "002" required: - 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 ImportBlockListRequest: nullable: true properties: chunk_size: format: int32 minimum: 1 type: integer x-stream-index: "003" items: items: type: string minItems: 1 type: array x-stream-index: "002" required: - items type: object ImportBlockListResponse: description: Basic response information nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "002.001" task_id: type: string x-stream-index: "001" required: - task_id - duration title: Response type: object ImportTask: properties: created_at: format: date-time type: number x-stream-index: "011" history: items: $ref: '#/components/schemas/ImportTaskHistory' type: array x-stream-index: "010" id: type: string x-stream-index: "003" mode: type: string x-stream-index: "006" path: type: string x-stream-index: "005" size: format: int64 type: integer x-stream-index: "007" state: type: string x-stream-index: "008" updated_at: format: date-time type: number x-stream-index: "012" required: - id - path - mode - state - history - created_at - updated_at type: object ImportTaskHistory: nullable: true properties: created_at: format: date-time type: number x-stream-index: "005" next_state: type: string x-stream-index: "007" prev_state: type: string x-stream-index: "006" required: - created_at - prev_state - next_state type: object ImportV2TaskItem: properties: app_pk: format: int32 type: integer x-stream-index: "002" created_at: format: date-time type: number x-stream-index: "007" id: type: string x-stream-index: "001" product: type: string x-stream-index: "003" result: readOnly: true type: object x-stream-index: "006" settings: $ref: '#/components/schemas/ImportV2TaskSettings' x-stream-index: "005" state: type: integer x-stream-index: "004" updated_at: format: date-time type: number x-stream-index: "008" required: - id - app_pk - product - state - settings - created_at - updated_at type: object ImportV2TaskSettings: properties: merge_custom: type: boolean x-stream-index: "007" mode: type: string x-stream-index: "003" path: type: string x-stream-index: "004" s3: $ref: '#/components/schemas/ImportV2TaskSettingsS3' x-stream-index: "001" skip_references_check: type: boolean x-stream-index: "005" use_import_time_as_op_time: type: boolean x-stream-index: "008" type: object ImportV2TaskSettingsS3: properties: bucket: type: string x-stream-index: "002" dir: type: string x-stream-index: "003" region: type: string x-stream-index: "001" type: object IndividualRecordSettings: properties: mode: $ref: '#/components/schemas/FeatureActivationMode' x-stream-index: "001" output_types: items: type: string type: array x-stream-index: "002" required: - mode type: object IngressAudioEncodingOptions: properties: bitrate: maximum: 128000 minimum: 16000 type: integer x-stream-index: "003" channels: enum: - 1 - 2 format: int32 type: integer x-stream-index: "001" enable_dtx: type: boolean x-stream-index: "002" required: - channels - enable_dtx - bitrate type: object IngressSettings: properties: audio_encoding_options: $ref: '#/components/schemas/IngressAudioEncodingOptions' x-stream-index: "002" enabled: type: boolean x-stream-index: "001" video_encoding_options: additionalProperties: $ref: '#/components/schemas/IngressVideoEncodingOptions' type: object x-stream-index: "003" required: - enabled type: object IngressSource: properties: fps: maximum: 60 minimum: 1 type: integer x-stream-index: "003" height: minimum: 2 type: integer x-stream-index: "002" width: minimum: 2 type: integer x-stream-index: "001" required: - width - height - fps type: object IngressVideoEncodingOptions: properties: layers: items: $ref: '#/components/schemas/IngressVideoLayer' minItems: 1 type: array x-stream-index: "002" source: $ref: '#/components/schemas/IngressSource' x-stream-index: "001" required: - layers type: object IngressVideoLayer: nullable: true properties: bitrate: minimum: 1000 type: integer x-stream-index: "002" codec: $ref: '#/components/schemas/VideoCodec' x-stream-index: "001" frame_rate: maximum: 60 minimum: 1 type: integer x-stream-index: "003" max_dimension: minimum: 240 type: integer x-stream-index: "005" min_dimension: minimum: 240 type: integer x-stream-index: "004" required: - codec - bitrate - frame_rate - min_dimension - max_dimension 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 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 IntentConditionInfo: properties: passed: description: Whether the score reached the threshold. title: Passed type: boolean x-stream-index: "004" score: description: Final (damped) score of the topic in this analysis; 0 when the topic is not defined in the policy. format: int32 title: Score type: integer x-stream-index: "003" threshold: description: Minimum score (1-100) the condition requires. format: int32 title: Threshold type: integer x-stream-index: "002" topic: description: Policy intent topic label the condition references. title: Topic type: string x-stream-index: "001" required: - topic - threshold - score - passed type: object IntentConfigRequest: properties: topics: description: Topics to classify conversation text against (max 20, labels must be unique) items: $ref: '#/components/schemas/IntentTopicRequest' title: Topics type: array x-stream-index: "001" type: object IntentConfigResponse: properties: topics: description: Topics conversation text is classified against items: $ref: '#/components/schemas/IntentTopicResponse' title: Topics type: array x-stream-index: "001" required: - topics type: object IntentEvaluationInfo: properties: conditions: description: One entry per `intent_rule` condition of the rule, flat conditions first, then group conditions. items: $ref: '#/components/schemas/IntentConditionInfo' title: Conditions type: array x-stream-index: "003" conversation_id: description: 'The analyzed conversation: the channel CID for chat, the object ID for feeds.' title: ConversationID type: string x-stream-index: "004" message_count: description: Number of conversation messages sent to the model. format: int32 title: MessageCount type: integer x-stream-index: "005" raw_scores: additionalProperties: format: int32 type: integer description: Score (0-100) the model gave every topic in the analysis call, keyed by topic label, before message-count damping. title: RawScores type: object x-stream-index: "001" scores: additionalProperties: format: int32 type: integer description: Final score (0-100) of every topic after message-count damping, keyed by topic label. Conditions compare against these. title: Scores type: object x-stream-index: "002" required: - raw_scores - scores - conditions - conversation_id - message_count type: object IntentRuleParameters: description: 'intent_rule params: policy intent topic label and the minimum final score (1-100) that fires the condition' properties: threshold: format: int32 type: integer x-stream-index: "002" topic: type: string x-stream-index: "001" required: - topic type: object IntentScoreResponse: properties: score: format: int32 type: integer x-stream-index: "002" topic: type: string x-stream-index: "001" required: - topic - score type: object IntentTopicRequest: properties: description: description: Optional description used in the classification prompt; the label alone is used when empty title: Description type: string x-stream-index: "002" label: description: Unique topic label (e.g. purchase_intent) title: Label type: string x-stream-index: "001" required: - label type: object IntentTopicResponse: properties: description: description: Optional description used in the classification prompt; the label alone is used when empty title: Description type: string x-stream-index: "002" label: description: Unique topic label (e.g. purchase_intent) title: Label type: string x-stream-index: "001" required: - label type: object KeyframeOCRRuleParameters: properties: harm_labels: items: type: string type: array x-stream-index: "001" threshold: format: int32 type: integer x-stream-index: "002" time_window: type: string x-stream-index: "003" type: object KeyframeRuleParameters: properties: harm_labels: items: type: string type: array x-stream-index: "001" min_confidence: format: double type: number x-stream-index: "004" threshold: format: int32 type: integer x-stream-index: "002" time_window: type: string x-stream-index: "003" type: object LLMConfig: properties: app_context: type: string x-stream-index: "005" async: type: boolean x-stream-index: "001" context_custom_keys: items: type: string maxItems: 10 type: array x-stream-index: "006" custom_keys_context_description: type: string x-stream-index: "007" 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 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: maxLength: 128 type: string x-stream-index: "001" severity_rules: items: $ref: '#/components/schemas/BodyguardSeverityRule' type: array x-stream-index: "004" required: - label type: object LabelResponse: properties: harm_labels: items: type: string type: array x-stream-index: "003" name: type: string x-stream-index: "001" phrase_list_ids: items: format: int32 type: integer type: array x-stream-index: "002" required: - name type: object LabelResultResponse: properties: category: description: Category title: Category type: string x-stream-index: "009" 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: "015" 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: "012" fully_masked_content: description: The stored content with every non-whitespace character masked. Present only when recommended_action is not 'keep'. Derived at runtime and never stored. title: Fully Masked Content type: string x-stream-index: "007" harm_type: description: High-level harm category title: Harm Type type: string x-stream-index: "011" 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: "010" language: description: Detected language title: Language type: string x-stream-index: "008" 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: "013" severity: description: Severity level title: Severity type: string x-stream-index: "014" user_id: description: Customer-supplied user identifier for the content author title: User ID type: string x-stream-index: "016" required: - id - created_at - content_type - content - language - category - labels - harm_type - recommended_action - severity 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 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" dry_run: description: When true, run moderation and return labels without persisting the result. Useful for one-off checks (e.g. UI testers) that should not be recorded in the stored history. title: Dry Run type: boolean x-stream-index: "007" policy: description: 'Optional moderation policy key (max 128 chars). For username moderation, set this to a policy whose key starts with ''username:'' (e.g. ''username:default'') to opt into the low-latency fast-path: blocklists (customer + Stream-managed defaults) short-circuit the LLM, and the LLM fallback uses gpt-4o-mini (overridable via moderation_settings.llm_username_model) with a 24h Valkey verdict cache. Without a ''username:'' prefix the request falls through to the standard Bodyguard Analyze v1 username path.' 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 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: "010.001" fully_masked_content: description: The original content with every non-whitespace character masked. Present only when recommended_action is not 'keep'. Derived at runtime and never stored. title: Fully Masked Content type: string x-stream-index: "009" 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 LayoutName: description: The layout a call recording or broadcast is composed with. enum: - spotlight - grid - single-participant - mobile - custom title: LayoutName type: string LayoutSettings: 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: $ref: '#/components/schemas/LayoutName' x-stream-index: "001" options: additionalProperties: {} type: object x-stream-index: "002" required: - name - external_app_url - external_css_url type: object LimitInfoResponse: properties: limit: description: The maximum number of API calls allowed per time window format: int64 title: Limit type: integer x-stream-index: "001" remaining: description: The number of remaining calls in the current window format: int64 title: Remaining type: integer x-stream-index: "002" reset: description: The Unix timestamp when the rate limit resets format: int64 title: Reset type: integer x-stream-index: "003" required: - limit - remaining - reset title: LimitInfo type: object x-stream-docs-page-id: rate_limits LimitsSettings: 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 ListBlockListResponse: description: Basic response information nullable: true properties: blocklists: items: $ref: '#/components/schemas/BlockListResponse' type: array x-stream-index: "001" duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "003.001" next_cursor: type: string x-stream-index: "002" required: - blocklists - duration title: Response type: object ListChannelTypesResponse: nullable: true properties: channel_types: additionalProperties: $ref: '#/components/schemas/ChannelTypeConfig' description: Object with all channel types title: Channel types type: object x-stream-index: "001" x-stream-map: description: Channel type config object key: channel_type title: Channel type duration: type: string x-stream-index: "002.001" required: - channel_types - duration title: ListChannelTypesResponse type: object ListCommandsResponse: nullable: true properties: commands: description: List of commands items: $ref: '#/components/schemas/Command' title: Commands type: array x-stream-index: "001" duration: type: string x-stream-index: "002.001" required: - commands - duration title: ListCommandsResponse type: object ListConfigVersionsResponse: nullable: true properties: duration: type: string x-stream-index: "003.001" published_version: description: The version moderation currently runs format: int32 title: Published Version type: integer x-stream-index: "001" versions: description: Retained versions of this configuration, newest first, including the published one items: $ref: '#/components/schemas/ConfigVersionResponse' title: Versions type: array x-stream-index: "002" required: - versions - duration type: object ListDevicesResponse: description: List devices response nullable: true properties: devices: description: List of devices items: $ref: '#/components/schemas/DeviceResponse' title: Devices type: array x-stream-index: "001" duration: type: string x-stream-index: "002.001" required: - devices - duration title: ListDevicesResponse type: object ListExternalStorageResponse: description: Basic response information nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "001.001" external_storages: additionalProperties: $ref: '#/components/schemas/ExternalStorageResponse' type: object x-stream-index: "002" required: - duration - external_storages title: Response type: object ListImportV2TasksResponse: description: Basic response information nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "002.001" import_tasks: items: $ref: '#/components/schemas/ImportV2TaskItem' type: array x-stream-index: "001" next: type: string x-stream-index: "003.001" prev: type: string x-stream-index: "003.002" required: - import_tasks - duration title: Response type: object ListImportsResponse: description: Basic response information nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "002.001" import_tasks: items: $ref: '#/components/schemas/ImportTask' type: array x-stream-index: "001" required: - import_tasks - duration title: Response type: object ListPermissionsResponse: description: Basic response information nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "002.001" permissions: items: $ref: '#/components/schemas/Permission' type: array x-stream-index: "001" required: - permissions - duration title: Response type: object ListPushProvidersResponse: description: Basic response information nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "002.001" push_providers: items: $ref: '#/components/schemas/PushProviderResponse' type: array x-stream-index: "001" required: - push_providers - duration title: Response type: object ListQueuesResponse: description: Basic response information nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "002.001" queues: items: $ref: '#/components/schemas/ModerationQueueResponse' type: array x-stream-index: "001" required: - queues - duration title: Response type: object ListRolesResponse: description: Basic response information nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "002.001" roles: items: $ref: '#/components/schemas/Role' type: array x-stream-index: "001" required: - roles - duration title: Response type: object ListUserGroupsResponse: description: Response for listing user groups nullable: true properties: duration: type: string x-stream-index: "002.001" user_groups: description: List of user groups items: $ref: '#/components/schemas/UserGroupResponse' title: UserGroups type: array x-stream-index: "001" required: - user_groups - duration title: ListUserGroupsResponse type: object MarkChannelsReadRequest: nullable: true properties: read_by_channel: additionalProperties: type: string description: Map of channel ID to last read message ID maximum: 30 title: Read by channel type: object x-stream-index: "001" user: $ref: '#/components/schemas/UserRequest' x-stream-index: "002.002" user_id: type: string x-stream-index: "002.001" type: object MarkDeliveredRequest: nullable: true properties: latest_delivered_messages: items: $ref: '#/components/schemas/DeliveredMessagePayload' type: array x-stream-index: "001" type: object MarkDeliveredResponse: 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 MarkReadRequest: nullable: true properties: message_id: description: ID of the message that is considered last read by client title: Message ID type: string x-stream-index: "001" thread_id: description: Optional Thread ID to specifically mark a given thread as read title: Thread ID type: string 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 MarkReadResponse: nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "002.001" event: $ref: '#/components/schemas/MarkReadResponseEvent' description: Mark read event title: Event x-stream-index: "001" required: - duration type: object MarkReadResponseEvent: properties: channel: $ref: '#/components/schemas/ChannelResponse' x-stream-index: "011" channel_id: type: string x-stream-index: "003" channel_last_message_at: format: date-time type: number x-stream-index: "005" channel_type: type: string x-stream-index: "004" cid: type: string x-stream-index: "002" created_at: format: date-time type: number x-stream-index: "009" last_read_message_id: type: string x-stream-index: "010" team: type: string x-stream-index: "006" thread: $ref: '#/components/schemas/ThreadResponse' x-stream-index: "008" type: type: string x-stream-index: "001" user: $ref: '#/components/schemas/UserResponseCommonFields' x-stream-index: "007" required: - type - cid - channel_id - channel_type - created_at 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" reason: description: Internal moderator note, stored on the action log and returned by QueryModerationLogs. Not shown to the appealing user; use decision_reason for that title: Reason type: string x-stream-index: "004" title: MarkReviewedRequest type: object MarkUnreadRequest: nullable: true properties: message_id: description: ID of the message from where the channel is marked unread title: Message ID type: string x-stream-index: "001" message_timestamp: description: Timestamp of the message from where the channel is marked unread format: date-time title: Message Timestamp type: string x-stream-index: "004" thread_id: description: Mark a thread unread, specify one of the thread, message timestamp, or message id title: Thread ID type: string x-stream-index: "003" user: $ref: '#/components/schemas/UserRequest' x-stream-index: "005.002" user_id: type: string x-stream-index: "005.001" type: object MatchedContent: properties: classifications: description: Image-classification entries (keyframe rule, Type=image) carry nested L1 → L2 classifications. Text entries (closed_caption rule, Type=text) carry flat label + severity. Resolved against the app's effective taxonomy on the image side. items: $ref: '#/components/schemas/Classification' title: Classifications type: array x-stream-index: "005" confidence: description: Image-classification entries only. Aggregate (max) confidence score across the entry's classifications + sub-classifications. Absent on text and OCR entries. format: double title: Confidence type: number x-stream-index: "006" id: description: The `content_ids[label]` value supplied on the `/analyze` request that contributed this entry. title: ID type: string x-stream-index: "002" ocr_classifications: description: OCR entries only (keyframe_ocr rule, Type=image). Bodyguard labels that fired against the keyframe's OCR-extracted text (e.g. `INSULT`, `HATE_SPEECH`). Distinct from `classifications` so consumers can route OCR matches separately from image-classification matches. items: $ref: '#/components/schemas/Classification' title: OCRClassifications type: array x-stream-index: "007" published_at: description: '`content_published_at` from the contributing `/analyze` request, or server receive time when that field was omitted.' format: date-time title: PublishedAt type: number x-stream-index: "004" severity: description: Text and OCR entries. Aggregate (max) Bodyguard severity level (`LOW` / `MEDIUM` / `HIGH` / `CRITICAL`). Absent on image-classification entries. title: Severity type: string x-stream-index: "008" text: type: string x-stream-index: "003" type: description: 'Content type that contributed this entry: `image` or `text`.' title: Type type: string x-stream-index: "001" required: - type - id - published_at type: object MaxStreakChangedEvent: nullable: true properties: created_at: format: date-time type: number x-stream-index: "001.003" custom: additionalProperties: {} type: object x-stream-index: "001.007" received_at: format: date-time type: number x-stream-index: "001.004" type: default: channel.max_streak_changed type: string x-stream-index: "001.002" required: - type - created_at - custom title: MaxStreakChangedEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent MediaDisplayResponse: description: Display policy for a review queue item's images and video properties: audit_reveal: description: Reveals must be recorded via the reveal media endpoint (blurred CSAM or gore) title: Audit Reveal type: boolean x-stream-index: "003" mode: description: Default rendering before a reveal enum: - normal - blur - blur_grayscale title: Mode type: string x-stream-index: "001" reveal_restricted: description: Only users with the RevealProtectedMedia permission may reveal the media (CSAM) title: Reveal Restricted type: boolean x-stream-index: "002" required: - mode - reveal_restricted - audit_reveal type: object MemberAddedEvent: description: Emitted when a member is added to a channel. nullable: true properties: channel: $ref: '#/components/schemas/ChannelResponse' description: The channel object to which the member was added title: Channel x-stream-index: 003.002.001 channel_custom: additionalProperties: {} type: object x-stream-index: 003.001.001.006 channel_id: description: The ID of the channel to which the member was added title: Channel ID type: string x-stream-index: 003.001.002.002 channel_member_count: description: The number of members in the channel format: int32 title: Channel member count type: integer x-stream-index: 003.001.001.004 channel_message_count: description: The number of messages in the channel format: int64 title: Channel message count type: integer x-stream-index: 003.001.001.005 channel_type: description: The type of the channel to which the member was added title: Channel Type type: string x-stream-index: 003.001.002.001 cid: description: The CID of the channel to which the member was added title: Channel CID type: string x-stream-index: 003.001.001.001.002 created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: 003.001.001.001.001.003 custom: additionalProperties: {} type: object x-stream-index: 003.001.001.001.001.007 member: $ref: '#/components/schemas/ChannelMemberResponse' description: The member that was added title: Member x-stream-index: "001.001" received_at: format: date-time type: number x-stream-index: 003.001.001.001.001.004 team: description: The team ID title: Team type: string x-stream-index: 003.001.001.003 type: default: member.added description: 'The type of event: "member.added" in this case' title: Event Type type: string x-stream-index: 003.001.001.001.001.002 user: $ref: '#/components/schemas/UserResponseCommonFields' description: The user who added the member title: User x-stream-index: "002.001" required: - member - type - created_at - custom - channel title: MemberAddedEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent MemberRemovedEvent: description: Emitted when a member is removed from a channel. nullable: true properties: channel: $ref: '#/components/schemas/ChannelResponse' description: The channel object from which the member was removed title: Channel x-stream-index: 003.002.001 channel_custom: additionalProperties: {} type: object x-stream-index: 003.001.001.006 channel_id: description: The ID of the channel from which the member was removed title: Channel ID type: string x-stream-index: 003.001.002.002 channel_member_count: description: The number of members in the channel format: int32 title: Channel member count type: integer x-stream-index: 003.001.001.004 channel_message_count: description: The number of messages in the channel format: int64 title: Channel message count type: integer x-stream-index: 003.001.001.005 channel_type: description: The type of the channel from which the member was removed title: Channel Type type: string x-stream-index: 003.001.002.001 cid: description: The CID of the channel from which the member was removed title: Channel CID type: string x-stream-index: 003.001.001.001.002 created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: 003.001.001.001.001.003 custom: additionalProperties: {} type: object x-stream-index: 003.001.001.001.001.007 member: $ref: '#/components/schemas/ChannelMemberResponse' description: The member that was removed title: Member x-stream-index: "001.001" received_at: format: date-time type: number x-stream-index: 003.001.001.001.001.004 team: description: The team ID title: Team type: string x-stream-index: 003.001.001.003 type: default: member.removed description: 'The type of event: "member.removed" in this case' title: Event Type type: string x-stream-index: 003.001.001.001.001.002 user: $ref: '#/components/schemas/UserResponseCommonFields' description: The user who removed the member title: User x-stream-index: "002.001" required: - member - type - created_at - custom - channel title: MemberRemovedEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent MemberUpdatedEvent: description: Emitted when a member is updated in a channel. nullable: true properties: channel: $ref: '#/components/schemas/ChannelResponse' description: The channel object in which the member was updated title: Channel x-stream-index: 003.002.001 channel_custom: additionalProperties: {} type: object x-stream-index: 003.001.001.006 channel_id: description: The ID of the channel in which the member was updated title: Channel ID type: string x-stream-index: 003.001.002.002 channel_member_count: description: The number of members in the channel format: int32 title: Channel member count type: integer x-stream-index: 003.001.001.004 channel_message_count: description: The number of messages in the channel format: int64 title: Channel message count type: integer x-stream-index: 003.001.001.005 channel_type: description: The type of the channel in which the member was updated title: Channel Type type: string x-stream-index: 003.001.002.001 cid: description: The CID of the channel in which the member was updated title: Channel CID type: string x-stream-index: 003.001.001.001.002 created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: 003.001.001.001.001.003 custom: additionalProperties: {} type: object x-stream-index: 003.001.001.001.001.007 member: $ref: '#/components/schemas/ChannelMemberResponse' description: The member that was updated title: Member x-stream-index: "001.001" received_at: format: date-time type: number x-stream-index: 003.001.001.001.001.004 team: description: The team ID title: Team type: string x-stream-index: 003.001.001.003 type: default: member.updated description: 'The type of event: "member.updated" in this case' title: Event Type type: string x-stream-index: 003.001.001.001.001.002 user: $ref: '#/components/schemas/UserResponseCommonFields' description: The user who updated the member title: User x-stream-index: "002.001" required: - member - type - created_at - custom - channel title: MemberUpdatedEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent MemberUserRequest: properties: custom: additionalProperties: {} type: object x-stream-index: "004" id: type: string x-stream-index: "001" image: type: string x-stream-index: "003" invisible: type: boolean x-stream-index: "006" language: type: string x-stream-index: "005" name: type: string x-stream-index: "002" privacy_settings: $ref: '#/components/schemas/PrivacySettingsResponse' x-stream-index: "007" role: type: string x-stream-index: "008" teams: items: type: string type: array x-stream-index: "010" teams_role: additionalProperties: type: string type: object x-stream-index: "009" required: - id type: object MembersResponse: nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "002.001" members: description: List of found members items: $ref: '#/components/schemas/ChannelMemberResponse' title: Members type: array x-stream-index: "001" required: - members - duration type: object MessageActionRequest: nullable: true properties: form_data: additionalProperties: type: string description: ReadOnlyData to execute command with title: Form data type: object x-stream-index: "002" user: $ref: '#/components/schemas/UserRequest' x-stream-index: "003.002" user_id: type: string x-stream-index: "003.001" required: - form_data type: object MessageActionResponse: description: Basic response information nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "002.001" message: $ref: '#/components/schemas/MessageResponse' x-stream-index: "001" required: - duration title: Response type: object MessageChangeSet: properties: attachments: type: boolean x-stream-index: "005" custom: type: boolean x-stream-index: "001" html: type: boolean x-stream-index: "004" mentioned_user_ids: type: boolean x-stream-index: "006" mml: type: boolean x-stream-index: "003" pin: type: boolean x-stream-index: "009" quoted_message_id: type: boolean x-stream-index: "007" silent: type: boolean x-stream-index: "008" text: type: boolean x-stream-index: "002" required: - custom - text - mml - html - attachments - mentioned_user_ids - quoted_message_id - silent - pin type: object MessageDeletedEvent: description: Emitted when a message is deleted. nullable: true properties: channel_custom: additionalProperties: {} type: object x-stream-index: 001.001.001.006 channel_id: description: The ID of the channel where the message was sent title: Channel ID type: string x-stream-index: 001.001.002.002 channel_member_count: description: The number of members in the channel format: int32 title: Channel Member Count type: integer x-stream-index: 001.001.001.004 channel_message_count: description: The number of messages in the channel format: int64 title: Channel Message Count type: integer x-stream-index: 001.001.001.005 channel_type: description: The type of the channel where the message was sent title: Channel Type type: string x-stream-index: 001.001.002.001 cid: description: The CID of the channel where the message was sent title: Channel CID type: string x-stream-index: 001.001.001.001.002 created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: 001.001.001.001.001.003 custom: additionalProperties: {} type: object x-stream-index: 001.001.001.001.001.007 deleted_for_me: description: Whether the message was deleted only for the current user title: Deleted For Me type: boolean x-stream-index: "004" hard_delete: description: Whether the message was hard deleted title: Hard Delete type: boolean x-stream-index: "003" message: $ref: '#/components/schemas/MessageResponse' description: The deleted message title: Message x-stream-index: 001.002.002 message_id: type: string x-stream-index: 001.002.001 received_at: format: date-time type: number x-stream-index: 001.001.001.001.001.004 team: description: The team ID title: Team type: string x-stream-index: 001.001.001.003 type: default: message.deleted description: 'The type of event: "message.deleted" in this case' title: Event Type type: string x-stream-index: 001.001.001.001.001.002 user: $ref: '#/components/schemas/UserResponseCommonFields' description: The user that deleted the message title: User x-stream-index: "002.001" required: - type - created_at - custom - message_id - message - hard_delete title: MessageDeletedEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent MessageFlagResponse: nullable: true properties: approved_at: format: date-time type: number x-stream-index: "013" created_at: format: date-time type: number x-stream-index: "009" created_by_automod: type: boolean x-stream-index: "001" custom: additionalProperties: {} type: object x-stream-index: "008" details: $ref: '#/components/schemas/FlagDetailsResponse' x-stream-index: "006" message: $ref: '#/components/schemas/MessageResponse' x-stream-index: "005" moderation_feedback: $ref: '#/components/schemas/FlagFeedbackResponse' x-stream-index: "003" moderation_result: $ref: '#/components/schemas/MessageModerationResult' x-stream-index: "002" reason: type: string x-stream-index: "007" rejected_at: format: date-time type: number x-stream-index: "014" reviewed_at: format: date-time type: number x-stream-index: "011" reviewed_by: $ref: '#/components/schemas/UserResponse' x-stream-index: "012" updated_at: format: date-time type: number x-stream-index: "010" user: $ref: '#/components/schemas/UserResponse' x-stream-index: "004" required: - created_by_automod - created_at - updated_at type: object MessageFlaggedEvent: description: This event is sent when a message gets flagged. The event contains information about the message that was flagged. nullable: true properties: channel_custom: additionalProperties: {} type: object x-stream-index: 001.001.001.006 channel_id: description: The ID of the channel where the message was sent title: Channel ID type: string x-stream-index: 001.001.002.002 channel_member_count: description: The number of members in the channel format: int32 title: Channel Member Count type: integer x-stream-index: 001.001.001.004 channel_message_count: description: The number of messages in the channel format: int64 title: Channel Message Count type: integer x-stream-index: 001.001.001.005 channel_type: description: The type of the channel where the message was sent title: Channel Type type: string x-stream-index: 001.001.002.001 cid: description: The CID of the channel where the message was sent title: Channel CID type: string x-stream-index: 001.001.001.001.002 created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: 001.001.001.001.001.003 custom: additionalProperties: {} description: Custom data title: Custom type: object x-stream-index: "007" details: $ref: '#/components/schemas/MessageModerationResult' description: Moderation details title: Details x-stream-index: "006" flag: $ref: '#/components/schemas/FlagResponse' description: The flag that was created title: Flag x-stream-index: "003" message: $ref: '#/components/schemas/MessageResponse' description: The flagged message title: Message x-stream-index: 001.002.002 message_id: type: string x-stream-index: 001.002.001 reason: description: The reason for the flag title: Reason type: string x-stream-index: "004" received_at: format: date-time type: number x-stream-index: 001.001.001.001.001.004 team: description: The team ID title: Team type: string x-stream-index: 001.001.001.003 total_flags: description: The total number of flags for the user format: int32 title: Total flags type: integer x-stream-index: "005" type: default: message.flagged description: 'The type of event: "message.flagged" in this case' title: Event Type type: string x-stream-index: 001.001.001.001.001.002 user: $ref: '#/components/schemas/UserResponseCommonFields' description: The user that flagged the message title: User x-stream-index: "002.001" required: - type - created_at - message_id - message title: MessageFlaggedEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent MessageHistoryEntryResponse: nullable: true properties: attachments: items: $ref: '#/components/schemas/Attachment' type: array x-stream-index: "006" custom: additionalProperties: {} type: object x-stream-index: "007" is_deleted: type: boolean x-stream-index: "004" message_id: type: string x-stream-index: "001" message_updated_at: format: date-time type: number x-stream-index: "003" message_updated_by_id: type: string x-stream-index: "002" text: type: string x-stream-index: "005" required: - message_id - message_updated_by_id - message_updated_at - is_deleted - text - attachments - custom type: object MessageModerationResult: description: Result of the message moderation properties: action: description: Action taken by automod title: Action type: string x-stream-index: "002" ai_moderation_response: $ref: '#/components/schemas/ModerationResponse' description: Response from AI moderation title: ModerationResponse x-stream-index: "007" blocked_word: description: Word that was blocked title: Blocked word type: string x-stream-index: "004" blocklist_name: description: Name of the blocklist title: Blocklist name type: string x-stream-index: "005" created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: "010" message_id: description: ID of the message title: Message ID type: string x-stream-index: "001" moderated_by: description: User who moderated the message title: Moderated by type: string x-stream-index: "003" moderation_thresholds: $ref: '#/components/schemas/Thresholds' description: Thresholds for AI moderation title: Thresholds x-stream-index: "006" updated_at: description: Date/time of the last update format: date-time title: Updated at type: number x-stream-index: "011" user_bad_karma: description: Whether user has bad karma title: User bad karma type: boolean x-stream-index: "009" user_karma: description: Karma of the user format: double title: User karma type: number x-stream-index: "008" required: - message_id - action - user_karma - user_bad_karma - created_at - updated_at title: Message moderation result type: object MessageNewEvent: description: Emitted when a message was successfully sent or when a message became visible after command execution. nullable: true properties: channel: $ref: '#/components/schemas/ChannelResponse' x-stream-index: "006.001" channel_custom: additionalProperties: {} type: object x-stream-index: 001.001.001.006 channel_id: description: The ID of the channel where the message was sent title: Channel ID type: string x-stream-index: 001.001.002.002 channel_member_count: description: The number of members in the channel format: int32 title: Channel Member Count type: integer x-stream-index: 001.001.001.004 channel_message_count: description: The number of messages in the channel format: int64 title: Channel Message Count type: integer x-stream-index: 001.001.001.005 channel_type: description: The type of the channel where the message was sent title: Channel Type type: string x-stream-index: 001.001.002.001 cid: description: The CID of the channel where the message was sent title: Channel CID type: string x-stream-index: 001.001.001.001.002 created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: 001.001.001.001.001.003 custom: additionalProperties: {} type: object x-stream-index: 001.001.001.001.001.007 grouped_unread_channels: additionalProperties: format: int32 type: integer type: object x-stream-index: "010" message: $ref: '#/components/schemas/MessageResponse' description: The new message title: Message x-stream-index: 001.002.002 message_id: type: string x-stream-index: 001.002.001 parent_author: description: The author of the parent message title: Parent author type: string x-stream-index: "005" received_at: format: date-time type: number x-stream-index: 001.001.001.001.001.004 team: description: The team ID title: Team type: string x-stream-index: 001.001.001.003 thread_participants: description: The participants of the thread items: $ref: '#/components/schemas/UserResponseCommonFields' title: Thread participants type: array x-stream-index: "004.001" total_unread_count: format: int32 type: integer x-stream-index: "008" type: default: message.new description: 'The type of event: "message.new" in this case' title: Event Type type: string x-stream-index: 001.001.001.001.001.002 unread_channels: format: int32 type: integer x-stream-index: "009" unread_count: description: The number of unread messages format: int32 title: Unread count type: integer x-stream-index: "007" user: $ref: '#/components/schemas/UserResponseCommonFields' description: The user that sent the message title: User x-stream-index: "002.001" watcher_count: description: The number of watchers format: int32 title: Watcher count type: integer x-stream-index: "003" required: - type - created_at - custom - message_id - message - watcher_count title: MessageNewEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent MessageOptions: properties: include_thread_participants: type: boolean x-stream-index: "001" member_custom_include: items: type: string maxItems: 8 type: array x-stream-index: "002" type: object MessagePaginationParams: properties: created_at_after: description: The timestamp to get messages with a created_at timestamp greater than format: date-time title: Created_at after type: string x-stream-index: "008" created_at_after_or_equal: description: The timestamp to get messages with a created_at timestamp greater than or equal to format: date-time title: Created_at after or equal type: string x-stream-index: "007" created_at_around: description: The result will be a set of messages, that are both older and newer than the created_at timestamp provided, distributed evenly around the timestamp format: date-time title: Created_at around type: string x-stream-index: "012" created_at_before: description: The timestamp to get messages with a created_at timestamp smaller than format: date-time title: Created_at after before type: string x-stream-index: "010" created_at_before_or_equal: description: The timestamp to get messages with a created_at timestamp smaller than or equal to format: date-time title: Created_at after before or equal type: string x-stream-index: "009" id_around: description: The result will be a set of messages, that are both older and newer than the message with the provided ID, and the message with the ID provided will be in the middle of the set title: Id around type: string x-stream-index: "011" id_gt: description: The ID of the message to get messages with a timestamp greater than title: IDGT type: string x-stream-index: "004" id_gte: description: The ID of the message to get messages with a timestamp greater than or equal to title: IDGTE type: string x-stream-index: "003" id_lt: description: The ID of the message to get messages with a timestamp smaller than title: IDLT type: string x-stream-index: "006" id_lte: description: The ID of the message to get messages with a timestamp smaller than or equal to title: IDLTE type: string x-stream-index: "005" limit: description: 'The maximum number of messages to return (max limit ' format: int32 minimum: 0 title: Limit type: integer x-stream-index: "001" type: object MessageReadEvent: description: Emitted when a channel or thread is marked as read. nullable: true properties: channel: $ref: '#/components/schemas/ChannelResponse' x-stream-index: "003.001" channel_custom: additionalProperties: {} type: object x-stream-index: 001.001.006 channel_id: description: The ID of the channel where the message was read title: Channel ID type: string x-stream-index: 001.002.002 channel_member_count: description: The number of members in the channel format: int32 title: Channel Member Count type: integer x-stream-index: 001.001.004 channel_message_count: description: The number of messages in the channel format: int64 title: Channel Message Count type: integer x-stream-index: 001.001.005 channel_type: description: The type of the channel where the message was read title: Channel Type type: string x-stream-index: 001.002.001 cid: description: The CID of the channel where the message was read title: Channel CID type: string x-stream-index: 001.001.001.002 created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: 001.001.001.001.003 custom: additionalProperties: {} type: object x-stream-index: 001.001.001.001.007 last_read_message_id: description: The ID of the last read message title: Last Read Message ID type: string x-stream-index: "005" received_at: format: date-time type: number x-stream-index: 001.001.001.001.004 team: description: The team ID title: Team type: string x-stream-index: 001.001.003 thread: $ref: '#/components/schemas/ThreadResponse' description: The thread where the message was read title: Thread x-stream-index: "004" type: default: message.read description: 'The type of event: "message.read" in this case' title: Event Type type: string x-stream-index: 001.001.001.001.002 user: $ref: '#/components/schemas/UserResponseCommonFields' description: The user that read the message title: User x-stream-index: "002.001" required: - type - created_at - custom title: MessageReadEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent MessageRequest: description: Message data for creating or updating a message properties: attachments: description: Array of message attachments items: $ref: '#/components/schemas/Attachment' maxItems: 30 title: Message attachments type: array x-stream-docs-page-id: message_format#attachment-format x-stream-index: "004" custom: additionalProperties: {} type: object x-stream-index: "007" html: description: Contains HTML markup of the message. Can only be set when using server-side API title: HTML content type: string x-stream-index: "014" id: description: Message ID is unique string identifier of the message maxLength: 255 title: ID type: string x-stream-index: "001" mentioned_channel: type: boolean x-stream-index: "011" mentioned_group_ids: description: List of user group IDs to mention. Group members who are also channel members will receive push notifications. Max 10 groups items: type: string maxItems: 10 title: Mentioned Groups type: array x-stream-index: "010" mentioned_here: type: boolean x-stream-index: "012" mentioned_roles: items: type: string maxItems: 10 type: array x-stream-index: "009" mentioned_users: description: Array of user IDs to mention items: type: string maxItems: 100 title: Mentioned User IDs type: array x-stream-index: "008" mml: description: Should be empty if `text` is provided. Can only be set when using server-side API title: Messaging Markup Language type: string x-stream-docs-page-id: mml_overview x-stream-index: "003" parent_id: description: ID of parent message (thread) title: Parent message ID type: string x-stream-docs-page-id: threads x-stream-index: "005" pin_expires: description: Date when pinned message expires format: date-time nullable: true title: Pin expiration date type: string x-stream-docs-page-id: pinned_messages x-stream-index: "019" pinned: description: Whether message is pinned or not title: Pinned type: boolean x-stream-docs-page-id: pinned_messages x-stream-index: "017" pinned_at: description: Date when message got pinned format: date-time nullable: true title: Pinned at type: string x-stream-docs-page-id: pinned_messages x-stream-index: "018" poll_id: description: Identifier of the poll to include in the message title: Poll ID type: string x-stream-index: "043" quoted_message_id: title: ID of quoted message type: string x-stream-docs-page-id: threads#quote-message x-stream-index: "013" restricted_visibility: description: A list of user ids that have restricted visibility to the message items: type: string maxItems: 10 title: Restricted visibility type: array x-stream-index: "020" shared_location: $ref: '#/components/schemas/SharedLocation' description: Contains shared location data title: Shared Location x-stream-index: "044" show_in_channel: description: Whether thread reply should be shown in the channel as well title: Show in channel type: boolean x-stream-docs-page-id: threads x-stream-index: "006" silent: description: Whether message is silent or not title: Silent type: boolean x-stream-index: "016" text: description: Text of the message. Should be empty if `mml` is provided title: Text type: string x-stream-index: "002" type: description: 'Contains type of the message. One of: regular, system' enum: - regular - system title: Message Type type: string x-stream-docs-page-id: message_format#message-types x-stream-index: "015" user: $ref: '#/components/schemas/UserRequest' x-stream-index: "025.002" user_id: type: string x-stream-index: "025.001" title: Message Request type: object MessageResponse: description: Represents any chat message properties: attachments: description: Array of message attachments items: $ref: '#/components/schemas/Attachment' title: Message attachments type: array x-stream-docs-page-id: message_format#attachment-format x-stream-index: "009" cid: description: Channel unique identifier in : format title: Channel CID type: string x-stream-index: "024" command: description: Contains provided slash command title: Command type: string x-stream-docs-page-id: custom_commands_webhook x-stream-index: "004" created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: "025" custom: additionalProperties: {} type: object x-stream-index: "028" deleted_at: description: Date/time of deletion format: date-time title: Deleted at type: number x-stream-index: "027" deleted_for_me: type: boolean x-stream-index: "051" deleted_reply_count: format: int32 type: integer x-stream-index: "020" draft: $ref: '#/components/schemas/DraftResponse' x-stream-index: "048" html: description: Contains HTML markup of the message. Can only be set when using server-side API title: HTML content type: string x-stream-index: "005" i18n: additionalProperties: type: string description: Object with translations. Key `language` contains the original language key. Other keys contain translations title: Internationalization info type: object x-stream-docs-page-id: translation x-stream-index: "037" id: description: Message ID is unique string identifier of the message title: ID type: string x-stream-index: "001" image_labels: additionalProperties: items: type: string type: array description: Contains image moderation information title: Image moderation labels type: object x-stream-index: "030" latest_reactions: description: List of 10 latest reactions to this message items: $ref: '#/components/schemas/ReactionResponse' title: Latest reactions type: array x-stream-index: "010" member: $ref: '#/components/schemas/ChannelMemberPartialResponse' description: Channel member data for the message sender including the `channel_role`; also includes `custom` when requested via `member_custom_include` title: Member object x-stream-index: "008" mentioned_channel: description: Whether the message mentioned the channel tag title: Mentioned Channel type: boolean x-stream-index: "035" mentioned_channel_members: additionalProperties: $ref: '#/components/schemas/ChannelMemberPartialResponse' description: Channel member data for the users mentioned in the message, keyed by user id. Only present when the app has member custom on mentioned users enabled, and only for the first two mentioned users of each message title: Mentioned members type: object x-stream-index: "052" x-stream-map: description: Channel member data for that mentioned user, including channel_role and custom key: user_id title: Member object mentioned_group_ids: description: List of user group IDs mentioned in the message. Group members who are also channel members will receive push notifications based on their push preferences. Max 10 groups items: type: string title: Mentioned Groups type: array x-stream-index: "033" mentioned_groups: description: List of mentioned user group objects. items: $ref: '#/components/schemas/UserGroupResponse' title: Mentioned Groups Details type: array x-stream-index: "034" mentioned_here: description: Whether the message mentioned online users with @here tag title: Mentioned Here type: boolean x-stream-index: "036" mentioned_roles: description: List of roles mentioned in the message (e.g. admin, channel_moderator, custom roles). Members with matching roles will receive push notifications based on their push preferences. Max 10 roles items: type: string title: Mentioned Roles type: array x-stream-index: "032" mentioned_users: description: List of mentioned users items: $ref: '#/components/schemas/UserResponse' title: Mentioned Users type: array x-stream-index: "031" message_text_updated_at: format: date-time type: number x-stream-index: "043" mml: description: Should be empty if `text` is provided. Can only be set when using server-side API title: Messaging Markup Language type: string x-stream-docs-page-id: mml_overview x-stream-index: "003" moderation: $ref: '#/components/schemas/ModerationV2Response' x-stream-index: "046" own_reactions: description: List of 10 latest reactions of authenticated user to this message items: $ref: '#/components/schemas/ReactionResponse' title: Own reactions type: array x-stream-index: "011" parent_id: description: ID of parent message (thread) title: Parent message ID type: string x-stream-docs-page-id: threads x-stream-index: "017" pin_expires: description: Date when pinned message expires format: date-time title: Pin expiration date type: number x-stream-docs-page-id: pinned_messages x-stream-index: "042" pinned: description: Whether message is pinned or not title: Pinned type: boolean x-stream-docs-page-id: pinned_messages x-stream-index: "039" pinned_at: description: Date when message got pinned format: date-time title: Pinned at type: number x-stream-docs-page-id: pinned_messages x-stream-index: "040" pinned_by: $ref: '#/components/schemas/UserResponse' description: Contains user who pinned the message title: Pinned by x-stream-docs-page-id: pinned_messages x-stream-index: "041" poll: $ref: '#/components/schemas/PollResponseData' x-stream-index: "045" poll_id: description: Identifier of the poll to include in the message title: Poll ID type: string x-stream-index: "044" quoted_message: $ref: '#/components/schemas/MessageResponse' description: Contains quoted message title: Quoted message x-stream-docs-page-id: threads#quote-message x-stream-index: "022" quoted_message_id: title: ID of quoted message type: string x-stream-docs-page-id: threads#quote-message x-stream-index: "021" reaction_counts: additionalProperties: format: int32 type: integer description: 'An object containing number of reactions of each type. Key: reaction type (string), value: number of reactions (int)' title: Reaction counts type: object x-stream-index: "012" reaction_groups: additionalProperties: $ref: '#/components/schemas/ReactionGroupResponse' type: object x-stream-index: "016" reaction_scores: additionalProperties: format: int32 type: integer description: 'An object containing scores of reactions of each type. Key: reaction type (string), value: total score of reactions (int)' title: Reaction scores type: object x-stream-index: "013" reminder: $ref: '#/components/schemas/ReminderResponseData' x-stream-index: "049" reply_count: description: Number of replies to this message format: int32 title: Reply count type: integer x-stream-index: "019" restricted_visibility: description: A list of user ids that have restricted visibility to the message, if the list is not empty, the message is only visible to the users in the list items: type: string title: Restricted visibility type: array x-stream-index: "047" shadowed: description: Whether the message was shadowed or not title: Shadowed type: boolean x-stream-docs-page-id: moderation#shadow-ban x-stream-index: "029" shared_location: $ref: '#/components/schemas/SharedLocationResponseData' description: Contains shared location data title: Shared Location x-stream-index: "050" show_in_channel: description: Whether thread reply should be shown in the channel as well title: Show in channel type: boolean x-stream-docs-page-id: threads x-stream-index: "018" silent: description: Whether message is silent or not title: Silent type: boolean x-stream-index: "038" text: description: Text of the message. Should be empty if `mml` is provided title: Text type: string x-stream-index: "002" thread_participants: description: List of users who participate in thread items: $ref: '#/components/schemas/UserResponse' title: Thread participants type: array x-stream-docs-page-id: threads#quote-message x-stream-index: "023" type: description: 'Contains type of the message. One of: regular, ephemeral, error, reply, system, deleted' title: Message Type type: string x-stream-docs-page-id: message_format#message-types x-stream-index: "006" updated_at: description: Date/time of the last update format: date-time title: Updated at type: number x-stream-index: "026" user: $ref: '#/components/schemas/UserResponse' description: Sender of the message. Required when using server-side API title: User object 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 title: Message type: object x-stream-docs-page-id: send_message MessageUnblockedEvent: description: Emitted when a message is unblocked. nullable: true properties: cid: description: The CID of the channel where the message was unblocked title: Channel CID type: string x-stream-index: "001.002" created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: 001.001.003 custom: additionalProperties: {} type: object x-stream-index: 001.001.007 message: $ref: '#/components/schemas/MessageResponse' description: The unblocked message title: Message x-stream-index: "002.002" message_id: type: string x-stream-index: "002.001" received_at: format: date-time type: number x-stream-index: 001.001.004 type: default: message.unblocked description: 'The type of event: "message.unblocked" in this case' title: Event Type type: string x-stream-index: 001.001.002 user: $ref: '#/components/schemas/UserResponseCommonFields' description: The user that unblocked the message title: User x-stream-index: "003.001" required: - type - created_at - custom - message_id - message title: MessageUnblockedEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent MessageUndeletedEvent: description: Emitted when a message is undeleted. nullable: true properties: channel_custom: additionalProperties: {} type: object x-stream-index: 001.001.001.006 channel_id: description: The ID of the channel where the message was sent title: Channel ID type: string x-stream-index: 001.001.002.002 channel_member_count: description: The number of members in the channel format: int32 title: Channel Member Count type: integer x-stream-index: 001.001.001.004 channel_message_count: description: The number of messages in the channel format: int64 title: Channel Message Count type: integer x-stream-index: 001.001.001.005 channel_type: description: The type of the channel where the message was sent title: Channel Type type: string x-stream-index: 001.001.002.001 cid: description: The CID of the channel where the message was sent title: Channel CID type: string x-stream-index: 001.001.001.001.002 created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: 001.001.001.001.001.003 custom: additionalProperties: {} type: object x-stream-index: 001.001.001.001.001.007 message: $ref: '#/components/schemas/MessageResponse' description: The undeleted message title: Message x-stream-index: 001.002.002 message_id: type: string x-stream-index: 001.002.001 received_at: format: date-time type: number x-stream-index: 001.001.001.001.001.004 team: description: The team ID title: Team type: string x-stream-index: 001.001.001.003 type: default: message.undeleted description: 'The type of event: "message.undeleted" in this case' title: Event Type type: string x-stream-index: 001.001.001.001.001.002 required: - type - created_at - custom - message_id - message title: MessageUndeletedEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent MessageUpdate: properties: change_set: $ref: '#/components/schemas/MessageChangeSet' x-stream-index: "002" old_text: type: string x-stream-index: "001" type: object MessageUpdatedEvent: description: Emitted when a BaseEvent is updated with translation data or when a message is updated. nullable: true properties: channel_custom: additionalProperties: {} type: object x-stream-index: 001.001.001.006 channel_id: description: The ID of the channel where the message was sent title: Channel ID type: string x-stream-index: 001.001.002.002 channel_member_count: description: The number of members in the channel format: int32 title: Channel Member Count type: integer x-stream-index: 001.001.001.004 channel_message_count: description: The number of messages in the channel format: int64 title: Channel Message Count type: integer x-stream-index: 001.001.001.005 channel_type: description: The type of the channel where the message was sent title: Channel Type type: string x-stream-index: 001.001.002.001 cid: description: The CID of the channel where the message was sent title: Channel CID type: string x-stream-index: 001.001.001.001.002 created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: 001.001.001.001.001.003 custom: additionalProperties: {} type: object x-stream-index: 001.001.001.001.001.007 message: $ref: '#/components/schemas/MessageResponse' description: The updated message title: Message x-stream-index: 001.002.002 message_id: type: string x-stream-index: 001.002.001 message_update: $ref: '#/components/schemas/MessageUpdate' description: Identifies the changes in the message title: Message Update x-stream-index: "003" received_at: format: date-time type: number x-stream-index: 001.001.001.001.001.004 team: description: The team ID title: Team type: string x-stream-index: 001.001.001.003 type: default: message.updated description: 'The type of event: "message.updated" in this case' title: Event Type type: string x-stream-index: 001.001.001.001.001.002 user: $ref: '#/components/schemas/UserResponseCommonFields' description: The user that updated the message title: User x-stream-index: "002.001" required: - type - created_at - custom - message_id - message title: MessageUpdatedEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent MessageWithChannelResponse: description: Represents any chat message properties: attachments: description: Array of message attachments items: $ref: '#/components/schemas/Attachment' title: Message attachments type: array x-stream-docs-page-id: message_format#attachment-format x-stream-index: "001.009" channel: $ref: '#/components/schemas/ChannelResponse' description: Channel object title: Channel x-stream-index: "002" cid: description: Channel unique identifier in : format title: Channel CID type: string x-stream-index: "001.024" command: description: Contains provided slash command title: Command type: string x-stream-docs-page-id: custom_commands_webhook x-stream-index: "001.004" created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: "001.025" custom: additionalProperties: {} type: object x-stream-index: "001.028" deleted_at: description: Date/time of deletion format: date-time title: Deleted at type: number x-stream-index: "001.027" deleted_for_me: type: boolean x-stream-index: "001.051" deleted_reply_count: format: int32 type: integer x-stream-index: "001.020" draft: $ref: '#/components/schemas/DraftResponse' x-stream-index: "001.048" html: description: Contains HTML markup of the message. Can only be set when using server-side API title: HTML content type: string x-stream-index: "001.005" i18n: additionalProperties: type: string description: Object with translations. Key `language` contains the original language key. Other keys contain translations title: Internationalization info type: object x-stream-docs-page-id: translation x-stream-index: "001.037" id: description: Message ID is unique string identifier of the message title: ID type: string x-stream-index: "001.001" image_labels: additionalProperties: items: type: string type: array description: Contains image moderation information title: Image moderation labels type: object x-stream-index: "001.030" latest_reactions: description: List of 10 latest reactions to this message items: $ref: '#/components/schemas/ReactionResponse' title: Latest reactions type: array x-stream-index: "001.010" member: $ref: '#/components/schemas/ChannelMemberPartialResponse' description: Channel member data for the message sender including the `channel_role`; also includes `custom` when requested via `member_custom_include` title: Member object x-stream-index: "001.008" mentioned_channel: description: Whether the message mentioned the channel tag title: Mentioned Channel type: boolean x-stream-index: "001.035" mentioned_channel_members: additionalProperties: $ref: '#/components/schemas/ChannelMemberPartialResponse' description: Channel member data for the users mentioned in the message, keyed by user id. Only present when the app has member custom on mentioned users enabled, and only for the first two mentioned users of each message title: Mentioned members type: object x-stream-index: "001.052" x-stream-map: description: Channel member data for that mentioned user, including channel_role and custom key: user_id title: Member object mentioned_group_ids: description: List of user group IDs mentioned in the message. Group members who are also channel members will receive push notifications based on their push preferences. Max 10 groups items: type: string title: Mentioned Groups type: array x-stream-index: "001.033" mentioned_groups: description: List of mentioned user group objects. items: $ref: '#/components/schemas/UserGroupResponse' title: Mentioned Groups Details type: array x-stream-index: "001.034" mentioned_here: description: Whether the message mentioned online users with @here tag title: Mentioned Here type: boolean x-stream-index: "001.036" mentioned_roles: description: List of roles mentioned in the message (e.g. admin, channel_moderator, custom roles). Members with matching roles will receive push notifications based on their push preferences. Max 10 roles items: type: string title: Mentioned Roles type: array x-stream-index: "001.032" mentioned_users: description: List of mentioned users items: $ref: '#/components/schemas/UserResponse' title: Mentioned Users type: array x-stream-index: "001.031" message_text_updated_at: format: date-time type: number x-stream-index: "001.043" mml: description: Should be empty if `text` is provided. Can only be set when using server-side API title: Messaging Markup Language type: string x-stream-docs-page-id: mml_overview x-stream-index: "001.003" moderation: $ref: '#/components/schemas/ModerationV2Response' x-stream-index: "001.046" own_reactions: description: List of 10 latest reactions of authenticated user to this message items: $ref: '#/components/schemas/ReactionResponse' title: Own reactions type: array x-stream-index: "001.011" parent_id: description: ID of parent message (thread) title: Parent message ID type: string x-stream-docs-page-id: threads x-stream-index: "001.017" pin_expires: description: Date when pinned message expires format: date-time title: Pin expiration date type: number x-stream-docs-page-id: pinned_messages x-stream-index: "001.042" pinned: description: Whether message is pinned or not title: Pinned type: boolean x-stream-docs-page-id: pinned_messages x-stream-index: "001.039" pinned_at: description: Date when message got pinned format: date-time title: Pinned at type: number x-stream-docs-page-id: pinned_messages x-stream-index: "001.040" pinned_by: $ref: '#/components/schemas/UserResponse' description: Contains user who pinned the message title: Pinned by x-stream-docs-page-id: pinned_messages x-stream-index: "001.041" poll: $ref: '#/components/schemas/PollResponseData' x-stream-index: "001.045" poll_id: description: Identifier of the poll to include in the message title: Poll ID type: string x-stream-index: "001.044" quoted_message: $ref: '#/components/schemas/MessageResponse' description: Contains quoted message title: Quoted message x-stream-docs-page-id: threads#quote-message x-stream-index: "001.022" quoted_message_id: title: ID of quoted message type: string x-stream-docs-page-id: threads#quote-message x-stream-index: "001.021" reaction_counts: additionalProperties: format: int32 type: integer description: 'An object containing number of reactions of each type. Key: reaction type (string), value: number of reactions (int)' title: Reaction counts type: object x-stream-index: "001.012" reaction_groups: additionalProperties: $ref: '#/components/schemas/ReactionGroupResponse' type: object x-stream-index: "001.016" reaction_scores: additionalProperties: format: int32 type: integer description: 'An object containing scores of reactions of each type. Key: reaction type (string), value: total score of reactions (int)' title: Reaction scores type: object x-stream-index: "001.013" reminder: $ref: '#/components/schemas/ReminderResponseData' x-stream-index: "001.049" reply_count: description: Number of replies to this message format: int32 title: Reply count type: integer x-stream-index: "001.019" restricted_visibility: description: A list of user ids that have restricted visibility to the message, if the list is not empty, the message is only visible to the users in the list items: type: string title: Restricted visibility type: array x-stream-index: "001.047" shadowed: description: Whether the message was shadowed or not title: Shadowed type: boolean x-stream-docs-page-id: moderation#shadow-ban x-stream-index: "001.029" shared_location: $ref: '#/components/schemas/SharedLocationResponseData' description: Contains shared location data title: Shared Location x-stream-index: "001.050" show_in_channel: description: Whether thread reply should be shown in the channel as well title: Show in channel type: boolean x-stream-docs-page-id: threads x-stream-index: "001.018" silent: description: Whether message is silent or not title: Silent type: boolean x-stream-index: "001.038" text: description: Text of the message. Should be empty if `mml` is provided title: Text type: string x-stream-index: "001.002" thread_participants: description: List of users who participate in thread items: $ref: '#/components/schemas/UserResponse' title: Thread participants type: array x-stream-docs-page-id: threads#quote-message x-stream-index: "001.023" type: description: 'Contains type of the message. One of: regular, ephemeral, error, reply, system, deleted' title: Message Type type: string x-stream-docs-page-id: message_format#message-types x-stream-index: "001.006" updated_at: description: Date/time of the last update format: date-time title: Updated at type: number x-stream-index: "001.026" user: $ref: '#/components/schemas/UserResponse' description: Sender of the message. Required when using server-side API title: User object x-stream-index: "001.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 - channel title: Message type: object x-stream-docs-page-id: send_message MetricStats: description: Statistics for a single metric with optional daily breakdown properties: daily: description: Per-day values (only present in daily mode) items: $ref: '#/components/schemas/DailyValue' title: '[]DailyValue' type: array x-stream-index: "001" total: description: Aggregated total value format: int64 title: integer type: integer x-stream-index: "002" required: - total title: Metric Stats type: object ModerationAction: description: What a moderation rule does when it matches. enum: - flag - shadow - remove - bounce - bounce_flag - bounce_remove title: ModerationAction type: string 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 ModerationAnalysisFailedEvent: description: An /analyze call was acknowledged but its moderation could not be completed, so no verdict exists for the content. The content was NOT screened — treat it as unverified rather than clean, and re-submit if a verdict is required. nullable: true properties: config_key: description: The moderation policy key the request targeted. title: ConfigKey type: string x-stream-index: "005" content_ids: additionalProperties: type: string description: Echo of the request's `content_ids`, keyed by text/image label. On keyframe and caption streams every request repeats the same entity_type/entity_id/entity_creator_id, so this is what identifies the specific submission that went unscreened. title: ContentIDs type: object x-stream-index: "006" created_at: format: date-time type: number x-stream-index: "001.003" custom: additionalProperties: {} description: Echo of the `custom` metadata on the /analyze request. title: Custom type: object x-stream-index: "007" entity_creator_id: description: Echo of the `entity_creator_id` on the /analyze request. title: EntityCreatorID type: string x-stream-index: "004" entity_id: description: Echo of the `entity_id` on the /analyze request. title: EntityID type: string x-stream-index: "003" entity_type: description: Echo of the `entity_type` on the /analyze request. title: EntityType type: string x-stream-index: "002" received_at: format: date-time type: number x-stream-index: "001.004" type: default: moderation.analysis.failed type: string x-stream-index: "001.002" required: - type - created_at title: ModerationAnalysisFailedEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent ModerationBanResponse: nullable: true properties: duration: type: string x-stream-index: "001.001" required: - duration type: object ModerationCallResponse: properties: backstage: type: boolean x-stream-index: "007" blocked_user_ids: items: type: string type: array x-stream-index: "009" captioning: type: boolean x-stream-index: "017" channel_cid: type: string x-stream-index: "014" cid: type: string x-stream-index: "001" created_at: format: date-time type: number x-stream-index: "004" created_by: $ref: '#/components/schemas/UserResponse' x-stream-index: "010" current_session_id: type: string x-stream-index: "006" custom: additionalProperties: {} type: object x-stream-index: "008" ended_at: format: date-time type: number x-stream-index: "011" id: type: string x-stream-index: "002" join_ahead_time_seconds: format: int32 type: integer x-stream-index: "019" recording: type: boolean x-stream-index: "015" routing_number: type: string x-stream-index: "020" starts_at: format: date-time type: number x-stream-index: "012" team: type: string x-stream-index: "013" transcribing: type: boolean x-stream-index: "016" translating: type: boolean x-stream-index: "018" type: type: string x-stream-index: "003" updated_at: format: date-time type: number x-stream-index: "005" required: - cid - id - type - created_at - updated_at - current_session_id - backstage - custom - blocked_user_ids - recording - transcribing - captioning - translating type: object ModerationCheckCompletedEvent: description: This event is sent when a moderation check is completed nullable: true properties: created_at: format: date-time type: number x-stream-index: "001.003" custom: additionalProperties: {} type: object x-stream-index: "001.007" entity_id: description: The ID of entity which was moderated title: EntityID type: string x-stream-index: "002" entity_type: description: The type of the entity which was moderated title: EntityType type: string x-stream-index: "003" moderation_payload: $ref: '#/components/schemas/ModerationPayloadResponse' description: 'Set only for audio moderation. Contains only audios and custom.transcripts: one transcript per audio URL, in the same order, with an empty string for a skipped URL' title: ModerationPayload x-stream-index: "006" received_at: format: date-time type: number x-stream-index: "001.004" recommended_action: description: The recommended action title: RecommendedAction type: string x-stream-index: "004" review_queue_item_id: description: The review queue item ID title: ReviewQueueItemID type: string x-stream-index: "005" type: default: moderation_check.completed type: string x-stream-index: "001.002" required: - type - created_at - custom - entity_id - entity_type - recommended_action - review_queue_item_id title: ModerationCheckCompletedEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent 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: string x-stream-index: "020" flood_config: $ref: '#/components/schemas/FloodConfig' x-stream-index: "018" google_vision_config: $ref: '#/components/schemas/GoogleVisionConfig' x-stream-index: "016" key: type: string x-stream-index: "004" llm_config: $ref: '#/components/schemas/LLMConfig' x-stream-index: "019" published_version: format: int32 type: integer x-stream-index: "026" supported_video_call_harm_types: items: type: string type: array x-stream-index: "023" team: type: string x-stream-index: "005" updated_at: format: date-time type: string x-stream-index: "021" velocity_filter_config: $ref: '#/components/schemas/VelocityFilterConfig' x-stream-index: "017" video_call_rule_config: $ref: '#/components/schemas/VideoCallRuleConfig' x-stream-index: "022" type: object ModerationCustomActionEvent: description: This event is sent when a custom moderation action is executed nullable: true properties: action_id: description: The ID of the custom action that was executed title: ActionID type: string x-stream-index: "002" action_options: additionalProperties: {} description: Additional options passed to the custom action title: ActionOptions type: object x-stream-index: "003" created_at: format: date-time type: number x-stream-index: "001.003" custom: additionalProperties: {} type: object x-stream-index: "001.007" message: $ref: '#/components/schemas/MessageResponse' description: The message if the moderated content was a message title: Message x-stream-index: "005" received_at: format: date-time type: number x-stream-index: "001.004" review_queue_item: $ref: '#/components/schemas/ReviewQueueItemResponse' description: The review queue item the action was executed on title: ReviewQueueItem x-stream-index: "004" type: default: moderation.custom_action type: string x-stream-index: "001.002" required: - type - created_at - custom - action_id - review_queue_item title: ModerationCustomActionEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent ModerationDashboardPreferences: properties: allowed_moderation_action_reasons: items: type: string type: array x-stream-index: "004" async_review_queue_upsert: type: boolean x-stream-index: "006" block_foreign_cdn_attachments: type: boolean x-stream-index: "014" custom_views_enabled: type: boolean x-stream-index: "012" disable_action_logs: type: boolean x-stream-index: "008" disable_audit_logs: type: boolean x-stream-index: "007" disable_flagging_reviewed_entity: type: boolean x-stream-index: "003" enforce_shadow_server_side: type: boolean x-stream-index: "016" escalation_queue_enabled: type: boolean x-stream-index: "011" escalation_reasons: items: type: string type: array x-stream-index: "010" filterable_custom_keys: items: type: string type: array x-stream-index: "015" flag_user_on_flagged_content: type: boolean x-stream-index: "002" include_attachment_payload: type: boolean x-stream-index: "013" keyframe_classifications_map: additionalProperties: additionalProperties: type: boolean type: object type: object x-stream-index: "009" media_label_display: additionalProperties: type: string type: object x-stream-index: "017" media_queue_blur_enabled: type: boolean x-stream-index: "001" overview_dashboard: $ref: '#/components/schemas/OverviewDashboardConfig' x-stream-index: "005" text_redaction_enabled: type: boolean x-stream-index: "018" type: object ModerationEngineConfigRequest: properties: model: description: LLM model used when the provider resolves to llm. Not allowed with provider nlp. Empty uses the app's moderation settings enum: - gpt-4o-mini - gpt-4o title: Model type: string x-stream-index: "002" provider: description: llm or nlp. Empty follows the app's LLM moderation setting enum: - llm - nlp title: Provider type: string x-stream-index: "001" type: object ModerationEngineConfigResponse: properties: model: description: LLM model used when the provider resolves to llm. Not allowed with provider nlp. Empty uses the app's moderation settings title: Model type: string x-stream-index: "002" provider: description: llm or nlp. Empty follows the app's LLM moderation setting enum: - llm - nlp title: Provider type: string x-stream-index: "001" type: object ModerationFeedbackItemResponse: properties: bodyguard_feedback_id: description: Bodyguard's ID for the delivered feedback title: Bodyguard Feedback ID type: string x-stream-index: "020" bodyguard_sent_at: description: When Bodyguard accepted the feedback; unset if not sent format: date-time title: Bodyguard Sent At type: number x-stream-index: "021" channel_id: description: Channel of a single-message feedback title: Channel ID type: string x-stream-index: "019" confidence: description: Moderator's confidence title: Confidence type: string x-stream-index: "016" created_at: description: When the item was submitted; all items of one submission share it format: date-time title: Created At type: number x-stream-index: "002" current_labels: description: Labels the content had items: type: string title: Current Labels type: array x-stream-index: "011" current_recommended_action: description: Action the content had title: Current Recommended Action type: string x-stream-index: "012" description: description: Moderator's description title: Description type: string x-stream-index: "015" entity_id: description: ID of the moderated entity title: Entity ID type: string x-stream-index: "007" entity_type: description: Type of the moderated entity title: Entity Type type: string x-stream-index: "006" expected_labels: description: Labels the moderator expected items: type: string title: Expected Labels type: array x-stream-index: "013" expected_recommended_action: description: Action the moderator expected title: Expected Recommended Action type: string x-stream-index: "014" flag_id: description: Flag the feedback disputes title: Flag ID type: string x-stream-index: "005" id: description: Feedback item ID title: ID type: string x-stream-index: "001" image_url: description: Image content of the item title: Image URL type: string x-stream-index: "010" kind: description: false_positive or false_negative title: Kind type: string x-stream-index: "003" published_at: description: Publish time of a single-message feedback title: Published At type: string x-stream-index: "018" reference: description: Which content of the entity the item is about title: Reference type: string x-stream-index: "008" reporter_id: description: Moderator who submitted the feedback title: Reporter ID type: string x-stream-index: "017" review_queue_item_id: description: Review queue item the feedback is about title: Review Queue Item ID type: string x-stream-index: "004" text: description: Text content of the item title: Text type: string x-stream-index: "009" required: - id - created_at - kind type: object ModerationFeedbackSubmissionResponse: properties: created_at: description: When the submission was made format: date-time title: Created At type: number x-stream-index: "001" current_labels: description: Distinct labels the submission's items had items: type: string title: Current Labels type: array x-stream-index: "009" entity_id: description: ID of the moderated entity title: Entity ID type: string x-stream-index: "005" entity_type: description: Type of the moderated entity title: Entity Type type: string x-stream-index: "004" expected_labels: description: Distinct labels the moderator expected across the submission's items items: type: string title: Expected Labels type: array x-stream-index: "010" item_count: description: Number of items in the submission, matching the filter or not format: int32 title: Item Count type: integer x-stream-index: "006" items: description: The submission's items that match the filter items: $ref: '#/components/schemas/ModerationFeedbackItemResponse' title: Items type: array x-stream-index: "011" matched_count: description: Number of items in the submission that match the filter, including those left out by item_limit format: int32 title: Matched Count type: integer x-stream-index: "007" reporter_id: description: Moderator who submitted the feedback title: Reporter ID type: string x-stream-index: "003" review_queue_item_id: description: Review queue item the feedback is about title: Review Queue Item ID type: string x-stream-index: "002" sent_count: description: Number of items in the submission that Bodyguard accepted format: int32 title: Sent Count type: integer x-stream-index: "008" required: - created_at - item_count - matched_count - sent_count - items type: object ModerationFlagResponse: nullable: true properties: content_published_at: format: date-time type: number x-stream-index: "015" created_at: format: date-time type: number x-stream-index: "016" 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" id: description: Unique identifier of the flag title: ID type: string x-stream-index: "001" 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: "017" 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 ModerationFlaggedEvent: description: This event is sent when content is flagged for moderation nullable: true properties: content_type: description: The type of content that was flagged title: ContentType type: string x-stream-index: "002" created_at: format: date-time type: number x-stream-index: "001.003" custom: additionalProperties: {} type: object x-stream-index: "001.007" object_id: description: The ID of the flagged content title: ObjectID type: string x-stream-index: "003" received_at: format: date-time type: number x-stream-index: "001.004" type: default: moderation.flagged type: string x-stream-index: "001.002" required: - type - created_at - custom - content_type - object_id title: ModerationFlaggedEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent ModerationImageAnalysisCompleteEvent: description: Per-image moderation verdict from /analyze. Fires on every /analyze call that included image inputs (callers also get the verdict on the HTTP response — this event is the audit / reconciliation tap). For the /analyze origin it replaces the legacy review_queue_item.* + moderation_check.completed events. nullable: true properties: config_key: description: The moderation policy key that was applied. title: ConfigKey type: string x-stream-index: "005" created_at: format: date-time type: number x-stream-index: "001.003" custom: additionalProperties: {} description: Echo of the `custom` metadata on the /analyze request. title: Custom type: object x-stream-index: "009" entity_creator_id: description: Echo of the `entity_creator_id` on the /analyze request. title: EntityCreatorID type: string x-stream-index: "004" entity_id: description: Echo of the `entity_id` on the /analyze request. title: EntityID type: string x-stream-index: "003" entity_type: description: Echo of the `entity_type` on the /analyze request. title: EntityType type: string x-stream-index: "002" images: additionalProperties: $ref: '#/components/schemas/AnalyzeImageField' description: Per-image verdicts, same shape as the /analyze HTTP response. Each entry carries `id` when the request supplied `content_ids`. title: Images type: object x-stream-index: "008" received_at: format: date-time type: number x-stream-index: "001.004" review_queue_item_id: description: Review queue row ID for deep-linking into the dashboard. title: ReviewQueueItemID type: string x-stream-index: "006" texts: additionalProperties: $ref: '#/components/schemas/AnalyzeTextField' description: Per-text-field verdicts, same shape as the /analyze HTTP response. Each entry carries `id` when the request supplied `content_ids`. title: Texts type: object x-stream-index: "007" type: default: moderation.image_analysis.complete type: string x-stream-index: "001.002" required: - type - created_at title: ModerationImageAnalysisCompleteEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent ModerationMarkReviewedEvent: description: This event is sent when a moderation item is marked as reviewed nullable: true properties: created_at: format: date-time type: number x-stream-index: "003.003" custom: additionalProperties: {} type: object x-stream-index: "003.007" item: $ref: '#/components/schemas/ReviewQueueItemResponse' description: The review queue item that was marked as reviewed title: ReviewQueueItem x-stream-index: "001" message: $ref: '#/components/schemas/MessageResponse' description: The message if the reviewed content was a message title: Message x-stream-index: "002" received_at: format: date-time type: number x-stream-index: "003.004" type: default: moderation.mark_reviewed type: string x-stream-index: "003.002" required: - item - type - created_at - custom title: ModerationMarkReviewedEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent ModerationPayload: properties: audios: items: type: string maxItems: 10 type: array x-stream-index: "004" country_code: type: string x-stream-index: "011" country_codes: items: type: string type: array x-stream-index: "012" custom: additionalProperties: {} type: object x-stream-index: "005" image_ids: additionalProperties: type: string type: object x-stream-index: "009" image_ordered_keys: items: type: string type: array x-stream-index: "007" images: items: type: string maxItems: 30 type: array x-stream-index: "002" other_media: items: type: string maxItems: 30 type: array x-stream-index: "010" text_ids: additionalProperties: type: string type: object x-stream-index: "008" text_ordered_keys: items: type: string type: array x-stream-index: "006" texts: items: type: string type: array x-stream-index: "001" videos: items: type: string type: array x-stream-index: "003" type: object ModerationPayloadRequest: description: Content payload for moderation properties: audios: description: Audio URLs to moderate items: type: string maxItems: 10 title: Audios type: array x-stream-index: "004" custom: additionalProperties: {} description: Custom data for moderation title: Custom type: object x-stream-index: "005" 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 ModerationPayloadResponse: description: Content payload for moderation properties: audios: description: Audio URLs to moderate items: type: string title: Audios type: array x-stream-index: "004" custom: additionalProperties: {} description: Custom data for moderation title: Custom type: object x-stream-index: "005" image_ids: additionalProperties: type: string description: Caller-supplied content IDs per image key (from content_ids on /analyze) title: ImageIDs type: object x-stream-index: "009" image_ordered_keys: description: Caller-supplied keys for images, index-aligned with images[] items: type: string title: ImageOrderedKeys type: array x-stream-index: "007" images: description: Image URLs to moderate items: type: string title: Images type: array x-stream-index: "002" other_media: description: Media URLs from attachments outside the typed image/video/audio lists (custom attachment types such as GIF pickers) items: type: string title: Other media type: array x-stream-index: "010" text_ids: additionalProperties: type: string description: Caller-supplied content IDs per text key (from content_ids on /analyze) title: TextIDs type: object x-stream-index: "008" text_ordered_keys: description: Caller-supplied keys for texts (e.g. "title", "description"), index-aligned with texts[] items: type: string title: TextOrderedKeys type: array x-stream-index: "006" 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 ModerationQueueResponse: properties: created_at: format: date-time type: number x-stream-index: "009" created_by: type: string x-stream-index: "008" description: type: string x-stream-index: "006" filters: additionalProperties: {} type: object x-stream-index: "004" id: type: string x-stream-index: "001" item_count: format: int64 type: integer x-stream-index: "007" name: type: string x-stream-index: "002" sort: items: additionalProperties: {} type: object type: array x-stream-index: "005" type: type: string x-stream-index: "003" updated_at: format: date-time type: number x-stream-index: "010" required: - id - name - type - filters - sort - description - item_count - created_by - created_at - updated_at type: object ModerationResponse: description: Response from AI moderation properties: action: description: Action taken by automod title: Action type: string x-stream-index: "004" explicit: description: Explicit score format: float title: Explicit type: number x-stream-index: "002" spam: description: Spam score format: float title: Spam type: number x-stream-index: "003" toxic: description: Toxicity score format: float title: Toxic type: number x-stream-index: "001" required: - toxic - explicit - spam - action title: Moderation response type: object ModerationRuleInfo: properties: description: type: string x-stream-index: "004" id: type: string x-stream-index: "001" name: type: string x-stream-index: "002" type: type: string x-stream-index: "003" required: - id - name - type - description 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 ModerationRulesTriggeredEvent: description: This event is sent automatically whenever a rule builder rule is triggered nullable: true properties: app_count: $ref: '#/components/schemas/AppCountInfo' description: 'Rules with an `app_channel_count` or `app_message_count` condition only: the configured threshold and time window, and the count in the window when the rule fired.' title: AppCount x-stream-index: "017" app_id: description: Application ID the rule belongs to. format: int32 title: App ID type: integer x-stream-index: "011" category: description: The `category` sent on the labels request. Omitted when the event was not produced by the labels API. title: Category type: string x-stream-index: "012" channel_cid: description: CID of the channel the moderated content belongs to. Omitted when the content has no channel. title: Channel CID type: string x-stream-index: "018" created_at: format: date-time type: number x-stream-index: "001.003" custom: additionalProperties: {} type: object x-stream-index: "001.007" entity_id: description: The ID of the entity that triggered the rule title: EntityID type: string x-stream-index: "004" entity_type: description: The type of the entity (call, user, message, etc.) title: EntityType type: string x-stream-index: "005" intent: $ref: '#/components/schemas/IntentEvaluationInfo' description: 'Intent rules only: every topic score of the analysis call, each `intent_rule` condition with its threshold, score and whether it passed, and the analyzed conversation ID and message count.' title: Intent x-stream-index: "010" matched_contents: description: Ordered list of contents whose verdicts contributed to an aggregation rule's threshold. Populated only for aggregation rules when callers supplied `content_ids`. items: $ref: '#/components/schemas/MatchedContent' title: MatchedContents type: array x-stream-index: "009" matched_labels: description: Harm labels on the moderated content that the rule's text label conditions (`text_content`, `text_rule`) matched. Omitted when the rule has no such condition. items: type: string title: Matched Labels type: array x-stream-index: "019" matched_user_ids: description: 'Cross-user webhook_only flood rules only: the distinct users who sent the content since the previous webhook for this rule. Omitted on other events.' items: type: string title: Matched User IDs type: array x-stream-index: "016" received_at: format: date-time type: number x-stream-index: "001.004" review_queue_item_id: description: The review queue item ID if applicable title: ReviewQueueItemID type: string x-stream-index: "008" rule: $ref: '#/components/schemas/ModerationRuleInfo' description: The rule that was triggered title: Rule x-stream-index: "002" scope: description: The rule's config_keys. Omitted when the rule is application-wide. items: type: string title: Scope type: array x-stream-index: "013" severity: description: Highest severity (`LOW` / `MEDIUM` / `HIGH` / `CRITICAL`) among the moderation results that carried a matched label. Omitted when no label matched or the provider reports no severity. title: Severity type: string x-stream-index: "020" threshold: description: Configured count that fires the condition. This is the number stored on the rule, not the live counter. format: int32 title: Threshold type: integer x-stream-index: "014" time_window: description: Configured window of the condition that fired, for example 10m. title: Time Window type: string x-stream-index: "015" triggered_actions: description: Array of action types that were triggered items: type: string title: TriggeredActions type: array x-stream-index: "007" type: default: moderation_rule.triggered type: string x-stream-index: "001.002" user_id: description: The ID of the user who triggered the rule title: UserID type: string x-stream-index: "006" violation_number: description: The violation number for call rules (optional) format: int32 title: ViolationNumber type: integer x-stream-index: "003" required: - type - created_at - custom - rule - entity_id - entity_type - user_id - triggered_actions title: ModerationRulesTriggeredEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent ModerationTextAnalysisCompleteEvent: description: Per-text moderation verdict from /analyze. Fires on every /analyze call that included text inputs. Sibling of moderation.image_analysis.complete with the same audit / reconciliation purpose; for the /analyze origin this event replaces the legacy review_queue_item.* + moderation_check.completed events. nullable: true properties: config_key: description: The moderation policy key that was applied. title: ConfigKey type: string x-stream-index: "005" created_at: format: date-time type: number x-stream-index: "001.003" custom: additionalProperties: {} description: Echo of the `custom` metadata on the /analyze request. title: Custom type: object x-stream-index: "008" entity_creator_id: description: Echo of the `entity_creator_id` on the /analyze request. title: EntityCreatorID type: string x-stream-index: "004" entity_id: description: Echo of the `entity_id` on the /analyze request. title: EntityID type: string x-stream-index: "003" entity_type: description: Echo of the `entity_type` on the /analyze request. title: EntityType type: string x-stream-index: "002" received_at: format: date-time type: number x-stream-index: "001.004" review_queue_item_id: description: Review queue row ID for deep-linking into the dashboard. title: ReviewQueueItemID type: string x-stream-index: "006" texts: additionalProperties: $ref: '#/components/schemas/AnalyzeTextField' description: Per-text-field verdicts, same shape as the /analyze HTTP response. Each entry carries `id` when the request supplied `content_ids`. title: Texts type: object x-stream-index: "007" type: default: moderation.text_analysis.complete type: string x-stream-index: "001.002" required: - type - created_at title: ModerationTextAnalysisCompleteEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent 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 MuteChannelRequest: nullable: true properties: channel_cids: description: Channel CIDs to mute (if multiple channels) items: type: string maxItems: 25 title: Channel CIDs type: array x-stream-index: "002" expiration: description: Duration of mute in milliseconds title: Expiration type: integer x-stream-index: "003" user: $ref: '#/components/schemas/UserRequest' x-stream-index: "004.002" user_id: type: string x-stream-index: "004.001" type: object MuteChannelResponse: nullable: true properties: channel_mute: $ref: '#/components/schemas/ChannelMute' description: Object with channel mute (if one channel was muted) title: Channel mute x-stream-index: "001" channel_mutes: description: Object with mutes (if multiple channels were muted) items: $ref: '#/components/schemas/ChannelMute' title: Channel mutes type: array x-stream-index: "002" duration: type: string x-stream-index: "004.001" own_user: $ref: '#/components/schemas/OwnUserResponse' description: Authorized user object with fresh mutes information title: Own user x-stream-index: "003" required: - duration type: object MuteRequest: nullable: true properties: target_ids: description: User IDs to mute (if multiple users) items: type: string maxItems: 1000 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 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 NoiseCancellationSettings: properties: mode: $ref: '#/components/schemas/FeatureActivationMode' x-stream-index: "001" required: - mode type: object NotificationMarkUnreadEvent: description: Emitted when a channel/thread is marked as unread. nullable: true properties: channel: $ref: '#/components/schemas/ChannelResponse' description: The channel object which was marked as read title: Channel x-stream-index: "002" channel_custom: additionalProperties: {} type: object x-stream-index: 001.001.006 channel_id: description: The ID of the channel which was marked as unread title: Channel ID type: string x-stream-index: 001.002.002 channel_member_count: description: The number of members in the channel format: int32 title: Channel member count type: integer x-stream-index: 001.001.004 channel_message_count: format: int64 type: integer x-stream-index: 001.001.005 channel_type: description: The type of the channel which was marked as unread title: Channel Type type: string x-stream-index: 001.002.001 cid: description: The CID of the channel which was marked as unread title: Channel CID type: string x-stream-index: 001.001.001.002 created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: 001.001.001.001.003 custom: additionalProperties: {} type: object x-stream-index: 001.001.001.001.007 first_unread_message_id: description: The ID of the first unread message title: First Unread Message ID type: string x-stream-index: "005" grouped_unread_channels: additionalProperties: format: int32 type: integer type: object x-stream-index: "012" last_read_at: description: The time when the channel/thread was marked as unread format: date-time title: Last Read At type: number x-stream-index: "006" last_read_message_id: description: The ID of the last read message title: Last Read Message ID type: string x-stream-index: "007" received_at: format: date-time type: number x-stream-index: 001.001.001.001.004 team: description: The team ID title: Team type: string x-stream-index: 001.001.003 thread_id: description: The ID of the thread which was marked as unread title: Thread ID type: string x-stream-index: "003" total_unread_count: description: The total number of unread messages format: int32 title: Total Unread Count type: integer x-stream-index: "010" type: default: notification.mark_unread description: 'The type of event: "notification.mark_unread" in this case' title: Event Type type: string x-stream-index: 001.001.001.001.002 unread_channels: description: The number of channels with unread messages format: int32 title: Unread Channels type: integer x-stream-index: "011" unread_count: description: The total number of unread messages format: int32 title: Unread Count type: integer x-stream-index: "009" unread_messages: description: The number of unread messages in the channel/thread after first_unread_message_id format: int32 title: Unread Messages type: integer x-stream-index: "008" unread_thread_messages: description: The total number of unread messages in the threads format: int32 title: Unread Thread Messages type: integer x-stream-index: "014" unread_threads: description: The number of unread threads format: int32 title: Unread Threads type: integer x-stream-index: "013" user: $ref: '#/components/schemas/UserResponseCommonFields' description: The user who marked the channel as unread title: User x-stream-index: "004.001" required: - type - created_at - custom title: NotificationMarkUnreadEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent NotificationSettings: properties: call_live_started: $ref: '#/components/schemas/EventNotificationSettings' x-stream-index: "002" call_missed: $ref: '#/components/schemas/EventNotificationSettings' x-stream-index: "006" call_notification: $ref: '#/components/schemas/EventNotificationSettings' x-stream-index: "004" call_ring: $ref: '#/components/schemas/EventNotificationSettings' x-stream-index: "005" enabled: type: boolean x-stream-index: "001" session_started: $ref: '#/components/schemas/EventNotificationSettings' x-stream-index: "003" required: - enabled - call_live_started - session_started - call_notification - call_ring - call_missed type: object NotificationThreadMessageNewEvent: description: Emitted when a new message was sent to a thread. nullable: true properties: channel: $ref: '#/components/schemas/ChannelResponse' description: The channel object where the message was sent title: Channel x-stream-index: 001.002.001 channel_custom: additionalProperties: {} type: object x-stream-index: 001.001.001.006 channel_id: description: The ID of the channel where the message was sent title: Channel ID type: string x-stream-index: 001.001.002.002 channel_member_count: format: int32 type: integer x-stream-index: 001.001.001.004 channel_message_count: format: int64 type: integer x-stream-index: 001.001.001.005 channel_type: description: The type of the channel where the message was sent title: Channel Type type: string x-stream-index: 001.001.002.001 cid: description: The CID of the channel where the message was sent title: Channel CID type: string x-stream-index: 001.001.001.001.002 created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: 001.001.001.001.001.003 custom: additionalProperties: {} type: object x-stream-index: 001.001.001.001.001.007 message: $ref: '#/components/schemas/MessageResponse' description: The new message title: Message x-stream-index: "003.002" message_id: type: string x-stream-index: "003.001" parent_author: type: string x-stream-index: "007" received_at: format: date-time type: number x-stream-index: 001.001.001.001.001.004 team: description: The team ID title: Team type: string x-stream-index: "006" thread_id: description: The ID of the thread title: Thread ID type: string x-stream-index: "002" thread_participants: description: The participants of the thread items: $ref: '#/components/schemas/UserResponseCommonFields' title: Thread participants type: array x-stream-index: "005.001" type: default: notification.thread_message_new description: 'The type of event: "notification.message_new" in this case' title: Event Type type: string x-stream-index: 001.001.001.001.001.002 unread_thread_messages: format: int32 type: integer x-stream-index: "009" unread_threads: format: int32 type: integer x-stream-index: "008" watcher_count: description: The number of watchers format: int32 title: Watcher count type: integer x-stream-index: "004" required: - type - created_at - custom - channel - thread_id - message_id - message - watcher_count title: NotificationThreadMessageNewEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent OCRContentParameters: properties: harm_labels: items: type: string type: array x-stream-index: "001" label_operator: type: string x-stream-index: "002" severity: type: string x-stream-index: "003" type: object OCRRule: properties: action: $ref: '#/components/schemas/ModerationAction' x-stream-index: "002" label: type: string x-stream-index: "001" required: - label - action type: object OnlyUserID: properties: id: type: string x-stream-index: "001" required: - id type: object OverviewDashboardConfig: properties: default_date_range_days: format: int32 type: integer x-stream-index: "003" visible_charts: items: type: string type: array x-stream-index: "002" 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: deprecated: true description: 'Deprecated: Use total_unread_count instead.' format: int32 title: Unread count type: integer x-stream-deprecated: true x-stream-deprecated-message: Use total_unread_count instead. x-stream-deprecated-renamed: total_unread_count 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 - blocked_user_ids type: object PagerDefaults: description: Resolved defaults for a nested pagination object. properties: limit: description: Number of records returned when `limit` is omitted. format: int32 title: Limit type: integer x-stream-index: "001" required: - limit type: object PagerResponse: properties: next: type: string x-stream-index: "001" prev: type: string x-stream-index: "002" type: object PaginationParams: properties: id_gt: format: int32 type: integer x-stream-index: "004" id_gte: format: int32 type: integer x-stream-index: "003" id_lt: format: int32 type: integer x-stream-index: "006" id_lte: format: int32 type: integer x-stream-index: "005" limit: format: int32 minimum: 0 type: integer x-stream-index: "001" offset: format: int32 type: integer x-stream-index: "002" type: object ParsedPredefinedFilterResponse: properties: filter: additionalProperties: {} type: object x-stream-index: "002" name: type: string x-stream-index: "001" sort: items: $ref: '#/components/schemas/SortParamRequest' type: array x-stream-index: "003" required: - name - filter type: object PendingMessageEvent: description: Pending message event for async moderation nullable: true properties: channel: $ref: '#/components/schemas/ChannelResponse' description: The channel where the message is pending title: Channel x-stream-index: "003" created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: "007" custom: additionalProperties: {} type: object x-stream-index: "001.007" message: $ref: '#/components/schemas/MessageResponse' description: The pending message title: Message x-stream-index: "004" metadata: additionalProperties: type: string description: Metadata attached to the pending message title: Metadata type: object x-stream-index: "005" method: description: The method used for the pending message title: Method type: string x-stream-index: "006" received_at: format: date-time type: number x-stream-index: "001.004" type: default: message.pending description: 'The type of event: "message.pending" in this case' title: Event Type type: string x-stream-index: "001.002" user: $ref: '#/components/schemas/UserResponse' description: The user who created the pending message title: User x-stream-index: "002" required: - type - custom - method - created_at title: PendingMessageEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent PendingMessageResponse: nullable: true properties: channel: $ref: '#/components/schemas/ChannelResponse' x-stream-index: "002" message: $ref: '#/components/schemas/MessageResponse' x-stream-index: "003" metadata: additionalProperties: type: string type: object x-stream-index: "004" user: $ref: '#/components/schemas/UserResponse' x-stream-index: "001" type: object PerformanceAnalysisResponse: properties: analysis_type: type: string x-stream-index: "002" indexed_fields: items: type: string type: array x-stream-index: "003" last_analyzed: format: date-time type: number x-stream-index: "009" recommendations: items: type: string type: array x-stream-index: "008" scan_type: type: string x-stream-index: "006" score: type: string x-stream-index: "001" unindexed_fields: items: type: string type: array x-stream-index: "004" unindexed_sort_fields: items: type: string type: array x-stream-index: "005" warnings: items: type: string type: array x-stream-index: "007" required: - score - analysis_type - indexed_fields - unindexed_fields - unindexed_sort_fields - warnings - recommendations type: object Permission: properties: action: description: Action name this permission is for (e.g. SendMessage) title: Action type: string x-stream-index: "004" condition: additionalProperties: {} description: MongoDB style condition which decides whether or not the permission is granted title: Condition type: object x-stream-index: "007" custom: description: Whether this is a custom permission or built-in title: Custom type: boolean x-stream-index: "009" description: description: Description of the permission title: Description type: string x-stream-index: "003" id: description: Unique permission ID title: ID type: string x-stream-index: "001" level: description: 'Level at which permission could be applied (app or channel). One of: app, channel' title: Level type: string x-stream-index: "010" name: description: Name of the permission title: Name type: string x-stream-index: "002" owner: description: Whether this permission applies to resource owner or not title: Owner type: boolean x-stream-index: "005" owner_resource: description: Resource type that defines ownership for this permission's action (e.g. 'Channel' for CreateMessage, 'Message' for UpdateMessage). Identical across all variants of an action; primarily meaningful for owner grants. title: Owner resource type: string x-stream-index: "011" same_team: description: Whether this permission applies to teammates (multi-tenancy mode only) title: Same team type: boolean x-stream-index: "006" tags: description: List of tags of the permission items: type: string title: Tags type: array x-stream-index: "012" required: - id - name - description - action - owner - same_team - custom - level - owner_resource - tags type: object PermissionRequest: nullable: true properties: action: description: Action name this permission is for (e.g. SendMessage) title: Action type: string x-stream-index: "002.003" condition: additionalProperties: {} description: MongoDB style condition which decides whether or not the permission is granted title: Condition type: object x-stream-index: "002.006" description: description: Description of the permission maxLength: 2048 title: Description type: string x-stream-index: "002.002" name: description: Name of the permission maxLength: 100 title: Name type: string x-stream-index: "002.001" owner: description: Whether this permission applies to resource owner or not title: Owner type: boolean x-stream-index: "002.004" same_team: description: Whether this permission applies to teammates (multi-tenancy mode only) title: Same team type: boolean x-stream-index: "002.005" required: - name - action - condition type: object Policy: properties: action: type: integer x-stream-index: "007" created_at: format: date-time type: number x-stream-index: "010" name: type: string x-stream-index: "004" owner: type: boolean x-stream-index: "008" priority: format: int32 type: integer x-stream-index: "009" resources: items: type: string type: array x-stream-index: "005" roles: items: type: string type: array x-stream-index: "006" updated_at: format: date-time type: number x-stream-index: "011" required: - name - resources - roles - action - owner - priority - created_at - updated_at type: object PolicyConfig: properties: max_age_hours: format: int32 type: integer x-stream-index: "001" required: - max_age_hours type: object PolicyRequest: description: Policy request properties: action: enum: - Deny - Allow title: Action type: string x-stream-index: "001" name: description: User-friendly policy name title: Name type: string x-stream-index: "002" owner: description: Whether policy applies to resource owner or not title: Owner type: boolean x-stream-index: "005" priority: description: Policy priority format: int32 maximum: 999 minimum: 1 title: Priority type: integer x-stream-index: "006" resources: description: List of resources to apply policy to items: type: string minItems: 1 title: Resources type: array x-stream-index: "003" roles: description: List of roles to apply policy to items: type: string title: Roles type: array x-stream-index: "004" required: - action - name - resources - roles - owner - priority title: PolicyRequest type: object PolicyTestLabelDrift: properties: changed: format: int32 type: integer x-stream-index: "002" same: format: int32 type: integer x-stream-index: "001" required: - same - changed type: object PolicyTestResult: nullable: true properties: actual_action: type: string x-stream-index: "007" actual_labels: items: type: string type: array x-stream-index: "008" created_at: format: date-time type: number x-stream-index: "013" expected_action: type: string x-stream-index: "006" expected_labels: items: type: string type: array x-stream-index: "005" failure_reason: type: string x-stream-index: "011" id: format: int64 type: integer x-stream-index: "001" message_text: type: string x-stream-index: "004" passed: type: boolean x-stream-index: "010" raw_response: readOnly: true type: object x-stream-index: "012" row_index: format: int32 type: integer x-stream-index: "003" run_id: type: string x-stream-index: "002" scored: type: boolean x-stream-index: "009" severity: type: string x-stream-index: "014" required: - id - run_id - row_index - message_text - scored - created_at type: object PolicyTestRow: properties: content_type: type: string x-stream-index: "005" labels: items: type: string type: array x-stream-index: "002" policy: type: string x-stream-index: "004" recommended_action: type: string x-stream-index: "003" text: type: string x-stream-index: "001" type: object PolicyTestRun: properties: completed_at: format: date-time type: number x-stream-index: "013" config_key: type: string x-stream-index: "004" config_updated_at: format: date-time type: number x-stream-index: "005" created_at: format: date-time type: number x-stream-index: "014" error_message: type: string x-stream-index: "008" id: type: string x-stream-index: "001" metrics: $ref: '#/components/schemas/PolicyTestRunMetrics' x-stream-index: "007" rows_completed: format: int32 type: integer x-stream-index: "010" rows_total: format: int32 type: integer x-stream-index: "009" set_id: type: string x-stream-index: "002" started_at: format: date-time type: number x-stream-index: "012" status: type: string x-stream-index: "006" task_id: type: string x-stream-index: "003" triggered_by: type: string x-stream-index: "011" required: - id - set_id - task_id - config_key - status - rows_total - rows_completed - triggered_by - created_at type: object PolicyTestRunMetrics: properties: by_label: additionalProperties: $ref: '#/components/schemas/PolicyTestLabelDrift' type: object x-stream-index: "003" mode: type: string x-stream-index: "001" totals: $ref: '#/components/schemas/PolicyTestTotals' x-stream-index: "002" required: - mode - totals type: object PolicyTestRunResponse: nullable: true properties: duration: type: string x-stream-index: "003.001" results: description: Per-row results (only present once the run has finished) items: $ref: '#/components/schemas/PolicyTestResult' title: Results type: array x-stream-index: "002" run: $ref: '#/components/schemas/PolicyTestRun' description: The policy test run title: Run x-stream-index: "001" required: - duration type: object PolicyTestSeedSpec: properties: labels: description: Sample only records carrying any of these labels; empty samples everything items: type: string title: Labels type: array x-stream-index: "001" limit: description: How many rows to sample, newest first; capped at 1000 format: int32 minimum: 1 title: Limit type: integer x-stream-index: "002" required: - limit type: object PolicyTestSet: properties: config_key: type: string x-stream-index: "004" created_at: format: date-time type: number x-stream-index: "009" created_by: type: string x-stream-index: "008" id: type: string x-stream-index: "001" last_run: $ref: '#/components/schemas/PolicyTestRun' x-stream-index: "011" mode: type: string x-stream-index: "003" name: type: string x-stream-index: "002" row_count: format: int32 type: integer x-stream-index: "007" rows: items: $ref: '#/components/schemas/PolicyTestRow' type: array x-stream-index: "006" team: type: string x-stream-index: "005" updated_at: format: date-time type: number x-stream-index: "010" required: - id - name - mode - config_key - row_count - created_by - created_at - updated_at type: object PolicyTestSetListResponse: nullable: true properties: duration: type: string x-stream-index: "002.001" sets: description: List of policy test sets for the app items: $ref: '#/components/schemas/PolicyTestSet' title: Sets type: array x-stream-index: "001" required: - sets - duration type: object PolicyTestSetResponse: nullable: true properties: baseline_run_id: description: The set's baseline run (earliest completed run); later runs are scored against it. Absent until the first run completes title: Baseline Run ID type: string x-stream-index: "003" duration: type: string x-stream-index: "004.001" recent_runs: description: Retained run history for this set, newest first items: $ref: '#/components/schemas/PolicyTestRun' title: Recent Runs type: array x-stream-index: "002" set: $ref: '#/components/schemas/PolicyTestSet' description: The policy test set title: Set x-stream-index: "001" required: - duration type: object PolicyTestTotals: properties: failed: format: int32 type: integer x-stream-index: "005" passed: format: int32 type: integer x-stream-index: "004" rows: format: int32 type: integer x-stream-index: "001" scored: format: int32 type: integer x-stream-index: "002" unscored: format: int32 type: integer x-stream-index: "003" required: - rows - scored - unscored - passed - failed type: object PollClosedEvent: description: Emitted when a poll is closed. nullable: true properties: activity_id: type: string x-stream-index: "001.003" cid: description: The CID of the channel containing the poll title: Channel CID type: string x-stream-index: 001.001.002 created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: 001.001.001.003 custom: additionalProperties: {} type: object x-stream-index: 001.001.001.007 message_id: description: The ID of the message containing the poll title: Message ID type: string x-stream-index: "001.002" poll: $ref: '#/components/schemas/PollResponseData' description: The poll object which was closed title: Poll x-stream-index: "001.004" received_at: format: date-time type: number x-stream-index: 001.001.001.004 type: default: poll.closed description: 'The type of event: "poll.closed" in this case' title: Event Type type: string x-stream-index: 001.001.001.002 required: - type - created_at - custom - poll title: PollClosedEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent PollDeletedEvent: description: Emitted when a poll is deleted. nullable: true properties: activity_id: type: string x-stream-index: "001.003" cid: description: The CID of the channel containing the poll title: Channel CID type: string x-stream-index: 001.001.002 created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: 001.001.001.003 custom: additionalProperties: {} type: object x-stream-index: 001.001.001.007 message_id: description: The ID of the message containing the poll title: Message ID type: string x-stream-index: "001.002" poll: $ref: '#/components/schemas/PollResponseData' description: The poll object which was deleted title: Poll x-stream-index: "001.004" received_at: format: date-time type: number x-stream-index: 001.001.001.004 type: default: poll.deleted description: 'The type of event: "poll.deleted" in this case' title: Event Type type: string x-stream-index: 001.001.001.002 required: - type - created_at - custom - poll title: PollDeletedEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent PollOptionInput: nullable: true properties: custom: additionalProperties: {} type: object x-stream-index: "003" text: type: string x-stream-index: "002" type: object PollOptionRequest: nullable: true properties: custom: additionalProperties: {} type: object x-stream-index: "003" id: maxLength: 255 type: string x-stream-index: "001" text: type: string x-stream-index: "002" required: - id type: object PollOptionResponse: nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "002.001" poll_option: $ref: '#/components/schemas/PollOptionResponseData' description: Poll option title: PollOptionResponseData x-stream-index: "001" required: - poll_option - duration type: object PollOptionResponseData: nullable: true properties: custom: additionalProperties: {} type: object x-stream-index: "004" id: type: string x-stream-index: "001" text: type: string x-stream-index: "002" text_i18n: additionalProperties: type: string type: object x-stream-index: "003" required: - id - text - custom type: object PollResponse: nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "002.001" poll: $ref: '#/components/schemas/PollResponseData' description: Poll title: PollResponseData x-stream-index: "001" required: - poll - duration type: object PollResponseData: properties: allow_answers: type: boolean x-stream-index: "010" allow_user_suggested_options: type: boolean x-stream-index: "009" answers_count: format: int32 type: integer x-stream-index: "014" created_at: format: date-time type: number x-stream-index: "021" created_by: $ref: '#/components/schemas/UserResponse' x-stream-index: "020" created_by_id: type: string x-stream-index: "019" custom: additionalProperties: {} type: object x-stream-index: "023" description: type: string x-stream-index: "004" description_i18n: additionalProperties: type: string type: object x-stream-index: "005" enforce_unique_vote: type: boolean x-stream-index: "007" id: type: string x-stream-index: "001" is_closed: type: boolean x-stream-index: "011" latest_answers: items: $ref: '#/components/schemas/PollVoteResponseData' type: array x-stream-index: "017" latest_votes_by_option: additionalProperties: items: $ref: '#/components/schemas/PollVoteResponseData' type: array type: object x-stream-index: "016" max_votes_allowed: format: int32 type: integer x-stream-index: "008" name: type: string x-stream-index: "002" name_i18n: additionalProperties: type: string type: object x-stream-index: "003" options: items: $ref: '#/components/schemas/PollOptionResponseData' type: array x-stream-index: "013" own_votes: items: $ref: '#/components/schemas/PollVoteResponseData' type: array x-stream-index: "018" updated_at: format: date-time type: number x-stream-index: "022" vote_count: format: int32 type: integer x-stream-index: "012" vote_counts_by_option: additionalProperties: format: int32 type: integer type: object x-stream-index: "015" voting_visibility: $ref: '#/components/schemas/VotingVisibility' description: Voting visibility of the poll title: Voting visibility x-stream-description: Voting visibility of the poll x-stream-index: "006" 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 PollUpdatedEvent: description: Emitted when a poll is updated. nullable: true properties: activity_id: type: string x-stream-index: "001.003" cid: description: The CID of the channel containing the poll title: Channel CID type: string x-stream-index: 001.001.002 created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: 001.001.001.003 custom: additionalProperties: {} type: object x-stream-index: 001.001.001.007 message_id: description: The ID of the message containing the poll title: Message ID type: string x-stream-index: "001.002" poll: $ref: '#/components/schemas/PollResponseData' description: The poll object which was updated title: Poll x-stream-index: "001.004" received_at: format: date-time type: number x-stream-index: 001.001.001.004 type: default: poll.updated description: 'The type of event: "poll.updated" in this case' title: Event Type type: string x-stream-index: 001.001.001.002 required: - type - created_at - custom - poll title: PollUpdatedEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent PollVoteCastedEvent: description: Emitted when a vote is cast on a poll. nullable: true properties: activity_id: type: string x-stream-index: 001.001.003 cid: description: The CID of the channel containing the poll title: Channel CID type: string x-stream-index: 001.001.001.002 created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: 001.001.001.001.003 custom: additionalProperties: {} type: object x-stream-index: 001.001.001.001.007 message_id: description: The ID of the message containing the poll title: Message ID type: string x-stream-index: 001.001.002 poll: $ref: '#/components/schemas/PollResponseData' description: The poll object title: Poll x-stream-index: 001.001.004 poll_vote: $ref: '#/components/schemas/PollVoteResponseData' description: The vote that was cast title: Poll Vote x-stream-index: "001.002" received_at: format: date-time type: number x-stream-index: 001.001.001.001.004 type: default: poll.vote_casted description: 'The type of event: "poll.vote_casted" in this case' title: Event Type type: string x-stream-index: 001.001.001.001.002 required: - type - created_at - custom - poll - poll_vote title: PollVoteCastedEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent PollVoteChangedEvent: description: Emitted when a vote on a poll is changed. nullable: true properties: activity_id: type: string x-stream-index: 001.001.003 cid: description: The CID of the channel containing the poll title: Channel CID type: string x-stream-index: 001.001.001.002 created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: 001.001.001.001.003 custom: additionalProperties: {} type: object x-stream-index: 001.001.001.001.007 message_id: description: The ID of the message containing the poll title: Message ID type: string x-stream-index: 001.001.002 poll: $ref: '#/components/schemas/PollResponseData' description: The poll object title: Poll x-stream-index: 001.001.004 poll_vote: $ref: '#/components/schemas/PollVoteResponseData' description: The updated vote title: Poll Vote x-stream-index: "001.002" received_at: format: date-time type: number x-stream-index: 001.001.001.001.004 type: default: poll.vote_changed description: 'The type of event: "poll.vote_changed" in this case' title: Event Type type: string x-stream-index: 001.001.001.001.002 required: - type - created_at - custom - poll - poll_vote title: PollVoteChangedEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent PollVoteRemovedEvent: description: Emitted when a vote is removed from a poll. nullable: true properties: activity_id: type: string x-stream-index: 001.001.003 cid: description: The CID of the channel containing the poll title: Channel CID type: string x-stream-index: 001.001.001.002 created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: 001.001.001.001.003 custom: additionalProperties: {} type: object x-stream-index: 001.001.001.001.007 message_id: description: The ID of the message containing the poll title: Message ID type: string x-stream-index: 001.001.002 poll: $ref: '#/components/schemas/PollResponseData' description: The poll object title: Poll x-stream-index: 001.001.004 poll_vote: $ref: '#/components/schemas/PollVoteResponseData' description: The vote that was removed title: Poll Vote x-stream-index: "001.002" received_at: format: date-time type: number x-stream-index: 001.001.001.001.004 type: default: poll.vote_removed description: 'The type of event: "poll.vote_removed" in this case' title: Event Type type: string x-stream-index: 001.001.001.001.002 required: - type - created_at - custom - poll - poll_vote title: PollVoteRemovedEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent PollVoteResponse: nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "003.001" poll: $ref: '#/components/schemas/PollResponseData' description: Poll title: PollResponseData x-stream-index: "002" vote: $ref: '#/components/schemas/PollVoteResponseData' description: Poll vote title: PollVoteResponseData x-stream-index: "001" required: - duration type: object PollVoteResponseData: nullable: true properties: answer_text: type: string x-stream-index: "005" answer_text_i18n: additionalProperties: type: string type: object x-stream-index: "006" created_at: format: date-time type: number x-stream-index: "009" 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: "010" user: $ref: '#/components/schemas/UserResponse' x-stream-index: "008" user_id: type: string x-stream-index: "007" required: - poll_id - id - option_id - created_at - updated_at type: object PollVotesResponse: nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "003.001" next: type: string x-stream-index: "002.001" prev: type: string x-stream-index: "002.002" votes: description: Poll votes items: $ref: '#/components/schemas/PollVoteResponseData' title: PollVoteResponseList type: array x-stream-index: "001" required: - votes - duration type: object PredefinedFilterResponse: properties: created_at: format: date-time type: number x-stream-index: "007" description: type: string x-stream-index: "002" filter: additionalProperties: {} type: object x-stream-index: "004" name: type: string x-stream-index: "001" operation: type: string x-stream-index: "003" performance: $ref: '#/components/schemas/PerformanceAnalysisResponse' x-stream-index: "010" query_id: format: int32 type: integer x-stream-index: "006" sort: items: $ref: '#/components/schemas/SortParam' type: array x-stream-index: "005" stats: $ref: '#/components/schemas/PredefinedFilterStatsResponse' x-stream-index: "009" updated_at: format: date-time type: number x-stream-index: "008" required: - name - operation - filter - created_at - updated_at type: object PredefinedFilterStatsResponse: properties: calls: type: integer x-stream-index: "001" last_seen: format: date-time type: number x-stream-index: "003" max_latency_ms: type: integer x-stream-index: "002" required: - calls - max_latency_ms type: object PrivacySettingsResponse: description: The privacy settings of the user. properties: delivery_receipts: $ref: '#/components/schemas/DeliveryReceiptsResponse' description: The settings for the delivery receipt events. title: Delivery receipts x-stream-index: "003" read_receipts: $ref: '#/components/schemas/ReadReceiptsResponse' description: The settings for the read receipt events. title: Read receipts x-stream-index: "002" typing_indicators: $ref: '#/components/schemas/TypingIndicatorsResponse' description: The settings for typing indicator events. title: Typing indicators x-stream-index: "001" type: object PublishConfigVersionRequest: nullable: true properties: team: description: Team associated with the configuration maxLength: 128 minLength: 1 title: Team type: string x-stream-index: "003" user: $ref: '#/components/schemas/UserRequest' x-stream-index: "004.002" user_id: description: Optional user ID to associate with the audit log entry title: User ID type: string x-stream-index: "004.001" type: object PublishConfigVersionResponse: nullable: true properties: config: $ref: '#/components/schemas/ConfigResponse' description: The configuration now in effect title: Config x-stream-index: "001" duration: type: string x-stream-index: "002.001" required: - duration type: object PushConfig: properties: offline_only: type: boolean x-stream-index: "002" version: enum: - v1 - v2 - v3 type: string x-stream-index: "001" required: - version type: object PushLevel: description: How much a channel notifies its members. enum: - all - all_mentions - mentions - direct_mentions - none title: PushLevel type: string x-stream-deprecated-enum-values: mentions: direct_mentions PushNotificationFields: properties: apn: $ref: '#/components/schemas/APNConfigFields' x-stream-index: "002" firebase: $ref: '#/components/schemas/FirebaseConfigFields' x-stream-index: "003" huawei: $ref: '#/components/schemas/HuaweiConfigFields' x-stream-index: "004" offline_only: type: boolean x-stream-index: "001.002" providers: items: $ref: '#/components/schemas/PushProvider' type: array x-stream-index: "006" version: type: string x-stream-index: "001.001" xiaomi: $ref: '#/components/schemas/XiaomiConfigFields' x-stream-index: "005" required: - version - offline_only - apn - firebase - huawei - xiaomi type: object PushNotificationSettingsResponse: properties: disabled: type: boolean x-stream-index: "001" disabled_until: format: date-time type: number x-stream-index: "002" type: object PushPreferenceInput: nullable: true properties: channel_cid: description: Set the push preferences for a specific channel. If empty it sets the default for the user title: Channel CID type: string x-stream-index: "002" chat_level: description: 'Set the level of chat push notifications for the user. Note: "mentions" is deprecated in favor of "direct_mentions". One of: all, mentions, direct_mentions, all_mentions, none, default' enum: - all - mentions - direct_mentions - all_mentions - none - default title: Chat Level type: string x-stream-deprecated-enum-values: mentions: direct_mentions x-stream-enum-descriptions: all: All push notifications will be delivered. all_mentions: Push notifications will only be delivered when the user is mentioned directly or via @channel, @here, a role or a user group. default: Behaves as all. direct_mentions: Push notifications will only be delivered when the user is directly @mentioned by username. mentions: 'Deprecated: behaves as direct_mentions.' none: No push notifications will be delivered. x-stream-index: "003" chat_preferences: $ref: '#/components/schemas/ChatPreferencesInput' x-stream-index: "004" disabled_until: description: Disable push notifications till a certain time format: date-time title: Disabled Until type: string x-stream-index: "008" remove_disable: description: Remove the disabled until time. (IE stop snoozing notifications) title: Remove Disable type: boolean x-stream-index: "009" remove_schedule: description: Remove the user's quiet-hours schedule, the counterpart of remove_disable. It is applied before schedule, so sending both in one item replaces the stored schedule instead of merging into it. Cannot be combined with channel_cid. To switch from a schedule to a snooze, send remove_schedule together with disabled_until. title: Remove Schedule type: boolean x-stream-index: "011" schedule: $ref: '#/components/schemas/PushScheduleInput' description: 'Set a recurring quiet-hours schedule for the user: while a quiet window is active, push notifications are suppressed. Suppressed notifications are dropped, not delayed or queued. A schedule reaches the same notifications as disabled_until: chat message pushes, video call pushes including ringing calls, and feeds pushes. Reminder pushes are still delivered during quiet hours. The fields are merged into the stored schedule one level deep: a non-empty timezone replaces the stored timezone, and quiet_hours, when present, replaces all stored rules. Sending only a timezone therefore keeps the rules, and sending only quiet_hours keeps the timezone. The merged schedule must be complete, with a timezone and 1 to 7 rules, so the first schedule of a user has to set both. An empty object is rejected. Schedules are user-level only. A schedule cannot be combined with channel_cid, nor with disabled_until for the same user in the same request, even in separate items; to switch from a snooze to a schedule, send remove_disable together with schedule.' title: Schedule x-stream-index: "010" user_id: description: The user id for which to set the push preferences. Required when using server side auths, defaults to current user with client side auth. title: User ID type: string x-stream-index: "001" type: object PushPreferencesResponse: description: The push preference details. properties: chat_level: description: The scope level of the push notifications. title: Chat level type: string x-stream-index: "001" chat_preferences: $ref: '#/components/schemas/ChatPreferencesResponse' x-stream-index: "002" disabled_until: description: If provided the notifications will be disabled until the set date. format: date-time title: Disabled until type: number x-stream-index: "006" schedule: $ref: '#/components/schemas/PushScheduleResponse' description: The recurring quiet-hours schedule of the user, if one is set. While a quiet window is active, push notifications for the user are suppressed (dropped, not delayed). title: Schedule x-stream-index: "007" type: object PushProvider: nullable: true properties: apn_auth_key: type: string x-stream-index: "012" apn_auth_type: type: string x-stream-index: "017" apn_development: type: boolean x-stream-index: "018" apn_host: type: string x-stream-index: "019" apn_key_id: type: string x-stream-index: "013" apn_notification_template: type: string x-stream-index: "020" apn_p12_cert: type: string x-stream-index: "014" apn_team_id: type: string x-stream-index: "015" apn_topic: type: string x-stream-index: "016" created_at: format: date-time type: number x-stream-index: "008" description: maxLength: 128 type: string x-stream-index: "007" disabled_at: format: date-time type: number x-stream-index: "010" disabled_reason: maxLength: 255 type: string x-stream-index: "011" firebase_apn_template: type: string x-stream-index: "025" firebase_credentials: type: string x-stream-index: "022" firebase_data_template: type: string x-stream-index: "023" firebase_host: type: string x-stream-index: "026" firebase_notification_template: type: string x-stream-index: "024" firebase_server_key: type: string x-stream-index: "021" huawei_app_id: type: string x-stream-index: "027" huawei_app_secret: type: string x-stream-index: "028" huawei_host: type: string x-stream-index: "032" name: maxLength: 36 minLength: 1 type: string x-stream-index: "005" push_templates: items: $ref: '#/components/schemas/PushTemplate' type: array x-stream-index: "031" type: type: string x-stream-index: "006" updated_at: format: date-time type: number x-stream-index: "009" xiaomi_app_secret: type: string x-stream-index: "030" xiaomi_package_name: type: string x-stream-index: "029" required: - name - type - created_at - updated_at type: object PushProviderName: description: Push provider. enum: - firebase - apn - huawei - xiaomi title: PushProviderName type: string PushProviderRequest: properties: apn_auth_key: type: string x-stream-index: "006" apn_auth_type: type: string x-stream-index: "011" apn_development: type: boolean x-stream-index: "012" apn_host: type: string x-stream-index: "013" apn_key_id: type: string x-stream-index: "007" apn_notification_template: type: string x-stream-index: "014" apn_p12_cert: type: string x-stream-index: "008" apn_team_id: type: string x-stream-index: "009" apn_topic: type: string x-stream-index: "010" description: maxLength: 128 type: string x-stream-index: "003" disabled_at: format: date-time type: string x-stream-index: "004" disabled_reason: maxLength: 255 type: string x-stream-index: "005" firebase_apn_template: type: string x-stream-index: "019" firebase_credentials: type: string x-stream-index: "016" firebase_data_template: type: string x-stream-index: "017" firebase_host: type: string x-stream-index: "020" firebase_notification_template: type: string x-stream-index: "018" firebase_server_key: type: string x-stream-index: "015" huawei_app_id: type: string x-stream-index: "021" huawei_app_secret: type: string x-stream-index: "022" name: maxLength: 36 minLength: 1 type: string x-stream-index: "001" type: type: string x-stream-index: "002" xiaomi_app_secret: type: string x-stream-index: "024" xiaomi_package_name: type: string x-stream-index: "023" required: - name type: object PushProviderResponse: properties: apn_auth_key: type: string x-stream-index: "008" apn_auth_type: type: string x-stream-index: "013" apn_development: type: boolean x-stream-index: "014" apn_host: type: string x-stream-index: "015" apn_key_id: type: string x-stream-index: "009" apn_p12_cert: type: string x-stream-index: "010" apn_sandbox_certificate: type: boolean x-stream-index: "016" apn_supports_remote_notifications: type: boolean x-stream-index: "018" apn_supports_voip_notifications: type: boolean x-stream-index: "017" apn_team_id: type: string x-stream-index: "011" apn_topic: type: string x-stream-index: "012" created_at: format: date-time type: number x-stream-index: "004" description: type: string x-stream-index: "003" disabled_at: format: date-time type: number x-stream-index: "006" disabled_reason: type: string x-stream-index: "007" firebase_apn_template: type: string x-stream-index: "023" firebase_credentials: type: string x-stream-index: "020" firebase_data_template: type: string x-stream-index: "021" firebase_host: type: string x-stream-index: "024" firebase_notification_template: type: string x-stream-index: "022" firebase_server_key: type: string x-stream-index: "019" huawei_app_id: type: string x-stream-index: "025" huawei_app_secret: type: string x-stream-index: "026" name: type: string x-stream-index: "001" type: type: string x-stream-index: "002" updated_at: format: date-time type: number x-stream-index: "005" xiaomi_app_secret: type: string x-stream-index: "028" xiaomi_package_name: type: string x-stream-index: "027" required: - name - type - created_at - updated_at type: object PushScheduleInput: description: 'A recurring quiet-hours schedule: while any quiet window is active, push notifications for the user are suppressed. Suppressed notifications are dropped, not delayed.' properties: quiet_hours: description: 'The quiet windows, 1 to 7 rules. Push is suppressed while any rule is active. When present it replaces all stored rules; omit it to keep them, for example to change only the timezone. An empty array counts as omitted, so it cannot be used to clear the rules: use remove_schedule for that.' items: $ref: '#/components/schemas/QuietHoursRuleInput' maxItems: 7 minItems: 1 title: Quiet hours type: array x-stream-index: "002" timezone: description: IANA time zone name the quiet windows are evaluated in, for example Europe/Amsterdam or America/New_York. Daylight saving time is followed automatically for region-based names. Offsets such as +02:00 and the name "Local" are rejected; fixed-offset zones such as UTC or Etc/GMT-2 are accepted but never shift for daylight saving time. When updating an existing schedule, a non-empty timezone replaces the stored one and leaves the stored quiet_hours untouched. title: Timezone type: string x-stream-index: "001" title: Push Schedule type: object PushScheduleResponse: description: 'A recurring quiet-hours schedule: while any quiet window is active, push notifications for the user are suppressed. Suppressed notifications are dropped, not delayed.' properties: quiet_hours: description: The quiet windows. Push is suppressed while any rule is active. items: $ref: '#/components/schemas/QuietHoursRuleResponse' title: Quiet hours type: array x-stream-index: "002" timezone: description: IANA time zone name the quiet windows are evaluated in, for example Europe/Amsterdam. title: Timezone type: string x-stream-index: "001" required: - timezone - quiet_hours title: Push Schedule type: object PushTemplate: nullable: true properties: created_at: format: date-time type: number x-stream-index: "007" enable_push: type: boolean x-stream-index: "003" event_type: enum: - message.new - message.updated - reaction.new - notification.reminder_due - feeds.activity.added - feeds.comment.added - feeds.activity.reaction.added - feeds.comment.reaction.added - feeds.follow.created - feeds.notification_feed.updated type: string x-stream-index: "005" template: type: string x-stream-index: "006" updated_at: format: date-time type: number x-stream-index: "008" required: - enable_push - event_type - created_at - updated_at type: object PushTemplateResponse: properties: created_at: description: Time when the template was created format: date-time title: Created At type: number x-stream-index: "005" enable_push: description: Whether push notification is enabled for this event title: Enable Push type: boolean x-stream-index: "002" event_type: description: Type of event this template applies to title: Event Type type: string x-stream-index: "003" push_provider_internal_id: description: Internal ID of the push provider title: Push Provider Internal ID type: string x-stream-index: "001" template: description: The push notification template title: Template type: string x-stream-index: "004" updated_at: description: Time when the template was last updated format: date-time title: Updated At type: number x-stream-index: "006" required: - push_provider_internal_id - enable_push - event_type - created_at - updated_at title: PushTemplateResponse type: object QueryAppealsRequest: nullable: true properties: filter: additionalProperties: {} description: Filter conditions for appeals title: Filter type: object x-stream-filter-fields: appeal_reason: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string created_at: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: date decided_by: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string decision_reason: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string entity_id: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string entity_type: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string id: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string review_queue_item_id: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string status: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string updated_at: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: date user_id: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string 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 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 QueryBannedUsersPayload: properties: created_at_after: format: date-time type: string x-stream-index: "003.006" created_at_after_or_equal: format: date-time type: string x-stream-index: "003.005" created_at_before: format: date-time type: string x-stream-index: "003.008" created_at_before_or_equal: format: date-time type: string x-stream-index: "003.007" exclude_expired_bans: description: Whether to exclude expired bans or not title: Exclude expired bans type: boolean x-stream-index: "004" filter_conditions: additionalProperties: {} description: Filter conditions to apply to the query title: Filter type: object x-stream-filter-fields: banned_by_id: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string channel_cid: operators: - $eq - $in type: string created_at: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: date reason: operators: - $autocomplete - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string user_id: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string x-stream-index: "001" limit: description: Number of records to return format: int32 maximum: 300 minimum: 0 title: Limit type: integer x-stream-index: "003.003" offset: description: Number of records to offset format: int32 maximum: 10000 title: Offset type: integer x-stream-index: "003.004" sort: description: Array of sort parameters items: $ref: '#/components/schemas/SortParamRequest' maxItems: 1 title: Sort type: array x-stream-index: "002" user: $ref: '#/components/schemas/UserRequest' x-stream-index: "005.002" user_id: type: string x-stream-index: "005.001" required: - filter_conditions type: object QueryBannedUsersResponse: nullable: true properties: bans: description: List of found bans items: $ref: '#/components/schemas/BanResponse' title: BanResponse type: array x-stream-index: "001" duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "002.001" required: - bans - duration type: object QueryCampaignsRequest: nullable: true properties: filter: additionalProperties: {} description: Filter to apply to the query title: Filter type: object x-stream-filter-fields: created_at: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: date id: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string name: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string segments: operators: - $contains - $eq - $in type: string sender_id: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string status: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string updated_at: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: date x-stream-index: "001" limit: format: int32 maximum: 100 minimum: 0 type: integer x-stream-index: "004.001" next: type: string x-stream-index: "004.002" prev: type: string x-stream-index: "004.003" sort: items: $ref: '#/components/schemas/SortParamRequest' type: array x-stream-index: "002" user_limit: format: int32 maximum: 1000 minimum: 0 type: integer x-stream-index: "003" type: object QueryCampaignsResponse: description: Basic response information nullable: true properties: campaigns: items: $ref: '#/components/schemas/CampaignResponse' type: array x-stream-index: "001" duration: description: Duration of the request in milliseconds title: 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: - campaigns - duration title: Response type: object QueryChannelBansRequest: nullable: true properties: exclude_expired_bans: description: Whether to exclude expired bans or not title: Exclude expired bans type: boolean x-stream-index: "002" filter_conditions: additionalProperties: {} description: Filter conditions to apply to the query title: Filter type: object x-stream-filter-fields: user_id: operators: - $autocomplete - $eq - $in type: string x-stream-index: "001" include_total: description: 'When true, the response includes total and total_by_scope: the number of banned users overall and per scope, independent of paging' title: Include total type: boolean x-stream-index: "003" limit: format: int32 maximum: 100 minimum: 0 type: integer x-stream-index: "007.001" next: type: string x-stream-index: "007.002" prev: type: string x-stream-index: "007.003" user: $ref: '#/components/schemas/UserRequest' x-stream-index: "005.002" user_id: type: string x-stream-index: "005.001" type: object QueryChannelBansResponse: nullable: true properties: bans: description: Users banned from the channel, one entry per user, newest ban first items: $ref: '#/components/schemas/ChannelBanResponse' title: ChannelBanResponse type: array x-stream-index: "001" duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "005.001" next: type: string x-stream-index: "004.001" prev: type: string x-stream-index: "004.002" total: description: Number of banned users, each counted once, ignoring paging. Counted per scope with a cap of 100000 each, so it can reach 200000. Only present when include_total is set on the request; omitted when counting timed out format: int32 title: Total type: integer x-stream-index: "002" total_by_scope: $ref: '#/components/schemas/ChannelBansScopeTotals' description: Number of banned users per scope, ignoring paging and capped at 100000 per scope. Present together with total title: Total by scope x-stream-index: "003" required: - bans - duration type: object QueryChannelsDefaults: description: Defaults applied by the query channels endpoint. properties: limit: description: Number of channels returned when `limit` is omitted. A request asking for at most one message and one member per channel can return more, up to the higher ceiling described on `max_limit`. format: int32 title: Limit type: integer x-stream-index: "001" max_limit: description: Largest number of channels returned for one request. A bigger `limit` is silently clamped to this value rather than rejected. An app with no per-app `max_limit` gets a higher ceiling for the narrow case of a request asking for at most one message and one member per channel. format: int32 title: Max limit type: integer x-stream-index: "002" member_limit: description: Number of members returned per channel when `member_limit` is omitted. format: int32 title: Member limit type: integer x-stream-index: "004" message_limit: description: Number of messages returned per channel when `message_limit` is omitted. format: int32 title: Message limit type: integer x-stream-index: "003" required: - limit - max_limit - message_limit - member_limit type: object QueryChannelsRequest: nullable: true properties: filter_conditions: additionalProperties: {} description: Filter conditions to apply to the query title: Filter type: object x-stream-filter-fields: app_banned: operators: - $eq type: string archived: operators: - $eq type: boolean blocked: operators: - $eq type: boolean channel_role: operators: - $eq - $in type: string cid: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string created_at: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: date created_by_id: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string custom: operators: - $autocomplete - $contains - $eq - $exists - $gt - $gte - $in - $lt - $lte - $q type: object disabled: operators: - $eq type: boolean distinct: operators: - $eq type: boolean filter_tags: operators: - $eq - $in type: string value_types: $eq: array frozen: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: boolean has_unread: accepted_values: - true operators: - $eq type: boolean hidden: operators: - $eq type: boolean id: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string invite: operators: - $eq type: string joined: operators: - $eq type: boolean last_message_at: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: date last_updated: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: date member.user.name: operators: - $autocomplete - $eq type: string member_count: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: number members: operators: - $eq - $in type: string value_types: $eq: array message_count: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: number muted: operators: - $eq type: boolean name: operators: - $autocomplete - $eq - $exists - $gt - $gte - $in - $lt - $lte - $q type: string pinned: operators: - $eq type: boolean team: allow_empty: true operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string type: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string updated_at: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: date x-stream-index: "001" filter_values: additionalProperties: {} description: Values to interpolate into the predefined filter template title: Filter Values type: object x-stream-index: "011" include_active_member_count: description: Whether to include active_member_count for each channel title: Include active member count type: boolean x-stream-index: "014" limit: description: Number of channels to limit format: int32 title: Limit type: integer x-stream-index: "008" member_custom_include: description: Top-level keys of the message sender's channel-member custom data to include under member.custom (max 8 keys, 64 chars each) items: type: string maxItems: 8 title: Member custom include type: array x-stream-index: "013" member_limit: description: Number of members to limit format: int32 maximum: 100 minimum: 0 title: Member limit type: integer x-stream-index: "007" message_limit: description: Number of messages to limit format: int32 minimum: 0 title: Message limit type: integer x-stream-index: "006" offset: description: Channel pagination offset format: int32 title: Offset type: integer x-stream-index: "009" predefined_filter: description: ID of a predefined filter to use instead of filter_conditions maxLength: 255 title: Predefined Filter type: string x-stream-index: "010" sort: description: List of sort parameters items: $ref: '#/components/schemas/SortParamRequest' maxItems: 5 title: Sort type: array x-stream-index: "002" sort_values: additionalProperties: {} type: object x-stream-index: "012" state: description: Whether to update channel state or not title: State type: boolean x-stream-index: "004" user: $ref: '#/components/schemas/UserRequest' x-stream-index: "015.002" user_id: type: string x-stream-index: "015.001" title: Query Channels Request type: object x-stream-docs-page-id: query_channels QueryChannelsResponse: nullable: true properties: channels: description: List of channels items: $ref: '#/components/schemas/ChannelStateResponseFields' title: Channels type: array x-stream-index: "001" duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "003.001" predefined_filter: $ref: '#/components/schemas/ParsedPredefinedFilterResponse' description: The parsed predefined filter with interpolated values, only present when using a predefined filter title: Predefined Filter x-stream-index: "002" required: - channels - duration title: Channels list type: object QueryDeletedChannelsRequest: nullable: true properties: filter_conditions: additionalProperties: {} description: 'Optional filter. Omit it, or pass {}, to list every soft-deleted channel of the app; for example {"team": "tenant-a"} narrows to one tenant' title: Filter type: object x-stream-filter-fields: cid: operators: - $eq - $in type: string created_at: operators: - $gt - $gte - $lt - $lte type: date created_by_id: operators: - $eq - $in type: string deleted_at: operators: - $gt - $gte - $lt - $lte type: date team: operators: - $eq - $in type: string type: operators: - $eq - $in type: string x-stream-index: "001" limit: description: Number of channels per page, 1-100 (default 25) format: int32 maximum: 100 minimum: 0 title: Limit type: integer x-stream-index: "004.001" next: description: Cursor for the next page, from the previous response title: Next type: string x-stream-index: "004.002" prev: description: Cursor for the previous page, from the previous response title: Prev type: string x-stream-index: "004.003" sort: description: Sort order. Only created_at is supported; defaults to created_at ascending items: $ref: '#/components/schemas/SortParamRequest' maxItems: 1 title: Sort type: array x-stream-index: "002" x-stream-sort-combinations: - - created_at x-stream-sort-fields: - created_at title: Query Deleted Channels Request type: object QueryDeletedChannelsResponse: nullable: true properties: channels: description: Soft-deleted channels matching the filter, each with deleted_at set items: $ref: '#/components/schemas/ChannelResponse' title: Channels type: array x-stream-index: "001" duration: description: Duration of the request in milliseconds title: 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: - channels - duration type: object QueryDraftsRequest: nullable: true properties: filter: additionalProperties: {} description: Filter to apply to the query maximum: 3 title: Filter type: object x-stream-filter-fields: channel_cid: operators: - $eq - $in type: string created_at: operators: - $eq - $gt - $gte - $lt - $lte type: date parent_id: operators: - $eq - $exists - $in type: string x-stream-index: "001" limit: format: int32 maximum: 100 minimum: 0 type: integer x-stream-index: "005.001" next: type: string x-stream-index: "005.002" prev: type: string x-stream-index: "005.003" sort: description: Array of sort parameters items: $ref: '#/components/schemas/SortParamRequest' maxItems: 5 title: Sort type: array x-stream-index: "002" x-stream-sort-combinations: - - created_at x-stream-sort-fields: - created_at user: $ref: '#/components/schemas/UserRequest' x-stream-index: "003.002" user_id: type: string x-stream-index: "003.001" type: object QueryDraftsResponse: nullable: true properties: drafts: description: Drafts items: $ref: '#/components/schemas/DraftResponse' title: DraftsResponseList type: array x-stream-index: "001" duration: description: Duration of the request in milliseconds title: 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: - drafts - duration 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 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 QueryFutureChannelBansPayload: properties: created_at_after: format: date-time type: string x-stream-index: "001.006" created_at_after_or_equal: format: date-time type: string x-stream-index: "001.005" created_at_before: format: date-time type: string x-stream-index: "001.008" created_at_before_or_equal: format: date-time type: string x-stream-index: "001.007" exclude_expired_bans: description: Whether to exclude expired bans or not title: Exclude expired bans type: boolean x-stream-index: "002" include_total: description: When true, the response includes the total number of bans matching the query filter (independent of limit and offset, capped at 100000) title: Include total type: boolean x-stream-index: "003" limit: description: Number of records to return format: int32 maximum: 300 minimum: 0 title: Limit type: integer x-stream-index: "001.003" offset: description: Number of records to offset format: int32 maximum: 10000 title: Offset type: integer x-stream-index: "001.004" target_user_id: description: 'Filter by the target user ID. Server-side: returns all bans against this user. Client-side: narrows the authenticated user''s own bans to this target.' title: Target user ID type: string x-stream-index: "004" user: $ref: '#/components/schemas/UserRequest' x-stream-index: "005.002" user_id: type: string x-stream-index: "005.001" type: object QueryFutureChannelBansResponse: nullable: true properties: bans: description: List of found future channel bans items: $ref: '#/components/schemas/FutureChannelBanResponse' title: FutureChannelBanResponse type: array x-stream-index: "001" duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "003.001" total: description: Total number of bans matching the query filter, computed at query time and capped at 100000. Only present when include_total is set on the request; omitted when computing the total timed out format: int32 title: Total type: integer x-stream-index: "002" required: - bans - duration type: object QueryLabelResultsRequest: nullable: true properties: filter: additionalProperties: {} description: Filter conditions title: Filter type: object x-stream-filter-fields: category: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string content_id: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string content_type: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string created_at: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: date date_range: operators: - $eq type: string harm_type: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string id: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string keyword: operators: - $q type: string labels: operators: - $eq - $in type: string language: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string policy: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string recommended_action: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string severity: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string user_id: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string 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 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 QueryMembersPayload: properties: created_at_after: format: date-time type: string x-stream-index: "006.008" created_at_after_or_equal: format: date-time type: string x-stream-index: "006.007" created_at_before: format: date-time type: string x-stream-index: "006.010" created_at_before_or_equal: format: date-time type: string x-stream-index: "006.009" filter_conditions: additionalProperties: {} description: Filter conditions to apply to the query title: Filter type: object x-stream-filter-fields: banned: operators: - $eq type: boolean channel_role: operators: - $eq - $in type: string cid: operators: - $eq type: string created_at: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: date custom: operators: - $autocomplete - $contains - $eq - $exists - $gt - $gte - $in - $lt - $lte - $q type: object id: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string invite: operators: - $eq type: string is_moderator: operators: - $eq type: boolean joined: operators: - $eq type: boolean last_active: operators: - $eq - $gt - $gte - $lt - $lte type: date name: operators: - $autocomplete - $eq - $in - $q type: string notifications_muted: operators: - $eq type: boolean updated_at: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: date user.email: operators: - $autocomplete - $eq - $in - $q type: string user.nd_deactivated: operators: - $eq type: boolean user_id: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string x-stream-index: "004" id: type: string x-stream-index: "002" limit: format: int32 maximum: 300 minimum: 0 type: integer x-stream-index: "006.001" members: items: $ref: '#/components/schemas/ChannelMemberRequest' type: array x-stream-index: "003" offset: format: int32 maximum: 10000 minimum: 0 type: integer x-stream-index: "006.002" sort: description: Array of sort parameters items: $ref: '#/components/schemas/SortParamRequest' maxItems: 1 title: Sort type: array x-stream-index: "005" x-stream-sort-fields: - channel_role - cid - created_at - custom - id - is_moderator - name - updated_at - user_id type: maxLength: 64 type: string x-stream-index: "001" user: $ref: '#/components/schemas/UserRequest' x-stream-index: "007.002" user_id: type: string x-stream-index: "007.001" user_id_gt: type: string x-stream-index: "006.004" user_id_gte: type: string x-stream-index: "006.003" user_id_lt: type: string x-stream-index: "006.006" user_id_lte: type: string x-stream-index: "006.005" required: - type type: object QueryMessageFlagsPayload: properties: filter_conditions: additionalProperties: {} description: Filter conditions to apply to the query title: Filter type: object x-stream-filter-fields: action: operators: - $eq type: string blocklist_name: operators: - $eq type: string channel_cid: operators: - $eq - $in type: string date_range: operators: - $eq type: string harm_label: operators: - $eq type: string harm_type: operators: - $eq type: string image_labels: operators: - $eq type: string is_reviewed: operators: - $eq type: boolean keyword: operators: - $eq type: string matched_phrase: operators: - $eq type: string message_id: operators: - $eq - $in type: string phrase_list_ids: operators: - $eq type: number reason: operators: - $eq - $in type: string reporter_id: operators: - $eq type: string reporter_type: operators: - $eq type: string team: operators: - $eq - $in type: string user_id: operators: - $eq - $in type: string x-stream-index: "001" limit: format: int32 maximum: 300 minimum: 0 type: integer x-stream-index: "003.003" offset: format: int32 maximum: 10000 type: integer x-stream-index: "003.004" show_deleted_messages: description: Whether to include deleted messages in the results title: ShowDeletedMessages type: boolean x-stream-index: "002" sort: description: Array of sort parameters items: $ref: '#/components/schemas/SortParamRequest' maxItems: 5 title: Sort type: array x-stream-index: "003.005" user: $ref: '#/components/schemas/UserRequest' x-stream-index: "004.002" user_id: type: string x-stream-index: "004.001" type: object QueryMessageFlagsResponse: description: Query message flags response nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "002.001" flags: description: The flags that match the query items: $ref: '#/components/schemas/MessageFlagResponse' title: MessageFlagResponseList type: array x-stream-index: "001" required: - flags - duration title: QueryMessageFlagsResponse type: object QueryMessageHistoryRequest: nullable: true properties: filter: additionalProperties: {} description: Filter to apply to the query maximum: 3 minimum: 1 title: Filter type: object x-stream-filter-fields: custom: operators: - $autocomplete - $contains - $eq - $exists - $gt - $gte - $in - $lt - $lte - $q type: object message_id: operators: - $eq - $in type: string message_updated_at: operators: - $eq - $gt - $gte - $lt - $lte type: date message_updated_by_id: operators: - $eq - $in type: string x-stream-index: "001" limit: format: int32 maximum: 100 minimum: 0 type: integer x-stream-index: "004.001" next: type: string x-stream-index: "004.002" prev: type: string x-stream-index: "004.003" sort: description: Array of sort parameters items: $ref: '#/components/schemas/SortParamRequest' maxItems: 5 title: Sort type: array x-stream-index: "002" required: - filter type: object QueryMessageHistoryResponse: nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "003.001" message_history: description: Message history entries items: $ref: '#/components/schemas/MessageHistoryEntryResponse' title: MessageHistoryEntryResponseList type: array x-stream-index: "001" next: type: string x-stream-index: "002.001" prev: type: string x-stream-index: "002.002" required: - message_history - duration type: object QueryModerationConfigsRequest: nullable: true properties: filter: additionalProperties: {} description: Filter conditions for moderation configs title: Filter type: object x-stream-filter-fields: created_at: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: date key: operators: - $autocomplete - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string team: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string updated_at: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: date 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 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 QueryModerationFeedbackRequest: nullable: true properties: filter: additionalProperties: {} description: Filter conditions title: Filter type: object x-stream-filter-fields: confidence: operators: - $eq - $in type: string created_at: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: date current_labels: operators: - $contains - $in type: string date_range: operators: - $eq type: string entity_id: operators: - $eq - $in type: string entity_type: operators: - $eq - $in type: string expected_labels: operators: - $contains - $in type: string flag_id: operators: - $eq - $in type: string has_image: operators: - $eq type: boolean id: operators: - $eq - $in type: string kind: operators: - $eq - $in type: string reporter_id: operators: - $eq - $in type: string review_queue_item_id: operators: - $eq - $in type: string sent: operators: - $eq type: boolean x-stream-index: "001" item_limit: description: Maximum number of matching items returned per submission, 1 to 50; all by default format: int32 maximum: 50 minimum: 1 title: Item Limit type: integer x-stream-index: "003" limit: format: int32 maximum: 100 minimum: 0 type: integer x-stream-index: "004.001" next: type: string x-stream-index: "004.002" prev: type: string x-stream-index: "004.003" sort: description: 'Sorting parameters: created_at only, newest first by default' items: $ref: '#/components/schemas/SortParamRequest' title: Sort type: array x-stream-index: "002" user: $ref: '#/components/schemas/UserRequest' x-stream-index: "005.002" user_id: type: string x-stream-index: "005.001" type: object QueryModerationFeedbackResponse: nullable: true properties: duration: type: string x-stream-index: "004.001" filter_config: $ref: '#/components/schemas/FilterConfigResponse' description: Label values the current_labels and expected_labels filters can take for this app title: Filter Config x-stream-index: "002" next: type: string x-stream-index: "003.001" prev: type: string x-stream-index: "003.002" submissions: description: Feedback submissions with at least one item matching the filter, each with its matching items items: $ref: '#/components/schemas/ModerationFeedbackSubmissionResponse' title: Submissions type: array x-stream-index: "001" required: - submissions - duration type: object QueryModerationFlagsRequest: nullable: true properties: filter: additionalProperties: {} description: Filter conditions for moderation flags title: Filter type: object x-stream-filter-fields: created_at: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: date entity_id: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string entity_type: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string labels: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string review_queue_item_id: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string 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 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 QueryModerationLogsRequest: nullable: true properties: filter: additionalProperties: {} description: Filter conditions for moderation logs title: Filter type: object x-stream-filter-fields: ai_providers: operators: - $in type: string config_key: operators: - $eq - $in type: string created_at: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: date date_range: operators: - $eq type: string entity_id: operators: - $eq type: string id: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string label: operators: - $eq - $in type: string moderation_category: operators: - $eq type: string reason: operators: - $eq type: string reporter_id: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string reporter_type: operators: - $eq type: string resource_type: operators: - $eq type: string review_queue_item_id: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string target_user_id: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string type: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string 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 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 QueryModerationRulesRequest: nullable: true properties: filter: additionalProperties: {} description: Filter conditions for moderation rules title: Filter type: object x-stream-filter-fields: config_keys: operators: - $eq - $in type: string value_types: $eq: array created_at: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: date description: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string enabled: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: boolean id: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string is_global: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: boolean name: operators: - $autocomplete - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string team: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string updated_at: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: date 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 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: "008" 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: "009" closed_caption_labels: description: Available harm labels for closed caption rules items: type: string title: ClosedCaptionLabels type: array x-stream-index: "006" default_llm_labels: additionalProperties: type: string description: Default LLM label descriptions title: DefaultLLMLabels type: object x-stream-index: "002" default_username_llm_labels: additionalProperties: type: string description: Recommended LLM label descriptions for username-scoped policies (key starts with 'username:'). Used by /moderation/v2/labels fast-path. title: DefaultUsernameLLMLabels type: object x-stream-index: "003" duration: type: string x-stream-index: "011.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: "005" 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: "004" next: type: string x-stream-index: "010.001" ocr_labels: description: Available harm labels for OCR-based rule conditions (keyframe_ocr_rule and ocr_content). Mirrors `closed_caption_labels` today but kept as a separate field so the pickers can diverge later. items: type: string title: OcrLabels type: array x-stream-index: "007" prev: type: string x-stream-index: "010.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 - default_username_llm_labels - keyframe_labels - keyframe_label_classifications - closed_caption_labels - ocr_labels - ai_image_label_definitions - ai_image_subclassifications - duration type: object QueryPollVotesRequest: nullable: true properties: filter: additionalProperties: {} description: Filter to apply to the query title: Filter type: object x-stream-filter-fields: created_at: operators: - $eq - $gt - $gte - $lt - $lte type: date id: operators: - $eq - $in type: string is_answer: operators: - $eq type: boolean option_id: operators: - $eq - $exists - $in type: string poll_id: operators: - $eq - $in type: string updated_at: operators: - $eq - $gt - $gte - $lt - $lte type: date user_id: operators: - $eq - $in type: string x-stream-index: "003" limit: format: int32 maximum: 100 minimum: 0 type: integer x-stream-index: "005.001" next: type: string x-stream-index: "005.002" prev: type: string x-stream-index: "005.003" sort: description: Array of sort parameters items: $ref: '#/components/schemas/SortParamRequest' maxItems: 5 title: Sort type: array x-stream-index: "004" x-stream-sort-combinations: - - id - - created_at - - updated_at x-stream-sort-fields: - created_at - id - updated_at type: object QueryPollsRequest: nullable: true properties: filter: additionalProperties: {} description: Filter to apply to the query title: Filter type: object x-stream-filter-fields: allow_answers: operators: - $eq type: boolean allow_user_suggested_options: operators: - $eq type: boolean created_at: operators: - $eq - $gt - $gte - $lt - $lte type: date created_by_id: operators: - $eq - $in type: string custom: operators: - $autocomplete - $contains - $eq - $exists - $gt - $gte - $in - $lt - $lte - $q type: object id: operators: - $eq - $in type: string is_closed: operators: - $eq type: boolean max_votes_allowed: operators: - $eq - $gt - $gte - $lt - $lte type: number name: operators: - $eq - $in type: string updated_at: operators: - $eq - $gt - $gte - $lt - $lte type: date voting_visibility: operators: - $eq type: string x-stream-index: "002" limit: format: int32 maximum: 100 minimum: 0 type: integer x-stream-index: "005.001" next: type: string x-stream-index: "005.002" prev: type: string x-stream-index: "005.003" sort: description: Array of sort parameters items: $ref: '#/components/schemas/SortParamRequest' maxItems: 5 title: Sort type: array x-stream-index: "003" x-stream-sort-combinations: - - id - - name - - created_at - - updated_at - - is_closed x-stream-sort-fields: - created_at - id - is_closed - name - updated_at type: object QueryPollsResponse: nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "003.001" next: type: string x-stream-index: "002.001" polls: description: Polls data returned by the query items: $ref: '#/components/schemas/PollResponseData' title: PollsResponseData type: array x-stream-index: "001" prev: type: string x-stream-index: "002.002" required: - polls - duration type: object QueryPredefinedFiltersResponse: nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "003.001" next: type: string x-stream-index: "002.001" predefined_filters: description: Predefined filters items: $ref: '#/components/schemas/PredefinedFilterResponse' title: PredefinedFilterResponses type: array x-stream-index: "001" prev: type: string x-stream-index: "002.002" required: - predefined_filters - duration type: object QueryReactionsRequest: properties: filter: additionalProperties: {} description: Filter to apply to the query title: Filter type: object x-stream-filter-fields: created_at: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: date type: operators: - $eq - $in type: string user_id: operators: - $eq - $in type: string x-stream-index: "002" limit: format: int32 maximum: 100 minimum: 0 type: integer x-stream-index: "006.001" next: type: string x-stream-index: "006.002" prev: type: string x-stream-index: "006.003" sort: description: Array of sort parameters items: $ref: '#/components/schemas/SortParamRequest' maxItems: 2 title: Sort type: array x-stream-index: "003" x-stream-sort-combinations: - - created_at x-stream-sort-fields: - created_at user: $ref: '#/components/schemas/UserRequest' x-stream-index: "004.002" user_id: type: string x-stream-index: "004.001" type: object QueryReactionsResponse: description: Basic response information properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "002.001" next: type: string x-stream-index: "003.001" prev: type: string x-stream-index: "003.002" reactions: items: $ref: '#/components/schemas/ReactionResponse' type: array x-stream-index: "001" required: - reactions - duration title: Response type: object QueryRemindersRequest: nullable: true properties: filter: additionalProperties: {} description: Filter to apply to the query title: Filter type: object x-stream-filter-fields: channel_cid: operators: - $eq - $in type: string created_at: operators: - $eq - $gt - $gte - $lt - $lte type: date expires_at: operators: - $eq - $exists - $gt - $gte - $lt - $lte type: date message_id: operators: - $eq - $in type: string remind_at: operators: - $eq - $exists - $gt - $gte - $lt - $lte type: date x-stream-index: "001" limit: format: int32 maximum: 100 minimum: 0 type: integer x-stream-index: "005.001" next: type: string x-stream-index: "005.002" prev: type: string x-stream-index: "005.003" sort: description: Array of sort parameters items: $ref: '#/components/schemas/SortParamRequest' maxItems: 5 title: Sort type: array x-stream-index: "002" x-stream-sort-combinations: - - channel_cid - message_id - - remind_at - message_id - - created_at x-stream-sort-fields: - channel_cid - created_at - message_id - remind_at user: $ref: '#/components/schemas/UserRequest' x-stream-index: "003.002" user_id: type: string x-stream-index: "003.001" type: object QueryRemindersResponse: nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "003.001" next: type: string x-stream-index: "002.001" prev: type: string x-stream-index: "002.002" reminders: description: MessageReminders data returned by the query items: $ref: '#/components/schemas/ReminderResponseData' title: RemindersResponseData type: array x-stream-index: "001" required: - reminders - duration 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. Accepts built-in fields (e.g. status, channel_cid, severity, recommended_action) and customer-supplied moderation_payload.custom keys: any key that is not a built-in field is matched against the item''s custom moderation data (e.g. {"location_id": "loc-42"}). Use filter_config.filterable_custom_keys to discover which custom keys the app exposes as chips. content_text searches the moderated text: "$q" is a keyword search (terms ANDed, no adjacency) over the indexed tsvector, while "$eq" (or "$in" for several wordings) matches the text exactly. The exact form is unindexed, so scope it with date_range rather than running it across the whole queue.' title: Filter type: object x-stream-filter-fields: ai_text_severity: operators: - $eq type: string appeal: operators: - $eq type: boolean appeal_id: operators: - $eq type: string appeal_status: operators: - $eq type: string archived_at: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: date bounce_count: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: number category: operators: - $eq - $in type: string channel_cid: operators: - $eq type: string channel_id: operators: - $eq type: string completed_at: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: date confidence_score: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: number config_key: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string content_text: operators: - $eq - $in - $q type: string country_code: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string created_at: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: date custom: operators: - $autocomplete - $contains - $eq - $exists - $gt - $gte - $in - $lt - $lte - $q type: object date_range: operators: - $eq type: string entity_creator_id: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string entity_creator_name: operators: - $contains - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string entity_id: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string entity_type: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string escalated: operators: - $eq type: boolean escalated_at: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: date escalated_by: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string escalation_priority: operators: - $eq type: string escalation_reason: operators: - $eq type: string flagged_user_id: operators: - $eq type: string flags_count: operators: - $eq type: number has_audio: operators: - $eq type: boolean has_false_positive: operators: - $eq type: boolean has_image: operators: - $eq type: boolean has_text: operators: - $eq type: boolean has_video: operators: - $eq type: boolean id: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string label: operators: - $eq - $in type: string language: operators: - $contains - $eq - $in type: string latest_moderator_action: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string queue_type: operators: - $eq - $in type: string recommended_action: operators: - $eq - $in type: string reporter_id: operators: - $eq - $in type: string reporter_type: operators: - $eq - $in type: string reviewed: operators: - $eq type: boolean reviewed_at: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: date severity: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: number status: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string teams: operators: - $contains - $eq - $in type: string type: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string updated_at: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: date user_report_reason: operators: - $eq - $in type: string 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 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 QueryScheduledMessagesRequest: nullable: true properties: filter: $ref: '#/components/schemas/ScheduledMessagesFilter' description: Narrows the result by channel and status title: Filter x-stream-index: "001" limit: description: Page size, 1 to 100. Defaults to 20 format: int32 maximum: 100 minimum: 1 title: Limit type: integer x-stream-index: "003" next: description: Cursor from the previous page maxLength: 1024 title: Next type: string x-stream-index: "004" sort: description: Only scheduled_at ascending is supported. Pending messages come before failed ones items: $ref: '#/components/schemas/SortParamRequest' maxItems: 1 title: Sort type: array x-stream-index: "002" user: $ref: '#/components/schemas/UserRequest' x-stream-index: "005.002" user_id: type: string x-stream-index: "005.001" type: object QueryScheduledMessagesResponse: nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "003.001" next: description: Cursor for the next page; empty on the last page title: Next type: string x-stream-index: "002" scheduled_messages: description: Pending messages first, then failed ones, each by scheduled_at items: $ref: '#/components/schemas/ScheduledMessageResponse' title: Scheduled messages type: array x-stream-index: "001" required: - scheduled_messages - duration type: object QuerySegmentTargetsRequest: nullable: true properties: Filter: additionalProperties: {} type: object writeOnly: true x-stream-index: "005" Sort: items: $ref: '#/components/schemas/SortParamRequest' type: array writeOnly: true x-stream-index: "006" limit: description: Limit format: int32 maximum: 10000 minimum: 0 title: int type: integer x-stream-index: "002" next: description: Next title: string type: string x-stream-index: "003" prev: description: Prev title: string type: string x-stream-index: "004" type: object QuerySegmentTargetsResponse: nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "003.001" next: type: string x-stream-index: "002.001" prev: type: string x-stream-index: "002.002" targets: description: Targets items: $ref: '#/components/schemas/SegmentTargetResponse' title: SegmentTargetResponseList type: array x-stream-index: "001" required: - targets - duration type: object QuerySegmentsRequest: nullable: true properties: filter: additionalProperties: {} description: Filter to apply to the query title: Filter type: object x-stream-filter-fields: all_users: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: boolean created_at: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: date id: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string name: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string type: operators: - $eq - $exists - $in type: string updated_at: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: date 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: Array of sort parameters items: $ref: '#/components/schemas/SortParamRequest' title: Sort type: array x-stream-index: "002" required: - filter type: object QuerySegmentsResponse: nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "003.001" next: type: string x-stream-index: "002.001" prev: type: string x-stream-index: "002.002" segments: description: Segments items: $ref: '#/components/schemas/SegmentResponse' title: SegmentResponses type: array x-stream-index: "001" required: - segments - duration type: object QueryTeamUsageStatsRequest: description: Request payload for querying team-level usage statistics from the warehouse database nullable: true properties: end_date: description: End date in YYYY-MM-DD format. Used with start_date for custom date range. Returns daily breakdown. title: string type: string x-stream-index: "003" limit: description: 'Maximum number of teams to return per page (default: 30, max: 30)' format: int32 maximum: 30 minimum: 1 title: integer type: integer x-stream-index: "004" month: description: Month in YYYY-MM format (e.g., '2026-01'). Mutually exclusive with start_date/end_date. Returns aggregated monthly values. title: string type: string x-stream-index: "001" next: description: Cursor for pagination to fetch next page of teams title: string type: string x-stream-index: "005" start_date: description: Start date in YYYY-MM-DD format. Used with end_date for custom date range. Returns daily breakdown. title: string type: string x-stream-index: "002" team: description: Filter results to a single team ID. Empty string selects users not assigned to any team. Mutually exclusive with 'next'. maxLength: 128 title: string type: string x-stream-index: "006" title: Query Team Usage Stats Request type: object QueryTeamUsageStatsResponse: description: Response containing team-level usage statistics nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "003.001" next: description: Cursor for pagination to fetch next page title: string type: string x-stream-index: "002" teams: description: Array of team usage statistics items: $ref: '#/components/schemas/TeamUsageStats' title: '[]TeamUsageStats' type: array x-stream-index: "001" required: - teams - duration title: Query Team Usage Stats Response type: object QueryThreadsRequest: nullable: true properties: filter: additionalProperties: {} description: Filter to apply to the query title: Filter type: object x-stream-filter-fields: active_participant_count: operators: - $eq - $gt - $gte - $lt - $lte type: number channel.disabled: operators: - $eq type: boolean channel.team: operators: - $eq - $in type: string channel_cid: operators: - $eq - $in type: string created_at: operators: - $eq - $gt - $gte - $lt - $lte type: date created_by_user_id: operators: - $eq - $in type: string custom: operators: - $autocomplete - $contains - $eq - $exists - $gt - $gte - $in - $lt - $lte - $q type: object has_unread: operators: - $eq type: boolean last_message_at: operators: - $eq - $gt - $gte - $lt - $lte type: date parent_message_id: operators: - $eq - $in type: string participant_count: operators: - $eq - $gt - $gte - $lt - $lte type: number reply_count: operators: - $eq - $gt - $gte - $lt - $lte type: number updated_at: operators: - $eq - $gt - $gte - $lt - $lte type: date x-stream-index: "006" limit: format: int32 maximum: 100 minimum: 0 type: integer x-stream-index: "008.001" member_limit: format: int32 maximum: 100 minimum: 0 type: integer x-stream-index: "005" next: type: string x-stream-index: "008.002" participant_limit: description: Limit the number of participants returned per each thread format: int32 maximum: 100 minimum: 0 title: Participant limit type: integer x-stream-index: "004" prev: type: string x-stream-index: "008.003" reply_limit: description: Limit the number of replies returned per each thread format: int32 maximum: 10 minimum: 0 title: Reply limit type: integer x-stream-index: "003" sort: description: Array of sort parameters items: $ref: '#/components/schemas/SortParamRequest' maxItems: 5 title: Sort type: array x-stream-index: "007" x-stream-sort-combinations: - - has_unread - last_message_at - parent_message_id - - last_message_at - parent_message_id - - created_at - - updated_at - - reply_count - - participant_count - - active_participant_count - - parent_message_id x-stream-sort-fields: - active_participant_count - created_at - has_unread - last_message_at - parent_message_id - participant_count - reply_count - updated_at user: $ref: '#/components/schemas/UserRequest' x-stream-index: "010.002" user_id: type: string x-stream-index: "010.001" type: object QueryThreadsResponse: nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "003.001" next: type: string x-stream-index: "002.001" prev: type: string x-stream-index: "002.002" threads: description: List of enriched thread states items: $ref: '#/components/schemas/ThreadStateResponse' title: Threads type: array x-stream-index: "001" required: - threads - duration type: object QueryUsersPayload: properties: filter_conditions: additionalProperties: {} description: Filter conditions to apply to the query title: Filter type: object x-stream-filter-fields: banned: operators: - $eq - $ne type: boolean bypass_moderation: operators: - $eq - $ne type: boolean created_at: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: date custom: operators: - $contains - $eq - $exists - $gt - $gte - $in - $lt - $lte type: object email: operators: - $eq - $in type: string id: operators: - $autocomplete - $eq - $exists - $gt - $gte - $in - $lt - $lte - $ne - $nin type: string language: operators: - $eq type: string last_active: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: date name: operators: - $autocomplete - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string role: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string shadow_banned: operators: - $eq - $ne type: boolean teams: operators: - $contains - $eq - $in type: string updated_at: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: date username: operators: - $autocomplete - $eq type: string x-stream-index: "001" id_gt: type: string x-stream-index: "005.004" id_gte: type: string x-stream-index: "005.003" id_lt: type: string x-stream-index: "005.006" id_lte: type: string x-stream-index: "005.005" include_deactivated_users: type: boolean x-stream-index: "004" limit: format: int32 maximum: 100 minimum: 0 type: integer x-stream-index: "005.001" offset: format: int32 maximum: 1000 minimum: 0 type: integer x-stream-index: "005.002" presence: type: boolean x-stream-index: "003" sort: description: Array of sort parameters items: $ref: '#/components/schemas/SortParamRequest' maxItems: 5 title: Sort type: array x-stream-index: "002" user: $ref: '#/components/schemas/UserRequest' x-stream-index: "006.002" user_id: type: string x-stream-index: "006.001" required: - filter_conditions type: object QueryUsersResponse: nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "002.001" users: description: Array of users as result of filters applied. items: $ref: '#/components/schemas/FullUserResponse' title: Users type: array x-stream-index: "001" required: - users - duration type: object QueueResponse: description: Basic response information nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "002.001" queue: $ref: '#/components/schemas/ModerationQueueResponse' x-stream-index: "001" required: - duration title: Response type: object QuietHoursRuleInput: description: One recurring quiet window, expressed in local wall-clock time in the schedule's timezone. properties: days: description: 'The days of the week the window opens on, any of mon, tue, wed, thu, fri, sat, sun, each at most once. A window belongs to the day it opens: ["fri"] with 22:00 to 07:00 is quiet from Friday 22:00 until Saturday 07:00, and not on Saturday night. Empty or omitted means every day.' items: enum: - mon - tue - wed - thu - fri - sat - sun type: string title: Days type: array x-stream-index: "001" end: description: 'When the window closes, as HH:MM local wall-clock time between 00:00 and 24:00. The end is exclusive: a window ending at 07:00 is already over at 07:00. An end earlier than start wraps past midnight into the next day (start 22:00, end 07:00). 24:00 means the end of the day, so start 00:00 with end 24:00 covers the whole day.' title: End type: string x-stream-index: "003" start: description: When the window opens, as HH:MM local wall-clock time between 00:00 and 23:59. Must differ from end. title: Start type: string x-stream-index: "002" required: - start - end title: Quiet Hours Rule type: object QuietHoursRuleResponse: description: One recurring quiet window, expressed in local wall-clock time in the schedule's timezone. properties: days: description: 'The days of the week the window opens on, any of mon, tue, wed, thu, fri, sat, sun. A window belongs to the day it opens: ["fri"] with 22:00 to 07:00 is quiet from Friday 22:00 until Saturday 07:00. Omitted means every day.' items: type: string title: Days type: array x-stream-index: "001" end: description: When the window closes, as HH:MM local wall-clock time between 00:00 and 24:00. The end is exclusive. An end earlier than start wraps past midnight into the next day. title: End type: string x-stream-index: "003" start: description: When the window opens, as HH:MM local wall-clock time between 00:00 and 23:59. title: Start type: string x-stream-index: "002" required: - start - end title: Quiet Hours Rule type: object RTMPLocation: properties: name: type: string x-stream-index: "001" stream_key: type: string x-stream-index: "003" stream_url: type: string x-stream-index: "002" required: - name - stream_url - stream_key type: object RTMPSettings: properties: enabled: type: boolean x-stream-index: "001" layout: $ref: '#/components/schemas/LayoutSettings' x-stream-index: "003" location: $ref: '#/components/schemas/RTMPLocation' x-stream-index: "004" quality_name: type: string x-stream-index: "002" required: - enabled type: object RawRecordSettings: properties: audio_only: type: boolean x-stream-index: "002" mode: $ref: '#/components/schemas/FeatureActivationMode' x-stream-index: "001" required: - mode 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: double 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 ReactionDeletedEvent: description: Emitted when a reaction is deleted from a message. nullable: true properties: channel: $ref: '#/components/schemas/ChannelResponse' description: The channel object containing the message title: Channel x-stream-index: 005.002.001 channel_custom: additionalProperties: {} type: object x-stream-index: 005.001.001.006 channel_id: description: The ID of the channel containing the message title: Channel ID type: string x-stream-index: 005.001.002.002 channel_member_count: description: The number of members in the channel format: int32 title: Channel member count type: integer x-stream-index: 005.001.001.004 channel_message_count: description: The number of messages in the channel format: int64 title: Channel message count type: integer x-stream-index: 005.001.001.005 channel_type: description: The type of the channel containing the message title: Channel Type type: string x-stream-index: 005.001.002.001 cid: description: The CID of the channel containing the message title: Channel CID type: string x-stream-index: 005.001.001.001.002 created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: 005.001.001.001.001.003 custom: additionalProperties: {} type: object x-stream-index: 005.001.001.001.001.007 message: $ref: '#/components/schemas/MessageResponse' description: The message from which the reaction was deleted title: Message x-stream-index: "002.002" message_id: type: string x-stream-index: "002.001" reaction: $ref: '#/components/schemas/ReactionResponse' description: The reaction that was deleted title: Reaction x-stream-index: "001" received_at: format: date-time type: number x-stream-index: 005.001.001.001.001.004 team: description: The team ID title: Team type: string x-stream-index: 005.001.001.003 thread_participants: description: The participants of the thread items: $ref: '#/components/schemas/UserResponseCommonFields' title: Thread participants type: array x-stream-index: "003.001" type: default: reaction.deleted description: 'The type of event: "reaction.deleted" in this case' title: Event Type type: string x-stream-index: 005.001.001.001.001.002 user: $ref: '#/components/schemas/UserResponseCommonFields' description: The user who deleted the reaction title: User x-stream-index: "004.001" required: - type - created_at - custom - channel title: ReactionDeletedEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent ReactionGroupResponse: description: ReactionGroupResponse contains all information about a reaction of the same type. nullable: true properties: count: description: Count is the number of reactions of this type. format: int32 title: Count type: integer x-stream-index: "001" first_reaction_at: description: FirstReactionAt is the time of the first reaction of this type. This is the same also if all reaction of this type are deleted, because if someone will react again with the same type, will be preserved the sorting. format: date-time title: FirstReactionAt type: number x-stream-index: "003" last_reaction_at: description: LastReactionAt is the time of the last reaction of this type. format: date-time title: LastReactionAt type: number x-stream-index: "004" latest_reactions_by: description: The most recent users who reacted with this type, ordered by most recent first. items: $ref: '#/components/schemas/ReactionGroupUserResponse' title: LatestReactionsBy type: array x-stream-index: "005" sum_scores: description: 'SumScores is the sum of all scores of reactions of this type. Medium allows you to clap articles more than once and shows the sum of all claps from all users. For example, you can send `clap` x5 using `score: 5`.' format: int32 title: SumScores type: integer x-stream-index: "002" required: - count - sum_scores - first_reaction_at - last_reaction_at - latest_reactions_by title: ReactionGroupResponse type: object ReactionGroupUserResponse: description: Contains information about a user who reacted with this reaction type. properties: created_at: description: The time when the user reacted. format: date-time title: CreatedAt type: number x-stream-index: "003" user: $ref: '#/components/schemas/UserResponse' description: The full user object. title: User x-stream-index: "002" user_id: description: The ID of the user who reacted. title: UserID type: string x-stream-index: "001" required: - user_id - created_at title: ReactionGroupUserResponse type: object ReactionNewEvent: description: Emitted when a new reaction is added to a message. nullable: true properties: channel: $ref: '#/components/schemas/ChannelResponse' description: The channel object containing the message title: Channel x-stream-index: 005.002.001 channel_custom: additionalProperties: {} type: object x-stream-index: 005.001.001.006 channel_id: description: The ID of the channel containing the message title: Channel ID type: string x-stream-index: 005.001.002.002 channel_member_count: description: The number of members in the channel format: int32 title: Channel member count type: integer x-stream-index: 005.001.001.004 channel_message_count: description: The number of messages in the channel format: int64 title: Channel message count type: integer x-stream-index: 005.001.001.005 channel_type: description: The type of the channel containing the message title: Channel Type type: string x-stream-index: 005.001.002.001 cid: description: The CID of the channel containing the message title: Channel CID type: string x-stream-index: 005.001.001.001.002 created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: 005.001.001.001.001.003 custom: additionalProperties: {} type: object x-stream-index: 005.001.001.001.001.007 message: $ref: '#/components/schemas/MessageResponse' description: The message to which the reaction was added title: Message x-stream-index: "002.002" message_id: type: string x-stream-index: "002.001" reaction: $ref: '#/components/schemas/ReactionResponse' description: The reaction that was added title: Reaction x-stream-index: "001" received_at: format: date-time type: number x-stream-index: 005.001.001.001.001.004 team: description: The team ID title: Team type: string x-stream-index: 005.001.001.003 thread_participants: description: The participants of the thread items: $ref: '#/components/schemas/UserResponseCommonFields' title: Thread participants type: array x-stream-index: "003.001" type: default: reaction.new description: 'The type of event: "reaction.new" in this case' title: Event Type type: string x-stream-index: 005.001.001.001.001.002 user: $ref: '#/components/schemas/UserResponseCommonFields' description: The user who added the reaction title: User x-stream-index: "004.001" required: - type - created_at - custom - channel title: ReactionNewEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent ReactionRequest: description: Represents user reaction to a message properties: created_at: description: Date/time of creation format: date-time title: Created at type: string x-stream-index: "003" custom: additionalProperties: {} type: object x-stream-index: "005" score: description: Reaction score. If not specified reaction has score of 1 format: int32 title: Score type: integer x-stream-index: "002" type: description: The type of reaction (e.g. 'like', 'laugh', 'wow') maxLength: 30 title: Type type: string x-stream-index: "001" updated_at: description: Date/time of the last update format: date-time title: Updated at type: string x-stream-index: "004" user: $ref: '#/components/schemas/UserRequest' x-stream-index: "006.002" user_id: type: string x-stream-index: "006.001" required: - type title: Reaction type: object x-stream-docs-page-id: send_reaction ReactionResponse: properties: created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: "006" custom: additionalProperties: {} description: Custom data for this object title: Custom data type: object x-stream-index: "008" message_id: description: Message ID title: Message ID type: string x-stream-index: "001" score: description: Score of the reaction format: int32 title: Score type: integer x-stream-index: "005" type: description: Type of reaction title: Type type: string x-stream-index: "004" updated_at: description: Date/time of the last update format: date-time title: Updated at type: number x-stream-index: "007" user: $ref: '#/components/schemas/UserResponse' description: User title: UserResponse x-stream-index: "003" user_id: description: User ID title: User ID type: string x-stream-index: "002" required: - message_id - user_id - user - type - score - created_at - updated_at - custom type: object ReactionUpdatedEvent: description: Emitted when a reaction is updated on a message. nullable: true properties: channel: $ref: '#/components/schemas/ChannelResponse' description: The channel object containing the message title: Channel x-stream-index: 004.002.001 channel_custom: additionalProperties: {} type: object x-stream-index: 004.001.001.006 channel_id: description: The ID of the channel containing the message title: Channel ID type: string x-stream-index: 004.001.002.002 channel_member_count: description: The number of members in the channel format: int32 title: Channel member count type: integer x-stream-index: 004.001.001.004 channel_message_count: description: The number of messages in the channel format: int64 title: Channel message count type: integer x-stream-index: 004.001.001.005 channel_type: description: The type of the channel containing the message title: Channel Type type: string x-stream-index: 004.001.002.001 cid: description: The CID of the channel containing the message title: Channel CID type: string x-stream-index: 004.001.001.001.002 created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: 004.001.001.001.001.003 custom: additionalProperties: {} type: object x-stream-index: 004.001.001.001.001.007 message: $ref: '#/components/schemas/MessageResponse' description: The message on which the reaction was updated title: Message x-stream-index: "002.002" message_id: type: string x-stream-index: "002.001" reaction: $ref: '#/components/schemas/ReactionResponse' description: The reaction that was updated title: Reaction x-stream-index: "001" received_at: format: date-time type: number x-stream-index: 004.001.001.001.001.004 team: description: The team ID title: Team type: string x-stream-index: 004.001.001.003 type: default: reaction.updated description: 'The type of event: "reaction.updated" in this case' title: Event Type type: string x-stream-index: 004.001.001.001.001.002 user: $ref: '#/components/schemas/UserResponseCommonFields' description: The user who updated the reaction title: User x-stream-index: "003.001" required: - message_id - message - type - created_at - custom - channel title: ReactionUpdatedEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent ReactivateUserRequest: nullable: true properties: created_by_id: description: ID of the user who's reactivating the user title: Created by ID type: string x-stream-index: "004" name: description: Set this field to put new name for the user title: Name type: string x-stream-index: "003" restore_messages: description: Restore previously deleted messages title: Restore messages type: boolean x-stream-index: "002" type: object ReactivateUserResponse: nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: 001.002.001 user: $ref: '#/components/schemas/UserResponse' description: Deactivated user object title: User x-stream-index: "001.001" required: - duration type: object ReactivateUsersRequest: description: Reactivate users in batches nullable: true properties: created_by_id: description: ID of the user who's reactivating the users title: Created by ID type: string x-stream-index: "003" restore_channels: type: boolean x-stream-index: "004" restore_messages: description: Restore previously deleted messages title: Restore messages type: boolean x-stream-index: "002" user_ids: description: User IDs to reactivate items: type: string maxItems: 100 minItems: 1 title: User IDs type: array x-stream-index: "001" required: - user_ids title: ReactivateUsersRequest type: object ReactivateUsersResponse: description: Basic response information nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: 001.002.001 task_id: type: string x-stream-index: "001.001" required: - task_id - duration title: Response type: object ReadReceiptsResponse: description: The settings for the read receipt events. properties: enabled: type: boolean x-stream-index: "001" required: - enabled type: object ReadStateResponse: properties: last_delivered_at: format: date-time type: number x-stream-index: "005" last_delivered_message_id: type: string x-stream-index: "006" last_read: format: date-time type: number x-stream-index: "002" last_read_message_id: type: string x-stream-index: "004" unread_messages: format: int32 type: integer x-stream-index: "003" user: $ref: '#/components/schemas/UserResponse' x-stream-index: "001" required: - user - last_read - unread_messages type: object RecordSettings: properties: audio_only: type: boolean x-stream-index: "001" layout: $ref: '#/components/schemas/LayoutSettings' x-stream-index: "004" mode: type: string x-stream-index: "002" quality: type: string x-stream-index: "003" 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 ReminderCreatedEvent: description: Emitted when a reminder is created. nullable: true properties: cid: description: The CID of the Channel for which the reminder was created title: Channel CID type: string x-stream-index: "001.004" created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: 001.001.003 custom: additionalProperties: {} type: object x-stream-index: 001.001.007 message_id: description: The ID of the message for which the reminder was created title: Message ID type: string x-stream-index: "001.002" parent_id: description: The ID of the parent message, if the reminder is for a thread message title: Parent ID type: string x-stream-index: "001.005" received_at: format: date-time type: number x-stream-index: 001.001.004 reminder: $ref: '#/components/schemas/ReminderResponseData' description: The reminder object which was created title: MessageReminder x-stream-index: "001.006" type: default: reminder.created description: 'The type of event: "reminder.created" in this case' title: Event Type type: string x-stream-index: 001.001.002 user_id: description: The ID of the user for whom the reminder was created title: User ID type: string x-stream-index: "001.003" required: - type - created_at - custom - message_id - user_id - cid - reminder title: ReminderCreatedEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent ReminderDeletedEvent: description: Emitted when a reminder is deleted. nullable: true properties: cid: description: The CID of the Channel for which the reminder was created title: Channel CID type: string x-stream-index: "001.004" created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: 001.001.003 custom: additionalProperties: {} type: object x-stream-index: 001.001.007 message_id: description: The ID of the message for which the reminder was created title: Message ID type: string x-stream-index: "001.002" parent_id: description: The ID of the parent message, if the reminder is for a thread message title: Parent ID type: string x-stream-index: "001.005" received_at: format: date-time type: number x-stream-index: 001.001.004 reminder: $ref: '#/components/schemas/ReminderResponseData' description: The reminder object which was created title: MessageReminder x-stream-index: "001.006" type: default: reminder.deleted description: 'The type of event: "reminder.deleted" in this case' title: Event Type type: string x-stream-index: 001.001.002 user_id: description: The ID of the user for whom the reminder was created title: User ID type: string x-stream-index: "001.003" required: - type - created_at - custom - message_id - user_id - cid - reminder title: ReminderDeletedEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent ReminderNotificationEvent: description: Emitted when a reminder becomes due, triggering a notification for the user. nullable: true properties: cid: description: The CID of the Channel for which the reminder was created title: Channel CID type: string x-stream-index: "001.004" created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: 001.001.003 custom: additionalProperties: {} type: object x-stream-index: 001.001.007 message_id: description: The ID of the message for which the reminder was created title: Message ID type: string x-stream-index: "001.002" parent_id: type: string x-stream-index: "001.005" received_at: format: date-time type: number x-stream-index: 001.001.004 reminder: $ref: '#/components/schemas/ReminderResponseData' description: The reminder object which was created title: MessageReminder x-stream-index: "001.006" type: default: notification.reminder_due description: 'The type of event: "notification.reminder_due" in this case' title: Event Type type: string x-stream-index: 001.001.002 user_id: description: The ID of the user for whom the reminder was created title: User ID type: string x-stream-index: "001.003" required: - type - created_at - custom - message_id - user_id - cid - reminder title: ReminderNotificationEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent ReminderResponseData: properties: channel: $ref: '#/components/schemas/ChannelResponse' x-stream-index: "004" channel_cid: type: string x-stream-index: "003" created_at: format: date-time type: number x-stream-index: "009" expires_at: format: date-time type: number x-stream-index: "002" message: $ref: '#/components/schemas/MessageResponse' x-stream-index: "006" message_id: type: string x-stream-index: "005" remind_at: format: date-time type: number x-stream-index: "001" updated_at: format: date-time type: number x-stream-index: "010" user: $ref: '#/components/schemas/UserResponse' x-stream-index: "008" user_id: type: string x-stream-index: "007" required: - channel_cid - message_id - user_id - created_at - updated_at type: object ReminderUpdatedEvent: description: Emitted when a reminder is updated. nullable: true properties: cid: description: The CID of the Channel for which the reminder was created title: Channel CID type: string x-stream-index: "001.004" created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: 001.001.003 custom: additionalProperties: {} type: object x-stream-index: 001.001.007 message_id: description: The ID of the message for which the reminder was created title: Message ID type: string x-stream-index: "001.002" parent_id: description: The ID of the parent message, if the reminder is for a thread message title: Parent ID type: string x-stream-index: "001.005" received_at: format: date-time type: number x-stream-index: 001.001.004 reminder: $ref: '#/components/schemas/ReminderResponseData' description: The reminder object which was created title: MessageReminder x-stream-index: "001.006" type: default: reminder.updated description: 'The type of event: "reminder.updated" in this case' title: Event Type type: string x-stream-index: 001.001.002 user_id: description: The ID of the user for whom the reminder was created title: User ID type: string x-stream-index: "001.003" required: - type - created_at - custom - message_id - user_id - cid - reminder title: ReminderUpdatedEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent RemoveUserGroupMembersRequest: description: Request body for removing members from a user group nullable: true properties: member_ids: description: List of user IDs to remove items: type: string maxItems: 100 minItems: 1 title: Member IDs type: array x-stream-index: "002" team_id: maxLength: 255 type: string x-stream-index: "003" required: - member_ids title: RemoveUserGroupMembersRequest type: object RemoveUserGroupMembersResponse: description: Response for removing members from a user group nullable: true properties: duration: type: string x-stream-index: "002.001" user_group: $ref: '#/components/schemas/UserGroupResponse' description: The updated user group title: UserGroup x-stream-index: "001" required: - duration title: RemoveUserGroupMembersResponse type: object Response: description: Basic response information nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "001" required: - duration title: Response type: object RestoreActionRequestPayload: description: 'Configuration for restore action. State-aware: reverses whichever of a delete, a block, or a shadow block currently applies to the content (including both a delete and a block/shadow block at once).' properties: decision_reason: description: Reason for the appeal decision title: Decision Reason type: string x-stream-index: "001" reason: description: Internal moderator note, stored on the action log and returned by QueryModerationLogs. Not shown to the appealing user; use decision_reason for that title: Reason type: string x-stream-index: "002" title: RestoreActionRequest type: object RestoreUsersRequest: nullable: true properties: user_ids: items: type: string maxItems: 100 minItems: 1 type: array x-stream-index: "001" required: - user_ids type: object RestrictReplies: description: Who is allowed to reply to an activity. enum: - everyone - people_i_follow - nobody title: RestrictReplies type: string RetentionPolicy: properties: app_pk: format: int64 type: integer x-stream-index: "003" config: $ref: '#/components/schemas/PolicyConfig' x-stream-index: "005" enabled_at: format: date-time type: number x-stream-index: "006" policy: type: string x-stream-index: "004" required: - app_pk - policy - config - enabled_at type: object RetentionPolicyType: description: What a retention policy applies to. enum: - old-messages - inactive-channels - inactive-channels-by-type title: RetentionPolicyType type: string RetentionRunResponse: properties: app_pk: format: int64 type: integer x-stream-index: "001" channel_type: type: string x-stream-index: "003" date: type: string x-stream-index: "004" policy: type: string x-stream-index: "002" stats: $ref: '#/components/schemas/RunStats' x-stream-index: "005" required: - app_pk - policy - date - stats type: object RevealMediaRequest: description: Request to reveal a review queue item's blurred media nullable: true properties: item_id: description: ID of the review queue item whose media is revealed title: Item ID type: string x-stream-index: "001" user: $ref: '#/components/schemas/UserRequest' x-stream-index: "002.002" user_id: type: string x-stream-index: "002.001" required: - item_id title: Reveal Media Request type: object RevealMediaResponse: description: Response after a reveal of a review queue item's media is allowed nullable: true properties: duration: type: string x-stream-index: "002.001" media_display: $ref: '#/components/schemas/MediaDisplayResponse' description: The item's media display policy title: Media Display x-stream-index: "001" required: - media_display - duration title: Reveal Media Response type: object ReviewQueueItemNewEvent: description: This event is sent when a new moderation review queue item is created nullable: true properties: action: $ref: '#/components/schemas/ActionLogResponse' description: The action log if any action was taken title: Action x-stream-index: "004" created_at: format: date-time type: number x-stream-index: "001.003" custom: additionalProperties: {} type: object x-stream-index: "001.007" flags: description: The flags associated with this review queue item items: $ref: '#/components/schemas/ModerationFlagResponse' title: Flags type: array x-stream-index: "003" received_at: format: date-time type: number x-stream-index: "001.004" review_queue_item: $ref: '#/components/schemas/ReviewQueueItemResponse' description: The review queue item that was created title: ReviewQueueItem x-stream-index: "002" type: default: review_queue_item.new type: string x-stream-index: "001.002" required: - type - created_at - custom title: ReviewQueueItemNewEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent ReviewQueueItemResponse: properties: actions: description: Moderation actions taken items: $ref: '#/components/schemas/ActionLogResponse' title: Actions type: array x-stream-index: "027" activity: $ref: '#/components/schemas/EnrichedActivity' x-stream-index: "019" ai_text_severity: description: AI-determined text severity title: AI Text Severity type: string x-stream-index: "015" appeal: $ref: '#/components/schemas/AppealItemResponse' description: Appeal submitted for this item if it exists title: Appeal x-stream-index: "028" assigned_to: $ref: '#/components/schemas/UserResponse' description: Moderator assigned to review this item title: Assigned To x-stream-index: "024" bans: description: Associated ban records items: $ref: '#/components/schemas/BanInfoResponse' title: Bans type: array x-stream-index: "025" call: $ref: '#/components/schemas/ModerationCallResponse' x-stream-index: "021" completed_at: description: When the review was completed format: date-time title: Completed At type: number x-stream-index: "009" confidence_score: description: Highest per-label confidence (0-1) any provider reported across the item's flags; absent when no flag carried one format: double title: Confidence Score type: number x-stream-index: "017" config_key: type: string x-stream-index: "035" country_code: type: string x-stream-index: "013" country_codes: items: type: string type: array x-stream-index: "043" 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: "022" entity_creator_id: description: ID of who created the entity title: Entity Creator ID type: string x-stream-index: "023" 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: "037" escalated_at: description: When the item was escalated format: date-time title: Escalated At type: number x-stream-index: "040" escalated_by: description: ID of the moderator who escalated the item title: Escalated By type: string x-stream-index: "039" escalation_metadata: $ref: '#/components/schemas/EscalationMetadata' description: Escalation details including reason, notes, and priority title: Escalation Metadata x-stream-index: "038" false_positive_flags: description: IDs of the item's flags a moderator marked as false positives items: type: string title: False Positive Flags type: array x-stream-index: "041" feeds_v2_activity: $ref: '#/components/schemas/EnrichedActivity' description: Associated feed activity title: Feeds V2 Activity x-stream-index: "029" feeds_v2_reaction: $ref: '#/components/schemas/Reaction' description: Associated feed reaction title: Feeds V2 Reaction x-stream-index: "030" feeds_v3_activity: $ref: '#/components/schemas/FeedsV3ActivityResponse' x-stream-index: "031" feeds_v3_comment: $ref: '#/components/schemas/FeedsV3CommentResponse' x-stream-index: "032" flags: description: Associated flag records items: $ref: '#/components/schemas/ModerationFlagResponse' title: Flags type: array x-stream-index: "026" flags_count: format: int32 type: integer x-stream-index: "036" 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: "016" media_display: $ref: '#/components/schemas/MediaDisplayResponse' description: How the dashboard renders this item's images and video before a reviewer reveals them, resolved from the app's per-label media display settings title: Media Display x-stream-index: "042" message: $ref: '#/components/schemas/ChatMessageResponse' description: Associated message details title: Message x-stream-index: "018" moderation_payload: $ref: '#/components/schemas/ModerationPayloadResponse' description: Content being moderated title: Moderation Payload x-stream-index: "006" poll: $ref: '#/components/schemas/PollResponseData' description: Associated poll. Absent when the poll was never stored (rejected create) or when a later poll reused the same client-supplied id. title: Poll x-stream-index: "033" reaction: $ref: '#/components/schemas/Reaction' x-stream-index: "020" 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: "014" 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: "034" 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 - media_display type: object ReviewQueueItemUpdatedEvent: description: This event is sent when a moderation review queue item is updated nullable: true properties: action: $ref: '#/components/schemas/ActionLogResponse' description: The action log if any action was taken title: Action x-stream-index: "004" created_at: format: date-time type: number x-stream-index: "001.003" custom: additionalProperties: {} type: object x-stream-index: "001.007" flags: description: The flags associated with this review queue item items: $ref: '#/components/schemas/ModerationFlagResponse' title: Flags type: array x-stream-index: "003" received_at: format: date-time type: number x-stream-index: "001.004" review_queue_item: $ref: '#/components/schemas/ReviewQueueItemResponse' description: The review queue item that was updated title: ReviewQueueItem x-stream-index: "002" type: default: review_queue_item.updated type: string x-stream-index: "001.002" required: - type - created_at - custom title: ReviewQueueItemUpdatedEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent RewindChannelRequest: nullable: true properties: expected_last_message_id: description: ID of the newest visible message the caller saw. The rewind fails with a conflict when it is no longer the newest title: Expected last message ID type: string x-stream-index: "005" inclusive: description: When true, `message_id` is hidden too and the message before it becomes the newest visible message title: Inclusive type: boolean x-stream-index: "004" message_id: description: ID of the top-level message to rewind the channel to. Every message created after it is hidden title: Message ID type: string x-stream-index: "003" user: $ref: '#/components/schemas/UserRequest' x-stream-index: "006.002" user_id: type: string x-stream-index: "006.001" required: - message_id - expected_last_message_id type: object RewindChannelResponse: nullable: true properties: channel: $ref: '#/components/schemas/ChannelResponse' description: The channel after the rewind title: Channel x-stream-index: "003" duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "001.001" rewind: $ref: '#/components/schemas/ChannelRewindResponse' description: The rewind title: Rewind x-stream-index: "002" required: - duration - rewind type: object RingSettings: 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 Role: properties: created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: "004" custom: description: Whether this is a custom role or built-in title: Custom type: boolean x-stream-index: "002" name: description: Unique role name title: Name type: string x-stream-index: "001" scopes: description: List of scopes where this role is currently present. `.app` means that role is present in app-level grants items: type: string title: Scopes type: array 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" required: - name - custom - scopes - created_at - updated_at 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" reason: type: string x-stream-index: "006" 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 RuleBuilderCondition: properties: app_channel_count_params: $ref: '#/components/schemas/AppChannelCountParameters' x-stream-index: "037" app_message_count_params: $ref: '#/components/schemas/AppMessageCountParameters' x-stream-index: "038" call_custom_property_params: $ref: '#/components/schemas/CallCustomPropertyParameters' x-stream-index: "030" call_type_rule_params: $ref: '#/components/schemas/CallTypeRuleParameters' x-stream-index: "029" call_violation_count_params: $ref: '#/components/schemas/CallViolationCountParameters' x-stream-index: "031" channel_message_count_rule_params: $ref: '#/components/schemas/ChannelMessageCountRuleParameters' x-stream-index: "008" closed_caption_rule_params: $ref: '#/components/schemas/ClosedCaptionRuleParameters' x-stream-index: "028" confidence: format: double type: number x-stream-index: "002" content_count_rule_params: $ref: '#/components/schemas/ContentCountRuleParameters' x-stream-index: "007" content_country_code_params: $ref: '#/components/schemas/ContentCountryCodeParameters' x-stream-index: "016" content_custom_property_count_params: $ref: '#/components/schemas/ContentCustomPropertyCountParameters' x-stream-index: "014" content_custom_property_params: $ref: '#/components/schemas/ContentCustomPropertyParameters' x-stream-index: "015" content_flag_count_rule_params: $ref: '#/components/schemas/FlagCountRuleParameters' x-stream-index: "010" flood_identical_params: $ref: '#/components/schemas/FloodIdenticalRuleParameters' x-stream-index: "012" flood_similar_params: $ref: '#/components/schemas/FloodSimilarRuleParameters' x-stream-index: "013" image_content_params: $ref: '#/components/schemas/ImageContentParameters' x-stream-index: "020" image_rule_params: $ref: '#/components/schemas/ImageRuleParameters' x-stream-index: "004" intent_rule_params: $ref: '#/components/schemas/IntentRuleParameters' x-stream-index: "036" ip_content_count_rule_params: $ref: '#/components/schemas/IPContentCountRuleParameters' x-stream-index: "017" ip_flag_count_rule_params: $ref: '#/components/schemas/IPFlagCountRuleParameters' x-stream-index: "018" keyframe_ocr_rule_params: $ref: '#/components/schemas/KeyframeOCRRuleParameters' x-stream-index: "027" keyframe_rule_params: $ref: '#/components/schemas/KeyframeRuleParameters' x-stream-index: "026" ocr_content_params: $ref: '#/components/schemas/OCRContentParameters' x-stream-index: "022" text_content_params: $ref: '#/components/schemas/TextContentParameters' x-stream-index: "019" text_rule_params: $ref: '#/components/schemas/TextRuleParameters' x-stream-index: "003" type: type: string x-stream-index: "001" user_channel_ban_count_params: $ref: '#/components/schemas/UserChannelBanCountRuleParameters' x-stream-index: "035" user_channel_count_params: $ref: '#/components/schemas/UserChannelCountRuleParameters' x-stream-index: "034" user_created_within_params: $ref: '#/components/schemas/UserCreatedWithinParameters' x-stream-index: "023" user_custom_property_params: $ref: '#/components/schemas/UserCustomPropertyParameters' x-stream-index: "024" 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_identical_image_count_params: $ref: '#/components/schemas/UserIdenticalImageCountParameters' x-stream-index: "033" user_reaction_count_params: $ref: '#/components/schemas/UserReactionCountRuleParameters' x-stream-index: "032" user_role_params: $ref: '#/components/schemas/UserRoleParameters' x-stream-index: "025" user_rule_params: $ref: '#/components/schemas/UserRuleParameters' x-stream-index: "006" video_content_params: $ref: '#/components/schemas/VideoContentParameters' x-stream-index: "021" video_rule_params: $ref: '#/components/schemas/VideoRuleParameters' x-stream-index: "005" 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 RuleBuilderConfig: properties: async: type: boolean x-stream-index: "001" rules: items: $ref: '#/components/schemas/RuleBuilderRule' type: array x-stream-index: "002" 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 RunStats: properties: activities_deleted: format: int64 type: integer x-stream-index: "003" channels_deleted: format: int64 type: integer x-stream-index: "001" messages_deleted: format: int64 type: integer x-stream-index: "002" type: object S3Request: description: Config for creating Amazon S3 storage. properties: s3_api_key: description: 'The AWS API key. To use Amazon S3 as your storage provider, you have two authentication options: IAM role or API key. If you do not specify the `s3_api_key` parameter, Stream will use IAM role authentication. In that case make sure to have the correct IAM role configured for your application.' title: S3ApiKey type: string x-stream-index: "002" s3_custom_endpoint_url: description: The custom endpoint for S3. If you want to use a custom endpoint, you must also provide the `s3_api_key` and `s3_secret` parameters. title: S3CustomEndpointURL type: string x-stream-index: "004" s3_region: description: The AWS region where the bucket is hosted title: S3Region type: string x-stream-index: "001" s3_secret: description: The AWS API Secret title: S3Secret type: string x-stream-index: "003" required: - s3_region title: S3Request type: object SaveConfigVersionRequest: nullable: true properties: ai_audio_config: $ref: '#/components/schemas/AIAudioConfigRequest' description: Configuration for AI audio analysis title: AI Audio Config x-stream-index: "001.013" ai_image_config: $ref: '#/components/schemas/AIImageConfig' description: Configuration for AI image analysis title: AI Image Config x-stream-index: "001.011" ai_text_config: $ref: '#/components/schemas/AITextConfig' description: Configuration for AI text analysis title: AI Text Config x-stream-index: "001.008" ai_video_config: $ref: '#/components/schemas/AIVideoConfigRequest' description: Configuration for AI video analysis title: AI Video Config x-stream-index: "001.012" async: description: Whether moderation should be performed asynchronously title: Async type: boolean x-stream-index: "001.003" automod_platform_circumvention_config: $ref: '#/components/schemas/AutomodPlatformCircumventionConfig' description: Configuration for platform circumvention detection title: Automod Platform Circumvention Config x-stream-index: "001.005" automod_semantic_filters_config: $ref: '#/components/schemas/AutomodSemanticFiltersConfig' description: Configuration for semantic filtering title: Automod Semantic Filters Config x-stream-index: "001.006" automod_toxicity_config: $ref: '#/components/schemas/AutomodToxicityConfig' description: Configuration for toxicity detection title: Automod Toxicity Config x-stream-index: "001.004" aws_rekognition_config: $ref: '#/components/schemas/AIImageConfig' x-stream-index: "001.019" base_version: description: Latest version the edit was based on, 0 for a policy without versions. The save is rejected when a newer version exists format: int32 minimum: 0 title: Base Version type: integer x-stream-index: "002" block_list_config: $ref: '#/components/schemas/BlockListConfig' description: Configuration for block list filtering title: Block List Config x-stream-index: "001.007" bodyguard_config: $ref: '#/components/schemas/AITextConfig' x-stream-index: "001.018" engine: $ref: '#/components/schemas/ModerationEngineConfigRequest' description: 'Engine for everything the policy moderates (text, audio transcripts, OCR text, usernames): provider llm or nlp, and an optional LLM model. A missing provider follows the app''s LLM moderation setting. Omit to keep the stored engine; send an empty object to clear it' title: Engine x-stream-index: "001.021" flood_config: $ref: '#/components/schemas/FloodConfig' description: Per-user flood detection for the /labels endpoint (identical and similar message detectors) title: Flood Config x-stream-index: "001.015" google_vision_config: $ref: '#/components/schemas/GoogleVisionConfig' description: Configuration for Google Vision integration title: Google Vision Config x-stream-index: "001.010" intent_config: $ref: '#/components/schemas/IntentConfigRequest' description: Configuration for conversation-level intent analysis (topics, capture cap, cooldowns, score threshold) title: Intent Config x-stream-index: "001.017" key: description: Unique identifier for the moderation configuration title: Key type: string x-stream-index: "001.001" llm_config: $ref: '#/components/schemas/LLMConfig' description: Configuration for customer-configured LLM moderation title: LLM Config x-stream-index: "001.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: "001.016" team: description: Team associated with the configuration maxLength: 128 minLength: 1 title: Team type: string x-stream-index: "001.002" user: $ref: '#/components/schemas/UserRequest' x-stream-index: 001.022.002 user_id: description: Optional user ID to associate with the audit log entry title: User ID type: string x-stream-index: 001.022.001 velocity_filter_config: $ref: '#/components/schemas/VelocityFilterConfig' description: Configuration for velocity-based filtering title: Velocity Filter Config x-stream-index: "001.014" video_call_rule_config: $ref: '#/components/schemas/VideoCallRuleConfig' x-stream-index: "001.020" required: - key - base_version type: object SaveConfigVersionResponse: nullable: true properties: duration: type: string x-stream-index: "003.001" published_version: description: The version moderation currently runs format: int32 title: Published Version type: integer x-stream-index: "002" version: $ref: '#/components/schemas/ConfigVersionResponse' description: The version that was saved title: Version x-stream-index: "001" required: - version - duration type: object ScheduledMessageChannelResponse: description: The channel of a scheduled message properties: cid: description: Channel CID (:) title: CID type: string x-stream-index: "001" id: description: Channel ID title: ID type: string x-stream-index: "003" image: description: Channel image, from its custom data title: Image type: string x-stream-index: "005" name: description: Channel name, from its custom data title: Name type: string x-stream-index: "004" type: description: Channel type title: Type type: string x-stream-index: "002" required: - cid - type - id title: Scheduled Message Channel type: object ScheduledMessageContentResponse: description: The message a scheduled message will send properties: attachments: description: Array of message attachments items: $ref: '#/components/schemas/Attachment' title: Message attachments type: array x-stream-docs-page-id: message_format#attachment-format x-stream-index: "005" custom: additionalProperties: {} type: object x-stream-index: "020" html: description: Contains HTML markup of the message title: HTML content type: string x-stream-index: "003" mentioned_channel: description: Whether the message mentions the whole channel title: Mentioned channel type: boolean x-stream-index: "012" mentioned_group_ids: description: IDs of the user groups mentioned in the message items: type: string title: Mentioned group IDs type: array x-stream-index: "011" mentioned_here: description: Whether the message mentions the online channel members title: Mentioned here type: boolean x-stream-index: "013" mentioned_roles: description: Roles mentioned in the message items: type: string title: Mentioned roles type: array x-stream-index: "010" mentioned_users: description: IDs of the users mentioned in the message items: type: string title: Mentioned user IDs type: array x-stream-index: "009" mml: description: MML content of the message title: Messaging Markup Language type: string x-stream-docs-page-id: mml_overview x-stream-index: "002" parent_id: description: ID of parent message (thread) title: Parent message ID type: string x-stream-docs-page-id: threads x-stream-index: "006" pin_expires: description: Date/time the pin expires format: date-time title: Pin expires type: number x-stream-index: "017" pinned: description: Whether the message will be pinned when sent title: Pinned type: boolean x-stream-index: "016" poll_id: description: Identifier of the poll to include in the message title: Poll ID type: string x-stream-index: "018" quoted_message_id: title: ID of quoted message type: string x-stream-docs-page-id: threads#quote-message x-stream-index: "008" restricted_visibility: description: IDs of the users the message will be visible to items: type: string title: Restricted visibility type: array x-stream-index: "014" shared_location: $ref: '#/components/schemas/ScheduledMessageLocation' description: Location shared in the message title: Shared location x-stream-index: "019" show_in_channel: description: Whether thread reply should be shown in the channel as well title: Show in channel type: boolean x-stream-docs-page-id: threads x-stream-index: "007" silent: description: Whether message is silent or not title: Silent type: boolean x-stream-index: "015" text: description: Text of the message title: Text type: string x-stream-index: "001" type: description: 'Contains type of the message. One of: regular, system' title: Message Type type: string x-stream-docs-page-id: message_format#message-types x-stream-index: "004" required: - text - custom title: Scheduled Message Content type: object ScheduledMessageFailedEvent: description: Emitted when a scheduled message fails to send. scheduled_message.failure_reason says why. nullable: true properties: cid: description: The CID of the channel the message is scheduled in title: Channel CID type: string x-stream-index: 001.001.002 created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: 001.001.001.003 custom: additionalProperties: {} type: object x-stream-index: 001.001.001.007 received_at: format: date-time type: number x-stream-index: 001.001.001.004 scheduled_message: $ref: '#/components/schemas/ScheduledMessageResponse' description: The scheduled message title: Scheduled message x-stream-index: "001.003" type: default: scheduled_message.failed description: 'The type of event: "scheduled_message.failed" in this case' title: Event Type type: string x-stream-index: 001.001.001.002 user: $ref: '#/components/schemas/UserResponseCommonFields' description: The user who scheduled the message title: User x-stream-index: 001.002.001 required: - type - created_at - custom - user title: ScheduledMessageFailedEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent ScheduledMessageFailureReason: description: Why sending a scheduled message failed. enum: - banned - no_permission - channel_frozen - channel_deleted - user_deleted - moderation_blocked - hook_rejected - expired - internal_error - invalid_message - pending_not_supported title: ScheduledMessageFailureReason type: string ScheduledMessageLocation: description: The location a scheduled message will share properties: created_by_device_id: description: The ID of the device that created the location. title: Created by device ID type: string x-stream-index: "003" end_at: description: |- The date when the location sharing ends. If it's empty, it means the location sharing is static instead of live. format: date-time title: End at type: number x-stream-index: "004" latitude: description: The latitude of the location. format: double title: Latitude type: number x-stream-index: "001" longitude: description: The longitude of the location. format: double title: Longitude type: number x-stream-index: "002" required: - created_by_device_id title: Scheduled Message Location type: object ScheduledMessageQueryStatus: description: Status filter for querying scheduled messages. enum: - scheduled - sending - failed title: ScheduledMessageQueryStatus type: string ScheduledMessageResponse: description: A message scheduled to be sent later properties: channel: $ref: '#/components/schemas/ScheduledMessageChannelResponse' description: The channel of the scheduled message. Only set in query results title: Channel x-stream-index: "010" cid: description: The CID of the channel the message will be sent to title: Channel CID type: string x-stream-index: "002" created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: "008" failure_reason: $ref: '#/components/schemas/ScheduledMessageFailureReason' description: 'Why sending the message failed. Only set when status is failed. One of: banned, no_permission, channel_frozen, channel_deleted, user_deleted, moderation_blocked, hook_rejected, expired, internal_error, invalid_message, pending_not_supported' title: Failure reason x-stream-description: 'Why sending the message failed. Only set when status is failed. One of: banned, no_permission, channel_frozen, channel_deleted, user_deleted, moderation_blocked, hook_rejected, expired, internal_error, invalid_message, pending_not_supported' x-stream-index: "007" id: description: Unique identifier of the scheduled message title: ID type: string x-stream-index: "001" message: $ref: '#/components/schemas/ScheduledMessageContentResponse' description: The message that will be sent title: Message x-stream-index: "004" scheduled_at: description: Date/time the message is scheduled to be sent format: date-time title: Scheduled at type: number x-stream-index: "005" status: $ref: '#/components/schemas/ScheduledMessageStatus' description: 'Status of the scheduled message. One of: scheduled, sending, failed, canceled, sent. A message is sending from its first send attempt until it is sent or fails, including while it waits to retry a failed attempt; it cannot be edited, canceled or sent now while sending' title: Status x-stream-description: 'Status of the scheduled message. One of: scheduled, sending, failed, canceled, sent. A message is sending from its first send attempt until it is sent or fails, including while it waits to retry a failed attempt; it cannot be edited, canceled or sent now while sending' x-stream-index: "006" updated_at: description: Date/time of the last update format: date-time title: Updated at type: number x-stream-index: "009" user: $ref: '#/components/schemas/UserResponse' description: The user who scheduled the message title: User x-stream-index: "003" required: - id - cid - user - message - scheduled_at - status - created_at - updated_at title: Scheduled Message type: object ScheduledMessageSentEvent: description: Emitted when a scheduled message is sent. nullable: true properties: cid: description: The CID of the channel the message was sent to title: Channel CID type: string x-stream-index: 001.001.002 created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: 001.001.001.003 custom: additionalProperties: {} type: object x-stream-index: 001.001.001.007 message_id: description: The ID of the message that was sent title: Message ID type: string x-stream-index: "002" received_at: format: date-time type: number x-stream-index: 001.001.001.004 scheduled_message: $ref: '#/components/schemas/ScheduledMessageResponse' description: The scheduled message that was sent title: Scheduled message x-stream-index: "001.003" type: default: scheduled_message.sent description: 'The type of event: "scheduled_message.sent" in this case' title: Event Type type: string x-stream-index: 001.001.001.002 user: $ref: '#/components/schemas/UserResponseCommonFields' description: The user who scheduled the message title: User x-stream-index: 001.002.001 required: - type - created_at - custom - user - message_id title: ScheduledMessageSentEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent ScheduledMessageStatus: description: Status of a scheduled message. enum: - scheduled - sending - failed - canceled - sent title: ScheduledMessageStatus type: string ScheduledMessagesFilter: description: Filter for querying scheduled messages properties: cid: description: Only scheduled messages of this channel maxLength: 255 title: Channel CID type: string x-stream-index: "001" status: description: 'Only these statuses, as reported in each scheduled message''s status. One or more of: scheduled, sending, failed' items: $ref: '#/components/schemas/ScheduledMessageQueryStatus' maxItems: 3 title: Status type: array x-stream-index: "002" title: Scheduled Messages Filter type: object ScreensharingSettings: 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 SearchAllChannelsSection: properties: channels: description: Channels the caller is a member of whose name starts with the query, in the same shape as the query channels endpoint's results but without messages or members items: $ref: '#/components/schemas/ChannelStateResponseFields' title: Channels type: array x-stream-index: "001" error: $ref: '#/components/schemas/SearchAllSectionError' description: Present instead of channels when the channels search failed; the other sections are unaffected title: Error x-stream-index: "004" next: description: Opaque cursor for the next page of this section, present only when more results exist. Pass it back under next.channels with the same query title: Next type: string x-stream-index: "002" warning: $ref: '#/components/schemas/SearchAllWarning' description: Present when the section recovered from a problem, such as a rejected cursor title: Warning x-stream-index: "003" title: Search All Channels Section type: object SearchAllMessagesSection: properties: error: $ref: '#/components/schemas/SearchAllSectionError' description: Present instead of results when the messages search failed; the other sections are unaffected title: Error x-stream-index: "005" next: description: Opaque cursor for the next page of this section, present only when more results exist. Pass it back under next.messages with the same query title: Next type: string x-stream-index: "003" results: description: Matching messages, newest first, in the same shape as the search endpoint's results items: $ref: '#/components/schemas/SearchResult' title: Results type: array x-stream-index: "001" results_warning: $ref: '#/components/schemas/SearchWarning' description: Present when the search covered only part of the caller's channels, exactly as on the search endpoint title: Results Warning x-stream-index: "002" warning: $ref: '#/components/schemas/SearchAllWarning' description: Present when the section recovered from a problem, such as a rejected cursor title: Warning x-stream-index: "004" title: Search All Messages Section type: object SearchAllRequest: nullable: true properties: entities: description: 'Which sections to search: any subset of messages, users and channels. Defaults to all three when omitted; must not be empty when provided. Response sections always appear in the order messages, users, channels' items: type: string title: Entities type: array x-stream-index: "002" limit: description: Number of results per section, 1-30. Defaults to 10. Applies to every requested section; there is no per-section limit format: int32 title: Limit type: integer x-stream-index: "003" next: additionalProperties: type: string description: Opaque pagination cursors from a previous response, keyed by entity. A cursor that fails to decode restarts that section from page 1 with a cursor_rejected warning; the request fails with 400 only when every cursor supplied for a requested entity is invalid. Cursors for entities not in entities are ignored title: Next type: object x-stream-index: "004" x-stream-map: description: The opaque next cursor returned by that entity's section key: entity title: Cursor query: description: Free-text search phrase, 1-80 characters after trimming whitespace. Required. Matched as a prefix of a user's name or username and of a channel's name, and as full-text against message text title: Query type: string x-stream-index: "001" title: Search All Request type: object SearchAllResponse: nullable: true properties: channels: $ref: '#/components/schemas/SearchAllChannelsSection' description: Channels section, present only when channels was requested title: Channels x-stream-index: "003" duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "004.001" messages: $ref: '#/components/schemas/SearchAllMessagesSection' description: Messages section, present only when messages was requested title: Messages x-stream-index: "001" users: $ref: '#/components/schemas/SearchAllUsersSection' description: Users section, present only when users was requested title: Users x-stream-index: "002" required: - duration title: Search All Response type: object SearchAllSectionError: properties: code: description: Error code. backend_timeout and backend_unavailable are retryable; unsupported (the app's configuration cannot serve this section) and internal_error are not enum: - backend_unavailable - backend_timeout - unsupported - internal_error title: Code type: string x-stream-index: "001" message: description: Human-readable description of the failure title: Message type: string x-stream-index: "002" required: - code - message title: Search All Section Error type: object SearchAllUsersSection: properties: error: $ref: '#/components/schemas/SearchAllSectionError' description: Present instead of users when the users search failed; the other sections are unaffected title: Error x-stream-index: "004" next: description: Opaque cursor for the next page of this section, present only when more results exist. Pass it back under next.users with the same query title: Next type: string x-stream-index: "002" users: description: Users whose name or username starts with the query, in the same shape as the query users endpoint's results items: $ref: '#/components/schemas/FullUserResponse' title: Users type: array x-stream-index: "001" warning: $ref: '#/components/schemas/SearchAllWarning' description: Present when the section recovered from a problem, such as a rejected cursor title: Warning x-stream-index: "003" title: Search All Users Section type: object SearchAllWarning: properties: code: description: 'Warning code. cursor_rejected: the cursor supplied for this section failed to decode, so the section restarted from page 1' enum: - cursor_rejected title: Code type: string x-stream-index: "001" required: - code title: Search All Warning type: object SearchPayload: properties: filter_conditions: additionalProperties: {} description: Channel filter conditions maximum: 100 minimum: 1 title: Channel filter type: object x-stream-docs-page-id: query_channels x-stream-filter-fields: app_banned: operators: - $eq type: string archived: operators: - $eq type: boolean blocked: operators: - $eq type: boolean channel_role: operators: - $eq - $in type: string cid: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string created_at: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: date created_by_id: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string custom: operators: - $autocomplete - $contains - $eq - $exists - $gt - $gte - $in - $lt - $lte - $q type: object disabled: operators: - $eq type: boolean distinct: operators: - $eq type: boolean filter_tags: operators: - $eq - $in type: string value_types: $eq: array frozen: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: boolean has_unread: accepted_values: - true operators: - $eq type: boolean hidden: operators: - $eq type: boolean id: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string invite: operators: - $eq type: string joined: operators: - $eq type: boolean last_message_at: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: date last_updated: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: date member.user.name: operators: - $autocomplete - $eq type: string member_count: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: number members: operators: - $eq - $in type: string value_types: $eq: array message_count: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: number muted: operators: - $eq type: boolean name: operators: - $autocomplete - $eq - $exists - $gt - $gte - $in - $lt - $lte - $q type: string pinned: operators: - $eq type: boolean team: allow_empty: true operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string type: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string updated_at: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: date x-stream-index: "002" force_default_search: type: boolean x-stream-index: "010" force_sql_v2_backend: type: boolean x-stream-index: "011" limit: description: Number of messages to return format: int32 title: Limit type: integer x-stream-index: "005" message_filter_conditions: additionalProperties: {} description: Message filter conditions title: Message filter type: object x-stream-filter-fields: attachments: operators: - $exists type: boolean attachments.type: operators: - $eq - $in type: string cid: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string created_at: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: date custom: operators: - $eq - $gt - $gte - $in - $lt - $lte type: object id: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string mentioned_users.id: operators: - $contains type: string parent_id: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string pinned: operators: - $eq type: boolean reply_count: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: number text: operators: - $any - $autocomplete - $eq - $exists - $gt - $gte - $in - $lt - $lte - $q type: string type: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string updated_at: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: date user.id: operators: - $eq - $in type: string user_id: operators: - $eq - $in type: string x-stream-index: "003" message_options: $ref: '#/components/schemas/MessageOptions' x-stream-index: "004" next: description: Pagination parameter. Cannot be used with non-zero offset. title: Next type: string x-stream-index: "008" offset: description: Pagination offset. Cannot be used with sort or next. format: int32 title: Offset type: integer x-stream-index: "006" query: description: Search phrase title: Query type: string x-stream-index: "001" sort: description: Sort parameters. Cannot be used with non-zero offset items: $ref: '#/components/schemas/SortParamRequest' title: Sort type: array x-stream-index: "007" x-stream-sort-fields: - created_at - custom - id - relevance - updated_at required: - filter_conditions type: object SearchResponse: nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "005.001" next: description: Value to pass to the next search query in order to paginate title: Next type: string x-stream-index: "003" previous: description: Value that points to the previous page. Pass as the next value in a search query to paginate backwards title: Previous type: string x-stream-index: "004" results: description: Search results items: $ref: '#/components/schemas/SearchResult' title: Results type: array x-stream-index: "001" results_warning: $ref: '#/components/schemas/SearchWarning' description: Warning about the search results title: Results Warning x-stream-index: "002" required: - results - duration type: object SearchResult: properties: message: $ref: '#/components/schemas/SearchResultMessage' description: Found message title: Message x-stream-index: "001" type: object SearchResultMessage: properties: attachments: items: $ref: '#/components/schemas/Attachment' type: array x-stream-index: "001.009" channel: $ref: '#/components/schemas/ChannelResponse' description: Channel object title: Channel x-stream-index: "002" cid: type: string x-stream-index: "001.024" command: type: string x-stream-index: "001.004" created_at: format: date-time type: number x-stream-index: "001.025" custom: additionalProperties: {} type: object x-stream-index: "001.028" deleted_at: format: date-time type: number x-stream-index: "001.027" deleted_for_me: type: boolean x-stream-index: "001.051" deleted_reply_count: format: int32 type: integer x-stream-index: "001.020" draft: $ref: '#/components/schemas/DraftResponse' x-stream-index: "001.048" html: type: string x-stream-index: "001.005" i18n: additionalProperties: type: string type: object x-stream-index: "001.037" id: type: string x-stream-index: "001.001" image_labels: additionalProperties: items: type: string type: array type: object x-stream-index: "001.030" latest_reactions: items: $ref: '#/components/schemas/ReactionResponse' type: array x-stream-index: "001.010" member: $ref: '#/components/schemas/ChannelMemberPartialResponse' x-stream-index: "001.008" mentioned_channel: type: boolean x-stream-index: "001.035" mentioned_channel_members: additionalProperties: $ref: '#/components/schemas/ChannelMemberPartialResponse' type: object x-stream-index: "001.052" mentioned_group_ids: items: type: string type: array x-stream-index: "001.033" mentioned_groups: items: $ref: '#/components/schemas/UserGroupResponse' type: array x-stream-index: "001.034" mentioned_here: type: boolean x-stream-index: "001.036" mentioned_roles: items: type: string type: array x-stream-index: "001.032" mentioned_users: items: $ref: '#/components/schemas/UserResponse' type: array x-stream-index: "001.031" message_text_updated_at: format: date-time type: number x-stream-index: "001.043" mml: type: string x-stream-index: "001.003" moderation: $ref: '#/components/schemas/ModerationV2Response' x-stream-index: "001.046" own_reactions: items: $ref: '#/components/schemas/ReactionResponse' type: array x-stream-index: "001.011" parent_id: type: string x-stream-index: "001.017" pin_expires: format: date-time type: number x-stream-index: "001.042" pinned: type: boolean x-stream-index: "001.039" pinned_at: format: date-time type: number x-stream-index: "001.040" pinned_by: $ref: '#/components/schemas/UserResponse' x-stream-index: "001.041" poll: $ref: '#/components/schemas/PollResponseData' x-stream-index: "001.045" poll_id: type: string x-stream-index: "001.044" quoted_message: $ref: '#/components/schemas/MessageResponse' x-stream-index: "001.022" quoted_message_id: type: string x-stream-index: "001.021" reaction_counts: additionalProperties: format: int32 type: integer type: object x-stream-index: "001.012" reaction_groups: additionalProperties: $ref: '#/components/schemas/ReactionGroupResponse' type: object x-stream-index: "001.016" reaction_scores: additionalProperties: format: int32 type: integer type: object x-stream-index: "001.013" reminder: $ref: '#/components/schemas/ReminderResponseData' x-stream-index: "001.049" reply_count: format: int32 type: integer x-stream-index: "001.019" restricted_visibility: items: type: string type: array x-stream-index: "001.047" shadowed: type: boolean x-stream-index: "001.029" shared_location: $ref: '#/components/schemas/SharedLocationResponseData' x-stream-index: "001.050" show_in_channel: type: boolean x-stream-index: "001.018" silent: type: boolean x-stream-index: "001.038" text: type: string x-stream-index: "001.002" thread_participants: items: $ref: '#/components/schemas/UserResponse' type: array x-stream-index: "001.023" type: type: string x-stream-index: "001.006" updated_at: format: date-time type: number x-stream-index: "001.026" user: $ref: '#/components/schemas/UserResponse' x-stream-index: "001.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 SearchRolesResponse: nullable: true properties: duration: type: string x-stream-index: "001.001" roles: description: Matching roles, sorted ascending by name items: $ref: '#/components/schemas/Role' title: Roles type: array x-stream-index: "002" required: - duration - roles type: object SearchUserGroupsResponse: description: Response for searching user groups nullable: true properties: duration: type: string x-stream-index: "002.001" user_groups: description: List of matching user groups items: $ref: '#/components/schemas/UserGroupResponse' title: UserGroups type: array x-stream-index: "001" required: - user_groups - duration title: SearchUserGroupsResponse type: object SearchWarning: properties: channel_search_cids: description: Channel CIDs for the searched channels items: type: string title: Channel Search CIDs type: array x-stream-index: "004" channel_search_count: description: Number of channels searched format: int32 title: Channel Search Count type: integer x-stream-index: "003" warning_code: description: Code corresponding to the warning format: int32 title: Warning Code type: integer x-stream-index: "002" warning_description: description: Description of the warning title: Warning Description type: string x-stream-index: "001" required: - warning_description - warning_code type: object Segment: nullable: true properties: all_sender_channels: type: boolean x-stream-index: "007" all_users: type: boolean x-stream-index: "006" created_at: format: date-time type: number x-stream-index: "010" deleted_at: format: date-time type: number x-stream-index: "012" description: type: string x-stream-index: "004" filter: additionalProperties: {} type: object x-stream-index: "005" id: type: string x-stream-index: "001" name: type: string x-stream-index: "003" size: format: int32 type: integer x-stream-index: "009" task_id: type: string x-stream-index: "008" type: type: string x-stream-index: "002" updated_at: format: date-time type: number x-stream-index: "011" required: - id - type - name - all_users - all_sender_channels - size - created_at - updated_at type: object SegmentResponse: properties: all_sender_channels: type: boolean x-stream-index: "007" all_users: type: boolean x-stream-index: "006" created_at: format: date-time type: number x-stream-index: "009" deleted_at: format: date-time type: number x-stream-index: "011" description: type: string x-stream-index: "004" filter: additionalProperties: {} type: object x-stream-index: "005" id: type: string x-stream-index: "001" name: type: string x-stream-index: "003" size: format: int32 type: integer x-stream-index: "008" type: type: string x-stream-index: "002" updated_at: format: date-time type: number x-stream-index: "010" required: - id - type - name - description - filter - all_users - all_sender_channels - size - created_at - updated_at - deleted_at type: object SegmentTargetResponse: nullable: true properties: app_pk: format: int32 type: integer x-stream-index: "001" created_at: format: date-time type: number x-stream-index: "004" segment_id: type: string x-stream-index: "002" target_id: type: string x-stream-index: "003" required: - app_pk - segment_id - target_id - created_at type: object SendEventRequest: nullable: true properties: event: $ref: '#/components/schemas/EventRequest' x-stream-index: "001" required: - event type: object SendMessageRequest: nullable: true properties: force_moderation: type: boolean x-stream-index: "007" include_channel_context: description: 'When true, the response includes channel_context: a slim channel object with cid, type, id and created_by' title: Include channel context type: boolean x-stream-index: "010" include_mentioned_members: description: 'When true, the response includes mentioned_members: for each mentioned user, whether that user is currently a channel member. Requires the ReadChannelMembers permission' title: Include mentioned members type: boolean x-stream-index: "009" keep_channel_hidden: type: boolean x-stream-index: "008" message: $ref: '#/components/schemas/MessageRequest' x-stream-index: "001" pending: type: boolean x-stream-index: "006" pending_message_metadata: additionalProperties: type: string type: object x-stream-index: "005" scheduled_at: description: 'When set to a future time, the message is not sent now: it is stored and sent at that time (UTC), rounded up to the first whole minute that is at least 1 minute from now, never earlier than requested. The response then carries scheduled_message with the rounded time. Must be at most the app''s maximum lead time (120 days by default) from now. A time that is now or in the past sends the message now as if scheduled_at was not set, unless the request''s message ID belongs to a scheduled message that was canceled or already sent. Slash commands cannot be scheduled' format: date-time title: Scheduled at type: string x-stream-index: "011" skip_enrich_url: type: boolean x-stream-index: "003" skip_push: type: boolean x-stream-index: "002" required: - message type: object SendMessageResponse: nullable: true properties: channel_context: $ref: '#/components/schemas/ChannelContextResponse' description: Slim channel object (cid, type, id, created_by). Only set when include_channel_context was requested title: Channel context x-stream-index: "005" duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "003.001" mentioned_members: additionalProperties: type: boolean description: Map of mentioned user ID to whether that user is currently an active channel member. Only set when include_mentioned_members was requested; omitted when the message has no mentions or the membership lookup failed title: Mentioned members type: object x-stream-index: "004" x-stream-map: description: Whether the mentioned user is currently an active channel member key: user_id title: Is active member message: $ref: '#/components/schemas/MessageResponse' description: Message response title: Message x-stream-index: "001" pending_message_metadata: additionalProperties: type: string description: Pending message metadata title: Pending message metadata type: object x-stream-index: "002" scheduled_message: $ref: '#/components/schemas/ScheduledMessageResponse' description: The scheduled message. Only set when the request scheduled the message; message then holds the content as it will be sent and is not in the channel. Not set when scheduled_at was now or in the past and the message was sent now title: Scheduled message x-stream-index: "006" required: - message - duration type: object SendReactionRequest: nullable: true properties: enforce_unique: description: Whether to replace all existing user reactions title: Enforce unique type: boolean x-stream-index: "003" reaction: $ref: '#/components/schemas/ReactionRequest' x-stream-index: "002" skip_push: description: Skips any mobile push notifications title: Skip push type: boolean x-stream-index: "004" required: - reaction type: object SendReactionResponse: description: Basic response information nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "003.001" message: $ref: '#/components/schemas/MessageResponse' x-stream-index: "001" reaction: $ref: '#/components/schemas/ReactionResponse' x-stream-index: "002" required: - message - reaction - duration title: Response type: object SendScheduledMessageNowResponse: nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "002.001" scheduled_message: $ref: '#/components/schemas/ScheduledMessageResponse' description: The scheduled message title: Scheduled message x-stream-index: "001" required: - scheduled_message - duration type: object SendUserCustomEventRequest: nullable: true properties: event: $ref: '#/components/schemas/UserCustomEventRequest' x-stream-index: "001" required: - event type: object SessionSettings: properties: inactivity_timeout_seconds: format: int32 maximum: 900 minimum: 5 type: integer x-stream-index: "001" required: - inactivity_timeout_seconds type: object SetHistoryWindowTeamsRequest: nullable: true properties: teams: description: Teams to give full history, 1 to 10, each listed once. Marking a team that already has full history keeps its created_at items: type: string maxItems: 10 minItems: 1 title: Teams type: array x-stream-index: "001" required: - teams type: object SetHistoryWindowTeamsResponse: nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "002.001" teams: description: The teams of the request, each with full history items: $ref: '#/components/schemas/HistoryWindowTeam' title: Teams type: array x-stream-index: "001" required: - teams - duration type: object SetRetentionPolicyRequest: nullable: true properties: channel_type: type: string x-stream-index: "003" max_age_hours: format: int32 minimum: 24 type: integer x-stream-index: "002" policy: $ref: '#/components/schemas/RetentionPolicyType' x-stream-index: "001" required: - policy - max_age_hours type: object SetRetentionPolicyResponse: description: Basic response information nullable: true properties: channel_type_rule: $ref: '#/components/schemas/ChannelTypeRuleResponse' x-stream-index: "002" duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "003.001" policy: $ref: '#/components/schemas/RetentionPolicy' x-stream-index: "001" required: - policy - duration title: Response type: object SetupSession: properties: completed_at: format: date-time type: number x-stream-index: "008" created_at: format: date-time type: number x-stream-index: "006" current_step: $ref: '#/components/schemas/SetupStep' x-stream-index: "003" setup_data: additionalProperties: {} type: object x-stream-index: "005" status: $ref: '#/components/schemas/SetupStatus' x-stream-index: "004" updated_at: format: date-time type: number x-stream-index: "007" required: - current_step - status - setup_data - created_at - updated_at type: object SetupStatus: description: Whether a moderation setup session is still in progress. enum: - in_progress - completed title: SetupStatus type: string SetupStep: description: A step in the moderation setup wizard. enum: - welcome - input - configure - live title: SetupStep type: string 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 SharedLocation: properties: created_by_device_id: type: string x-stream-index: "003" end_at: format: date-time type: string x-stream-index: "004" latitude: format: double maximum: 90 minimum: 1.8446744073709552e+19 type: number x-stream-index: "001" longitude: format: double maximum: 180 minimum: 1.8446744073709552e+19 type: number x-stream-index: "002" required: - latitude - longitude type: object SharedLocationResponse: nullable: true properties: channel: $ref: '#/components/schemas/ChannelResponse' x-stream-index: "001.011" channel_cid: description: Channel CID title: string type: string x-stream-index: "001.001" created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: "001.008" created_by_device_id: description: Device ID that created the live location title: string type: string x-stream-index: "001.006" duration: type: string x-stream-index: "002.001" end_at: description: Time when the live location expires format: date-time title: string type: number x-stream-index: "001.007" latitude: description: Latitude coordinate format: double title: number type: number x-stream-index: "001.004" longitude: description: Longitude coordinate format: double title: number type: number x-stream-index: "001.005" message: $ref: '#/components/schemas/MessageResponse' x-stream-index: "001.010" message_id: description: Message ID title: string type: string x-stream-index: "001.002" updated_at: description: Date/time of the last update format: date-time title: Updated at type: number x-stream-index: "001.009" user_id: description: User ID title: string type: string x-stream-index: "001.003" required: - channel_cid - message_id - user_id - latitude - longitude - created_by_device_id - created_at - updated_at - duration type: object SharedLocationResponseData: properties: channel: $ref: '#/components/schemas/ChannelResponse' x-stream-index: "011" channel_cid: description: The CID (type:id) of the channel that the location is attached to. title: Channel CID type: string x-stream-index: "001" created_at: description: The date when the location was created. format: date-time title: Created at type: number x-stream-index: "008" created_by_device_id: description: The ID of the device that created the location. title: Created by device ID type: string x-stream-index: "006" end_at: description: |- The date when the location sharing ends. If it's empty, it means the location sharing is static instead of live. format: date-time title: End at type: number x-stream-index: "007" latitude: description: The latitude of the location. format: double title: Latitude type: number x-stream-index: "004" longitude: description: The longitude of the location. format: double title: Longitude type: number x-stream-index: "005" message: $ref: '#/components/schemas/MessageResponse' x-stream-index: "010" message_id: description: The ID of the message that the location is attached to. title: Message ID type: string x-stream-index: "002" updated_at: description: The date when the location was updated. format: date-time title: Updated at type: number x-stream-index: "009" user_id: description: The ID of the user that created the location. title: 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 SharedLocationsResponse: nullable: true properties: active_live_locations: items: $ref: '#/components/schemas/SharedLocationResponseData' type: array x-stream-index: "001" duration: type: string x-stream-index: "002.001" required: - active_live_locations - duration type: object ShowChannelRequest: nullable: true properties: user: $ref: '#/components/schemas/UserRequest' x-stream-index: "002.002" user_id: type: string x-stream-index: "002.001" type: object ShowChannelResponse: 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 SortParam: nullable: true properties: direction: format: int32 type: integer x-stream-index: "003" field: type: string x-stream-index: "001" type: type: string x-stream-index: "002" required: - field - type - direction 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: $ref: '#/components/schemas/SortParamType' description: 'Type of field to sort by. Empty string or omitted means string type (default). One of: number, boolean' title: Type x-stream-description: 'Type of field to sort by. Empty string or omitted means string type (default). One of: number, boolean' x-stream-index: "002" type: object SortParamType: description: Type of a sort field. The empty value means string. enum: - "" - number - boolean title: SortParamType type: string 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 StartCampaignRequest: nullable: true properties: scheduled_for: format: date-time type: string x-stream-index: "002" stop_at: format: date-time type: string x-stream-index: "003" type: object StartCampaignResponse: description: Basic response information nullable: true properties: campaign: $ref: '#/components/schemas/CampaignResponse' x-stream-index: "001" duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "003.001" users: $ref: '#/components/schemas/PagerResponse' x-stream-index: "002" required: - duration title: Response type: object StopCampaignResponse: description: Basic response information nullable: true properties: campaign: $ref: '#/components/schemas/CampaignResponse' x-stream-index: "001" duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "002.001" required: - duration title: Response 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, delete_poll, delete_poll_option, delete_poll_answer, ban, custom, unban, restore, delete_user, delete_user_messages, unblock, block, shadow_block, unmask, kick_user, end_call, escalate, de_escalate' enum: - flag - mark_reviewed - delete_message - delete_activity - delete_comment - delete_reaction - delete_poll - delete_poll_option - delete_poll_answer - ban - custom - unban - restore - delete_user - delete_user_messages - 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: "014" block: $ref: '#/components/schemas/BlockActionRequestPayload' description: Configuration for block action title: Block x-stream-index: "019" bypass: $ref: '#/components/schemas/BypassActionRequest' description: Configuration for bypass moderation action title: Bypass x-stream-index: "023" custom: $ref: '#/components/schemas/CustomActionRequestPayload' description: Configuration for custom action title: Custom x-stream-index: "015" 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_poll: $ref: '#/components/schemas/DeletePollRequestPayload' description: Configuration for poll deletion action title: Delete Poll x-stream-index: "007" delete_poll_answer: $ref: '#/components/schemas/DeletePollAnswerRequestPayload' description: Configuration for deleting the poll answer a review item was raised for title: Delete Poll Answer x-stream-index: "009" delete_poll_option: $ref: '#/components/schemas/DeletePollOptionRequestPayload' description: Configuration for deleting the poll option a review item was raised for title: Delete Poll Option x-stream-index: "008" delete_reaction: $ref: '#/components/schemas/DeleteReactionRequestPayload' description: Configuration for reaction deletion action title: Delete Reaction x-stream-index: "010" delete_user: $ref: '#/components/schemas/DeleteUserRequestPayload' description: Configuration for user deletion action title: Delete User x-stream-index: "011" delete_user_messages: $ref: '#/components/schemas/DeleteUserMessagesRequestPayload' description: Configuration for deleting all of a user's chat messages without banning them or deleting their account title: Delete User Messages x-stream-index: "012" escalate: $ref: '#/components/schemas/EscalatePayload' description: Configuration for escalation action title: Escalate x-stream-index: "026" flag: $ref: '#/components/schemas/FlagRequest' description: Configuration for flag action title: Flag x-stream-index: "025" 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: "013" reject_appeal: $ref: '#/components/schemas/RejectAppealRequestPayload' description: Configuration for rejecting an appeal title: Reject Appeal x-stream-index: "024" restore: $ref: '#/components/schemas/RestoreActionRequestPayload' description: Configuration for restore action title: Restore x-stream-index: "017" shadow_block: $ref: '#/components/schemas/ShadowBlockActionRequestPayload' description: Configuration for shadow block action title: Shadow Block x-stream-index: "020" unban: $ref: '#/components/schemas/UnbanActionRequestPayload' description: Configuration for unban action title: Unban x-stream-index: "016" unblock: $ref: '#/components/schemas/UnblockActionRequestPayload' deprecated: true description: 'Configuration for unblock action Deprecated: Use restore instead, which now also reverses a block or shadow block.' title: Unblock x-stream-deprecated: true x-stream-deprecated-message: Use restore instead, which now also reverses a block or shadow block. x-stream-index: "018" user: $ref: '#/components/schemas/UserRequest' x-stream-index: "027.002" user_id: type: string x-stream-index: "027.001" required: - action_type 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" auto_restore_warning: description: Present when the appeal was accepted but the entity could not be restored automatically. The moderator should restore it manually. title: Auto Restore Warning type: string x-stream-index: "003" duration: type: string x-stream-index: "004.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 SubmitModerationFeedbackItem: nullable: true properties: current_labels: description: Classifications originally produced for this item items: type: string maxItems: 16 title: Current Classifications type: array x-stream-index: "006" current_recommended_action: description: Action originally produced for this item maxLength: 64 title: Current Action type: string x-stream-index: "007" flag_id: description: ID of the moderation flag the feedback is about title: Flag ID type: string x-stream-index: "001" image_url: description: Image URL, required for kind=image maxLength: 2048 title: Image URL type: string x-stream-index: "005" kind: description: 'Content kind: text or image' enum: - text - image title: Kind type: string x-stream-index: "003" reference: description: Identifies this piece of content within the entity (keyframe ID, caption ID, message ID, title, description, thumbnail, ...) maxLength: 512 title: Reference type: string x-stream-index: "002" text: description: Text content, for kind=text maxLength: 10000 title: Text type: string x-stream-index: "004" 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" confidence: description: Moderator's confidence in this feedback (LOW, MEDIUM, HIGH, VERY_HIGH); forwarded to the moderation provider. Optional enum: - LOW - MEDIUM - HIGH - VERY_HIGH title: Confidence type: string x-stream-index: "010" 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" entity_creator_id: description: ID of the user who created the entity maxLength: 255 title: Entity Creator ID type: string x-stream-index: "013" entity_id: description: ID of the entity the items belong to maxLength: 255 title: Entity ID type: string x-stream-index: "012" entity_type: description: Type of the entity the items belong to maxLength: 255 title: Entity Type type: string x-stream-index: "011" 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" false_positive: description: Whether the referenced flags are marked (true, default) or unmarked (false) as false positives title: False Positive type: boolean x-stream-index: "016" feedback_type: description: 'false_positive (default) disputes existing detections; false_negative reports missed content: items carry the content, expected_labels is required and flag_id is not allowed' enum: - false_positive - false_negative title: Feedback Type type: string x-stream-index: "017" items: description: Pieces of content of one entity the feedback is about (1 to 50) items: $ref: '#/components/schemas/SubmitModerationFeedbackItem' maxItems: 50 title: Items type: array x-stream-index: "015" message: description: The moderated content the moderator is providing feedback on. Required unless items is provided maxLength: 10000 title: Message type: string x-stream-index: "004" published_at: description: Original publication time of the moderated content (RFC3339). Required unless items is provided title: Published At type: string x-stream-index: "002" reference: description: Provider-side reference identifying the moderated content. Required unless items is provided maxLength: 512 title: Reference type: string x-stream-index: "003" review_queue_item_id: description: Review queue item the feedback targets, as an alternative to entity_type and entity_id title: Review Queue Item ID type: string x-stream-index: "014" user: $ref: '#/components/schemas/UserRequest' x-stream-index: "018.002" user_id: type: string x-stream-index: "018.001" type: object SubmitModerationFeedbackResponse: nullable: true properties: duration: type: string x-stream-index: "005.001" false_positive_flags: description: IDs of the item's flags marked as false positives after this request items: type: string title: False Positive Flags type: array x-stream-index: "002" feedback_id: description: ID of the first stored feedback item, when any was stored title: Feedback ID type: string x-stream-index: "003" feedback_item_ids: description: IDs of the stored feedback items, one per submitted item items: type: string title: Feedback Item IDs type: array x-stream-index: "004" review_queue_item_id: description: Review queue item the feedback was applied to title: Review Queue Item ID type: string x-stream-index: "001" required: - duration 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 TeamUsageStats: description: Usage statistics for a single team containing all 16 metrics properties: concurrent_connections: $ref: '#/components/schemas/MetricStats' description: Peak concurrent connections (total = MAX) title: MetricStats x-stream-index: "007" concurrent_users: $ref: '#/components/schemas/MetricStats' description: Peak concurrent users (total = MAX) title: MetricStats x-stream-index: "006" image_moderations_daily: $ref: '#/components/schemas/MetricStats' description: Daily image moderations (total = SUM) title: MetricStats x-stream-index: "005" messages_daily: $ref: '#/components/schemas/MetricStats' description: Daily messages sent (total = SUM) title: MetricStats x-stream-index: "003" messages_last_24_hours: $ref: '#/components/schemas/MetricStats' description: Messages in last 24 hours (total = LATEST) title: MetricStats x-stream-index: "015" messages_last_30_days: $ref: '#/components/schemas/MetricStats' description: Messages in last 30 days (total = LATEST) title: MetricStats x-stream-index: "016" messages_month_to_date: $ref: '#/components/schemas/MetricStats' description: Messages this month (total = LATEST) title: MetricStats x-stream-index: "017" messages_total: $ref: '#/components/schemas/MetricStats' description: Total messages (total = LATEST) title: MetricStats x-stream-index: "014" team: description: Team identifier (empty string for users not assigned to any team) title: string type: string x-stream-index: "001" translations_daily: $ref: '#/components/schemas/MetricStats' description: Daily translations (total = SUM) title: MetricStats x-stream-index: "004" users_daily: $ref: '#/components/schemas/MetricStats' description: Daily active users (total = SUM) title: MetricStats x-stream-index: "002" users_engaged_last_30_days: $ref: '#/components/schemas/MetricStats' description: Engaged MAU (total = LATEST) title: MetricStats x-stream-index: "012" users_engaged_month_to_date: $ref: '#/components/schemas/MetricStats' description: Engaged users this month (total = LATEST) title: MetricStats x-stream-index: "013" users_last_24_hours: $ref: '#/components/schemas/MetricStats' description: Users active in last 24 hours (total = LATEST) title: MetricStats x-stream-index: "009" users_last_30_days: $ref: '#/components/schemas/MetricStats' description: MAU - users active in last 30 days (total = LATEST) title: MetricStats x-stream-index: "010" users_month_to_date: $ref: '#/components/schemas/MetricStats' description: Users active this month (total = LATEST) title: MetricStats x-stream-index: "011" users_total: $ref: '#/components/schemas/MetricStats' description: Total users (total = LATEST) title: MetricStats x-stream-index: "008" required: - team - users_daily - messages_daily - translations_daily - image_moderations_daily - concurrent_users - concurrent_connections - users_total - users_last_24_hours - users_last_30_days - users_month_to_date - users_engaged_last_30_days - users_engaged_month_to_date - messages_total - messages_last_24_hours - messages_last_30_days - messages_month_to_date title: Team Usage Stats 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" text_length: format: int32 type: integer x-stream-index: "007" text_length_operator: type: string x-stream-index: "008" 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 ThreadParticipant: description: Represents a user that is participating in a thread. nullable: true properties: channel_cid: type: string x-stream-index: "002" created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: "007" custom: additionalProperties: {} type: object x-stream-index: "010" last_read_at: format: date-time type: number x-stream-index: "009" last_thread_message_at: format: date-time type: number x-stream-index: "003" left_thread_at: description: Left Thread At is the time when the user left the thread format: date-time title: Left Thread At type: number x-stream-index: "008" thread_id: description: Thead ID is unique string identifier of the thread title: ID type: string x-stream-index: "004" user: $ref: '#/components/schemas/UserResponse' description: User is the user object title: User x-stream-index: "006" user_id: description: User ID is unique string identifier of the user title: User ID type: string x-stream-index: "005" required: - channel_cid - created_at - last_read_at - custom title: ThreadParticipant type: object ThreadResponse: properties: active_participant_count: description: Active Participant Count format: int32 title: Active Participant Count type: integer x-stream-index: "009" channel: $ref: '#/components/schemas/ChannelResponse' description: Channel title: ChannelResponse x-stream-index: "002" channel_cid: description: Channel CID title: Channel CID type: string x-stream-index: "001" created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: "012" created_by: $ref: '#/components/schemas/UserResponse' description: Created By User title: User x-stream-index: "006" created_by_user_id: description: Created By User ID title: Created By User ID type: string x-stream-index: "005" custom: additionalProperties: {} description: Custom data for this object title: Custom data type: object x-stream-index: "016" deleted_at: description: Deleted At format: date-time title: Deleted At type: number x-stream-index: "014" last_message_at: description: Last Message At format: date-time title: Last Message At type: number x-stream-index: "011" parent_message: $ref: '#/components/schemas/MessageResponse' description: Parent Message title: Message x-stream-index: "004" parent_message_id: description: Parent Message ID title: Parent Message ID type: string x-stream-index: "003" participant_count: description: Participant Count format: int32 title: Participant Count type: integer x-stream-index: "008" reply_count: description: Reply Count format: int32 title: Reply Count type: integer x-stream-index: "007" thread_participants: description: Thread Participants items: $ref: '#/components/schemas/ThreadParticipant' title: ThreadParticipants type: array x-stream-index: "010" title: description: Title title: Title type: string x-stream-index: "015" updated_at: description: Date/time of the last update format: date-time title: Updated at type: number x-stream-index: "013" required: - channel_cid - parent_message_id - created_by_user_id - reply_count - participant_count - active_participant_count - created_at - updated_at - title - custom type: object ThreadStateResponse: nullable: true properties: active_participant_count: description: Active Participant Count format: int32 title: Active Participant Count type: integer x-stream-index: "001.009" channel: $ref: '#/components/schemas/ChannelResponse' description: Channel title: ChannelResponse x-stream-index: "001.002" channel_cid: description: Channel CID title: Channel CID type: string x-stream-index: "001.001" created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: "001.012" created_by: $ref: '#/components/schemas/UserResponse' description: Created By User title: User x-stream-index: "001.006" created_by_user_id: description: Created By User ID title: Created By User ID type: string x-stream-index: "001.005" custom: additionalProperties: {} description: Custom data for this object title: Custom data type: object x-stream-index: "001.016" deleted_at: description: Deleted At format: date-time title: Deleted At type: number x-stream-index: "001.014" draft: $ref: '#/components/schemas/DraftResponse' x-stream-index: "004" last_message_at: description: Last Message At format: date-time title: Last Message At type: number x-stream-index: "001.011" latest_replies: items: $ref: '#/components/schemas/MessageResponse' type: array x-stream-index: "002" parent_message: $ref: '#/components/schemas/MessageResponse' description: Parent Message title: Message x-stream-index: "001.004" parent_message_id: description: Parent Message ID title: Parent Message ID type: string x-stream-index: "001.003" participant_count: description: Participant Count format: int32 title: Participant Count type: integer x-stream-index: "001.008" read: items: $ref: '#/components/schemas/ReadStateResponse' type: array x-stream-index: "003" reply_count: description: Reply Count format: int32 title: Reply Count type: integer x-stream-index: "001.007" thread_participants: description: Thread Participants items: $ref: '#/components/schemas/ThreadParticipant' title: ThreadParticipants type: array x-stream-index: "001.010" title: description: Title title: Title type: string x-stream-index: "001.015" updated_at: description: Date/time of the last update format: date-time title: Updated at type: number x-stream-index: "001.013" required: - channel_cid - parent_message_id - created_by_user_id - reply_count - participant_count - active_participant_count - created_at - updated_at - title - custom - latest_replies type: object ThreadUpdatedEvent: nullable: true properties: channel_id: type: string x-stream-index: 001.001.002.002 channel_type: type: string x-stream-index: 001.001.002.001 cid: type: string x-stream-index: 001.001.001.002 created_at: format: date-time type: number x-stream-index: 001.001.001.001.003 custom: additionalProperties: {} type: object x-stream-index: 001.001.001.001.007 received_at: format: date-time type: number x-stream-index: 001.001.001.001.004 thread: $ref: '#/components/schemas/ThreadResponse' x-stream-index: "001.002" type: default: thread.updated type: string x-stream-index: 001.001.001.001.002 required: - type - created_at - custom title: ThreadUpdatedEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent 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 ThumbnailsSettings: properties: enabled: type: boolean x-stream-index: "001" required: - enabled type: object TranscriptionLanguage: description: Language a call is transcribed or captioned in. 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 title: TranscriptionLanguage type: string TranscriptionSettings: properties: closed_caption_mode: $ref: '#/components/schemas/FeatureActivationMode' description: 'One of: available, disabled, auto-on' title: Mode x-stream-description: 'One of: available, disabled, auto-on' x-stream-index: "002" language: $ref: '#/components/schemas/TranscriptionLanguage' description: The language used in this call as a two letter code title: Language x-stream-description: The language used in this call as a two letter code x-stream-index: "004" mode: $ref: '#/components/schemas/FeatureActivationMode' title: Mode 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 - language type: object TranslateMessageRequest: nullable: true properties: language: description: Language to translate message to enum: - af - sq - am - ar - az - bn - bs - bg - zh - zh-TW - hr - cs - da - fa-AF - nl - en - et - fi - fr - fr-CA - ka - de - el - ha - he - hi - hu - id - it - ja - ko - lv - ms - "no" - fa - ps - pl - pt - ro - ru - sr - sk - sl - so - es - es-MX - sw - sv - tl - ta - th - tr - uk - ur - vi - lt - ht title: Language type: string x-stream-index: "001" required: - language type: object TranslateMessageResponse: description: Basic response information nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "002.001" message: $ref: '#/components/schemas/MessageResponse' x-stream-index: "001" required: - message - duration title: Response 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 - af - sq - am - hy - az - bn - bs - bg - zh-TW - et - fa - fr-CA - ka - gu - ht - ha - is - ga - kn - kk - lv - lt - mk - ml - mt - mr - mn - ps - pt-PT - pa - sr - si - sk - sl - so - sw - te - ur - uz - vi - cy type: string type: array x-stream-index: "002" required: - enabled - languages 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" type: description: Type of the moderation rule that triggered (content, user, or call) title: Type type: string x-stream-index: "005" violation_number: description: Violation count for action sequence rules (1-based) format: int32 title: Violation Number type: integer x-stream-index: "006" required: - actions - rule_id type: object TruncateChannelRequest: nullable: true properties: hard_delete: description: Permanently delete channel data (messages, reactions, etc.) title: Hard delete type: boolean x-stream-index: "002" member_ids: description: List of member IDs to hide message history for. If empty, truncates the channel for all members items: type: string maxItems: 100 title: Member IDs type: array x-stream-index: "007" message: $ref: '#/components/schemas/MessageRequest' x-stream-index: "004" skip_push: description: When `message` is set disables all push notifications for it title: Skip push type: boolean x-stream-index: "005" truncated_at: description: Truncate channel data up to `truncated_at`. The system message (if provided) creation time is always greater than `truncated_at` format: date-time title: Truncated at type: string x-stream-index: "006" user: $ref: '#/components/schemas/UserRequest' x-stream-index: "008.002" user_id: type: string x-stream-index: "008.001" type: object TruncateChannelResponse: nullable: true properties: channel: $ref: '#/components/schemas/ChannelResponse' description: Truncated channel object title: Channel x-stream-index: "002" duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "001.001" message: $ref: '#/components/schemas/MessageResponse' description: Truncated message object title: Message x-stream-index: "003" required: - duration type: object TypingIndicatorsResponse: description: The settings for typing indicator events. properties: enabled: type: boolean x-stream-index: "001" required: - enabled 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: "002" decision_reason: description: Reason for the appeal decision title: Decision Reason type: string x-stream-index: "003" remove_future_channels_ban: description: Also remove the future channels ban for this user title: Remove Future Channels Ban type: boolean x-stream-index: "004" restore_shadowed_messages: description: When lifting a shadow ban, also restore the messages the user sent during it. Runs asynchronously; ignored for a regular ban title: Restore Shadowed Messages type: boolean x-stream-index: "005" target_user_id: description: 'Optional: unban user directly without review item' title: Target User ID type: string x-stream-index: "001" title: UnbanActionRequest type: object UnbanRequest: nullable: true properties: unbanned_by: $ref: '#/components/schemas/UserRequest' deprecated: true description: 'Details about the user performing the unban Deprecated: not used by the unban flow' title: Unbanned By x-stream-deprecated: true x-stream-deprecated-message: not used by the unban flow x-stream-index: "005" unbanned_by_id: deprecated: true description: 'ID of the user performing the unban Deprecated: not used by the unban flow' title: Unbanned By ID type: string x-stream-deprecated: true x-stream-deprecated-message: not used by the unban flow x-stream-index: "004" type: object UnbanResponse: nullable: true properties: duration: type: string x-stream-index: "001.001" required: - duration type: object UnblockActionRequestPayload: description: 'Deprecated: Use restore instead, which now also reverses a block or shadow block. 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 UnblockUsersRequest: nullable: true properties: blocked_user_id: type: string x-stream-index: "001" user: $ref: '#/components/schemas/UserRequest' x-stream-index: "003.002" user_id: type: string x-stream-index: "003.001" required: - blocked_user_id type: object UnblockUsersResponse: nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "001.001" required: - duration type: object UndeleteMessageRequest: nullable: true properties: undeleted_by: description: ID of the user who is undeleting the message title: User ID type: string x-stream-index: "003" required: - undeleted_by type: object UndeleteMessageResponse: description: Basic response information nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "002.001" message: $ref: '#/components/schemas/MessageResponse' x-stream-index: "001" required: - message - duration title: Response type: object UnmuteChannelRequest: nullable: true properties: channel_cids: description: Channel CIDs to mute (if multiple channels) items: type: string maxItems: 25 title: Channel CIDs type: array x-stream-index: "001.002" expiration: description: Duration of mute in milliseconds title: Expiration type: integer x-stream-index: "001.003" user: $ref: '#/components/schemas/UserRequest' x-stream-index: "002.002" user_id: type: string x-stream-index: "002.001" type: object UnmuteRequest: nullable: true properties: target_ids: description: User IDs to unmute items: type: string maxItems: 1000 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 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 UnreadCountsBatchRequest: nullable: true properties: user_ids: items: type: string maxItems: 100 minItems: 1 type: array x-stream-index: "001" required: - user_ids type: object UnreadCountsBatchResponse: description: Basic response information nullable: true properties: counts_by_user: additionalProperties: $ref: '#/components/schemas/UnreadCountsResponse' type: object x-stream-index: "001" duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "002.001" required: - counts_by_user - duration title: Response type: object UnreadCountsChannel: description: The unread information of a channel. properties: channel_id: description: The channel CID (type:id). title: Channel ID type: string x-stream-index: "001" has_unread: description: Whether the channel has messages newer than the user's last read. Large channels have no unread_count and only report this. title: Has unread type: boolean x-stream-index: "003" last_read: description: The date which the current user last read the channel. format: date-time title: Last read type: number x-stream-index: "004" unread_count: description: The number of unread messages inside the channel. format: int32 title: Unread count type: integer x-stream-index: "002" required: - channel_id - unread_count - has_unread - last_read type: object UnreadCountsChannelType: description: The unread information from channels with a specific type. properties: channel_count: description: The number of unread channels of this channel type. format: int32 title: Channel count type: integer x-stream-index: "002" channel_type: description: The channel type. title: Channel type type: string x-stream-index: "001" unread_count: description: The number of unread messages of all the channels with this type. format: int32 title: Unread count type: integer x-stream-index: "003" required: - channel_type - channel_count - unread_count type: object UnreadCountsResponse: nullable: true properties: channel_type: items: $ref: '#/components/schemas/UnreadCountsChannelType' type: array x-stream-index: "005" channels: items: $ref: '#/components/schemas/UnreadCountsChannel' type: array x-stream-index: "004" threads: items: $ref: '#/components/schemas/UnreadCountsThread' type: array x-stream-index: "006" total_unread_count: format: int32 type: integer x-stream-index: "001" total_unread_count_by_team: additionalProperties: format: int32 type: integer type: object x-stream-index: "003" total_unread_threads_count: format: int32 type: integer x-stream-index: "002" required: - total_unread_count - total_unread_threads_count - channels - channel_type - threads type: object UnreadCountsThread: description: The unread information of a thread. properties: last_read: description: The date which the current user last read the thread. format: date-time title: Last read type: number x-stream-index: "002" last_read_message_id: description: The id of the last reply which the current user read in the thread. title: Last read message ID type: string x-stream-index: "003" parent_message_id: description: The message id of the root of the thread. title: Parent message ID type: string x-stream-index: "004" unread_count: description: The number of unread replies inside the thread. format: int32 title: Unread count type: integer x-stream-index: "001" required: - unread_count - last_read - last_read_message_id - parent_message_id type: object UpdateAppRequest: nullable: true properties: activity_metrics_config: additionalProperties: format: int32 type: integer type: object x-stream-index: "001.057" allowed_flag_reasons: items: type: string type: array x-stream-index: "001.019" apn_config: $ref: '#/components/schemas/APNConfig' x-stream-index: "001.003" async_moderation_config: $ref: '#/components/schemas/AsyncModerationConfiguration' x-stream-index: "001.043" async_url_enrich_enabled: type: boolean x-stream-index: "001.021" auto_translation_enabled: type: boolean x-stream-index: "001.020" before_message_send_hook_attempt_timeout_ms: format: int32 type: integer x-stream-index: "001.023" before_message_send_hook_url: type: string x-stream-index: "001.022" cdn_expiration_seconds: format: int32 maximum: 1209600 minimum: 14400 type: integer x-stream-index: "001.042" channel_hide_members_only: type: boolean x-stream-index: "001.036" chat_primary_use_case: enum: - messaging - customer-support - community - marketplace - gaming - telehealth - on-demand - workforce-management - dating - education - financial - sports - real-money-gaming type: string x-stream-index: "001.059" custom_action_handler_url: type: string x-stream-index: "001.024" datadog_info: $ref: '#/components/schemas/DataDogInfo' x-stream-index: "001.044" disable_auth_checks: type: boolean x-stream-index: "001.001" disable_permissions_checks: type: boolean x-stream-index: "001.002" enable_hook_payload_compression: type: boolean x-stream-index: "001.052" enforce_unique_usernames: enum: - "no" - app - team type: string x-stream-index: "001.025" event_hooks: items: $ref: '#/components/schemas/EventHook' type: array x-stream-index: "001.050" feed_audit_logs_enabled: type: boolean x-stream-index: "001.047" feeds_moderation_enabled: type: boolean x-stream-index: "001.046" feeds_v2_region: type: string x-stream-index: "001.045" file_upload_config: $ref: '#/components/schemas/FileUploadConfig' x-stream-index: "001.033" firebase_config: $ref: '#/components/schemas/FirebaseConfig' x-stream-index: "001.004" grants: additionalProperties: items: type: string type: array nullable: true type: object x-stream-index: "001.037" guest_user_creation_disabled: type: boolean x-stream-index: "001.048" huawei_config: $ref: '#/components/schemas/HuaweiConfig' x-stream-index: "001.005" image_moderation_block_labels: items: type: string type: array x-stream-index: "001.017" image_moderation_enabled: type: boolean x-stream-index: "001.018" image_moderation_labels: items: type: string type: array x-stream-index: "001.016" image_upload_config: $ref: '#/components/schemas/FileUploadConfig' x-stream-index: "001.032" max_aggregated_activities_length: format: int32 type: integer x-stream-index: "001.054" member_custom_on_mentioned_users_enabled: type: boolean x-stream-index: "001.060" member_custom_on_messages_enabled: type: boolean x-stream-index: "001.055" member_custom_on_typing_events_enabled: type: boolean x-stream-index: "001.061" migrate_permissions_to_v2: type: boolean x-stream-index: "001.038" moderation_analytics_enabled: type: boolean x-stream-index: "001.010" moderation_dashboard_preferences: $ref: '#/components/schemas/ModerationDashboardPreferences' x-stream-index: "001.049" moderation_enabled: type: boolean x-stream-index: "001.009" moderation_onboarding_complete: type: boolean x-stream-index: "001.011" moderation_s3_image_access_role_arn: type: string x-stream-index: "001.056" moderation_webhook_url: type: string x-stream-index: "001.012" multi_tenant_enabled: type: boolean x-stream-index: "001.015" permission_version: enum: - v1 - v2 type: string x-stream-index: "001.013" push_config: $ref: '#/components/schemas/PushConfig' x-stream-index: "001.007" reminders_interval: format: int32 maximum: 86400 minimum: 60 type: integer x-stream-index: "001.039" reminders_max_members: format: int32 minimum: 2 type: integer x-stream-index: "001.040" reminders_max_per_user: format: int32 maximum: 100000 minimum: 1 type: integer x-stream-index: "001.041" revoke_tokens_issued_before: description: Revokes tokens issued before this date format: date-time nullable: true title: Revoke tokens issued before type: string x-stream-index: "001.034" sns_key: type: string x-stream-index: "001.030" sns_secret: type: string x-stream-index: "001.031" sns_topic_arn: type: string x-stream-index: "001.029" sqs_key: type: string x-stream-index: "001.027" sqs_secret: type: string x-stream-index: "001.028" sqs_url: type: string x-stream-index: "001.026" two_way_block_effect_enabled: type: boolean x-stream-index: "001.062" user_response_time_enabled: type: boolean x-stream-index: "001.053" user_search_disallowed_roles: items: type: string maxItems: 10 type: array x-stream-index: "001.014" video_primary_use_case: enum: - video-calling - voice-calling - livestreaming - audio-rooms - ai-agents - live-shopping - other type: string x-stream-index: "001.058" webhook_events: items: type: string type: array x-stream-index: "001.035" webhook_url: type: string x-stream-index: "001.008" xiaomi_config: $ref: '#/components/schemas/XiaomiConfig' x-stream-index: "001.006" type: object UpdateBlockListRequest: nullable: true properties: is_confusable_folding_enabled: type: boolean x-stream-index: "007" is_leet_check_enabled: type: boolean x-stream-index: "005" is_plural_check_enabled: type: boolean x-stream-index: "006" is_substring_matching_enabled: type: boolean x-stream-index: "008" team: type: string x-stream-index: "002" user: $ref: '#/components/schemas/UserRequest' x-stream-index: "009.002" user_id: type: string x-stream-index: "009.001" words: description: List of words to block items: type: string title: Words type: array x-stream-index: "003" title: Update block list type: object x-stream-docs-page-id: update_block_list UpdateBlockListResponse: description: Basic response information nullable: true properties: blocklist: $ref: '#/components/schemas/BlockListResponse' x-stream-index: "001" duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "002.001" required: - duration title: Response type: object UpdateCampaignRequest: nullable: true properties: channel_template: $ref: '#/components/schemas/CampaignChannelTemplate' x-stream-index: "001.013" create_channels: type: boolean x-stream-index: "001.008" description: type: string x-stream-index: "001.007" id: maxLength: 255 type: string x-stream-index: "001.001" message_template: $ref: '#/components/schemas/CampaignMessageTemplate' x-stream-index: "001.012" name: type: string x-stream-index: "001.006" segment_ids: items: type: string maxItems: 25 type: array x-stream-index: "001.002" sender_id: type: string x-stream-index: "001.004" sender_mode: $ref: '#/components/schemas/CampaignSenderMode' x-stream-index: "001.005" sender_visibility: $ref: '#/components/schemas/CampaignSenderVisibility' x-stream-index: "001.014" show_channels: type: boolean x-stream-index: "001.009" skip_push: type: boolean x-stream-index: "001.010" skip_webhook: type: boolean x-stream-index: "001.011" user_ids: items: type: string maxItems: 10000 type: array x-stream-index: "001.003" required: - sender_id - message_template type: object UpdateCampaignResponse: description: Basic response information nullable: true properties: campaign: $ref: '#/components/schemas/CampaignResponse' x-stream-index: "001" duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "003.001" users: $ref: '#/components/schemas/PagerResponse' x-stream-index: "002" required: - duration title: Response type: object UpdateChannelPartialRequest: nullable: true properties: set: additionalProperties: {} type: object x-stream-index: "002.001" unset: items: type: string type: array x-stream-index: "002.002" user: $ref: '#/components/schemas/UserRequest' x-stream-index: "003.002" user_id: type: string x-stream-index: "003.001" title: UpdateChannelPartialRequest type: object UpdateChannelPartialResponse: nullable: true properties: channel: $ref: '#/components/schemas/ChannelResponse' description: Updated channel object title: Channel x-stream-index: "001" duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "003.001" members: description: List of updated members items: $ref: '#/components/schemas/ChannelMemberResponse' title: ChannelMemberResponse type: array x-stream-index: "002" required: - members - duration type: object UpdateChannelRequest: nullable: true properties: accept_invite: description: Set to `true` to accept the invite title: Accept invite type: boolean x-stream-index: "008" add_filter_tags: description: List of filter tags to add to the channel items: type: string maxItems: 10 title: Add filter tags type: array x-stream-index: "014" add_members: description: List of user IDs to add to the channel items: $ref: '#/components/schemas/ChannelMemberRequest' maxItems: 100 title: Add members type: array x-stream-index: "001" add_moderators: description: List of user IDs to make channel moderators items: type: string maxItems: 100 title: Add moderators type: array x-stream-index: "003" assign_roles: description: List of channel member role assignments. If any specified user is not part of the channel, the request will fail items: $ref: '#/components/schemas/ChannelMemberRequest' maxItems: 100 title: Assign roles type: array x-stream-index: "006" cooldown: description: Sets cool down period for the channel in seconds format: int32 maximum: 120 minimum: 0 title: Cool down type: integer x-stream-index: "007" data: $ref: '#/components/schemas/ChannelInputRequest' x-stream-index: "016.001" demote_moderators: description: List of user IDs to take away moderators status from items: type: string maxItems: 100 title: Demote moderators type: array x-stream-index: "004" hide_history: description: Set to `true` to hide channel's history when adding new members title: Hide history type: boolean x-stream-index: "012" hide_history_before: description: If set, hides channel's history before this time when adding new members. Takes precedence over `hide_history` when both are provided. Must be in RFC3339 format (e.g., "2024-01-01T10:00:00Z") and in the past. format: date-time title: Hide history before type: string x-stream-index: "013" invites: description: List of user IDs to invite to the channel items: $ref: '#/components/schemas/ChannelMemberRequest' maxItems: 100 title: Invites type: array x-stream-index: "005" message: $ref: '#/components/schemas/MessageRequest' description: Message to send to the chat when channel is successfully updated title: Message x-stream-index: "010" reject_invite: description: Set to `true` to reject the invite title: Reject invite type: boolean x-stream-index: "009" remove_filter_tags: description: List of filter tags to remove from the channel items: type: string title: Remove filter tags type: array x-stream-index: "015" remove_members: description: List of user IDs to remove from the channel items: type: string maxItems: 100 title: Remove members type: array x-stream-index: "002" skip_push: description: When `message` is set disables all push notifications for it title: Skip push type: boolean x-stream-index: "011" user: $ref: '#/components/schemas/UserRequest' x-stream-index: "017.002" user_id: type: string x-stream-index: "017.001" title: Channel update request type: object x-stream-docs-page-id: channel_update UpdateChannelResponse: nullable: true properties: channel: $ref: '#/components/schemas/ChannelResponse' description: Updated channel title: Channel x-stream-index: "001" duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "004.001" members: description: List of channel members items: $ref: '#/components/schemas/ChannelMemberResponse' title: Members type: array x-stream-index: "003" message: $ref: '#/components/schemas/MessageResponse' description: Message sent to the chat title: Message x-stream-index: "002" required: - members - duration type: object UpdateChannelTypeRequest: nullable: true properties: allowed_flag_reasons: items: type: string type: array x-stream-index: 012.001.028 automod: $ref: '#/components/schemas/AutomodMode' x-stream-index: "010" automod_behavior: $ref: '#/components/schemas/ChannelModerationBehavior' x-stream-index: "011" automod_thresholds: $ref: '#/components/schemas/Thresholds' x-stream-index: 012.001.029 blocklist: type: string x-stream-index: 012.001.025 blocklist_behavior: $ref: '#/components/schemas/ChannelModerationBehavior' x-stream-index: 012.001.026 blocklists: items: $ref: '#/components/schemas/BlockListOptions' type: array x-stream-index: 012.001.027 chat_preferences: $ref: '#/components/schemas/ChatPreferences' x-stream-index: 012.001.034 commands: description: List of commands that channel supports items: type: string title: Commands type: array x-stream-index: "012.003" connect_events: type: boolean x-stream-index: 012.001.004 count_messages: type: boolean x-stream-index: 012.001.020 custom_events: type: boolean x-stream-index: 012.001.013 delivery_events: type: boolean x-stream-index: 012.001.005 grants: additionalProperties: items: type: string type: array nullable: true type: object x-stream-index: "004" mark_messages_pending: type: boolean x-stream-index: 012.001.016 max_message_length: format: int32 type: integer x-stream-index: "009" message_retention: type: string x-stream-index: 012.001.021 mutes: type: boolean x-stream-index: 012.001.010 partition_size: format: int32 minimum: 0 type: integer x-stream-index: "007" partition_ttl: example: 24h format: duration nullable: true type: string x-stream-index: "008" permissions: items: $ref: '#/components/schemas/PolicyRequest' type: array x-stream-index: "003" polls: type: boolean x-stream-index: 012.001.017 push_level: $ref: '#/components/schemas/PushLevel' description: Sets the push notification level for a channel type title: Push notification level x-stream-description: Sets the push notification level for a channel type x-stream-index: 012.001.033 push_notifications: type: boolean x-stream-index: 012.001.014 quotes: type: boolean x-stream-index: 012.001.009 reactions: type: boolean x-stream-index: 012.001.007 read_events: type: boolean x-stream-index: 012.001.003 reminders: type: boolean x-stream-index: 012.001.015 replies: type: boolean x-stream-index: 012.001.008 search: type: boolean x-stream-index: 012.001.006 shared_locations: type: boolean x-stream-index: 012.001.019 skip_last_msg_update_for_system_msgs: type: boolean x-stream-index: 012.001.032 typing_events: type: boolean x-stream-index: 012.001.002 uploads: type: boolean x-stream-index: 012.001.011 url_enrichment: type: boolean x-stream-index: 012.001.012 user_message_reminders: type: boolean x-stream-index: 012.001.018 type: object UpdateChannelTypeResponse: description: Basic response information nullable: true properties: allowed_flag_reasons: items: type: string type: array x-stream-index: 003.001.028 automod: $ref: '#/components/schemas/AutomodMode' x-stream-index: 003.001.023 automod_behavior: $ref: '#/components/schemas/ChannelModerationBehavior' x-stream-index: 003.001.024 automod_thresholds: $ref: '#/components/schemas/Thresholds' x-stream-index: 003.001.029 blocklist: type: string x-stream-index: 003.001.025 blocklist_behavior: $ref: '#/components/schemas/ChannelModerationBehavior' x-stream-index: 003.001.026 blocklists: items: $ref: '#/components/schemas/BlockListOptions' type: array x-stream-index: 003.001.027 chat_preferences: $ref: '#/components/schemas/ChatPreferences' x-stream-index: 003.001.034 commands: items: type: string type: array x-stream-index: "003.003" connect_events: type: boolean x-stream-index: 003.001.004 count_messages: type: boolean x-stream-index: 003.001.020 created_at: format: date-time type: number x-stream-index: 003.002.003 custom_events: type: boolean x-stream-index: 003.001.013 delivery_events: type: boolean x-stream-index: 003.001.005 duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "004.001" grants: additionalProperties: items: type: string type: array type: object x-stream-index: "002" mark_messages_pending: type: boolean x-stream-index: 003.001.016 max_message_length: format: int32 type: integer x-stream-index: 003.001.022 message_retention: type: string x-stream-index: 003.001.021 mutes: type: boolean x-stream-index: 003.001.010 name: type: string x-stream-index: 003.001.001 partition_size: format: int32 type: integer x-stream-index: 003.001.030 partition_ttl: example: 24h format: duration type: string x-stream-index: 003.001.031 permissions: items: $ref: '#/components/schemas/PolicyRequest' type: array x-stream-index: "001" polls: type: boolean x-stream-index: 003.001.017 push_level: $ref: '#/components/schemas/PushLevel' description: Sets the push notification level for a channel type title: Push notification level x-stream-description: Sets the push notification level for a channel type x-stream-index: 003.001.033 push_notifications: type: boolean x-stream-index: 003.001.014 quotes: type: boolean x-stream-index: 003.001.009 reactions: type: boolean x-stream-index: 003.001.007 read_events: type: boolean x-stream-index: 003.001.003 reminders: type: boolean x-stream-index: 003.001.015 replies: type: boolean x-stream-index: 003.001.008 search: type: boolean x-stream-index: 003.001.006 shared_locations: type: boolean x-stream-index: 003.001.019 skip_last_msg_update_for_system_msgs: type: boolean x-stream-index: 003.001.032 typing_events: type: boolean x-stream-index: 003.001.002 updated_at: format: date-time type: number x-stream-index: 003.002.004 uploads: type: boolean x-stream-index: 003.001.011 url_enrichment: type: boolean x-stream-index: 003.001.012 user_message_reminders: type: boolean x-stream-index: 003.001.018 required: - permissions - grants - 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 - created_at - updated_at - commands - duration type: object UpdateCommandRequest: nullable: true properties: args: description: Arguments help text, shown in commands auto-completion maxLength: 255 title: Arguments type: string x-stream-index: "003" description: description: Description, shown in commands auto-completion maxLength: 255 title: Description type: string x-stream-index: "002" set: description: Set name used for grouping commands maxLength: 255 title: Set type: string x-stream-index: "004" required: - description title: UpdateCommandRequest type: object UpdateCommandResponse: nullable: true properties: command: $ref: '#/components/schemas/Command' description: Command object title: Command x-stream-index: "001" duration: type: string x-stream-index: "002.001" required: - duration title: UpdateCommandResponse type: object UpdateExternalStorageRequest: description: External storage nullable: true properties: aws_s3: $ref: '#/components/schemas/S3Request' description: Only required if you want to create an Amazon S3 storage title: AwsS3 x-stream-index: "003.004" azure_blob: $ref: '#/components/schemas/AzureRequest' description: Only required if you want to create an Azure Blob Storage title: AzureBlob x-stream-index: "003.006" bucket: description: The name of the bucket on the service provider title: Bucket type: string x-stream-index: "003.002" gcs_credentials: type: string x-stream-index: "003.005" path: description: The path prefix to use for storing files title: Path type: string x-stream-index: "003.003" storage_type: description: The type of storage to use enum: - s3 - gcs - abs title: StorageType type: string x-stream-index: "003.001" required: - storage_type - bucket title: ExternalStorageRequest type: object UpdateExternalStorageResponse: description: Basic response information nullable: true properties: bucket: type: string x-stream-index: "001.003" duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "002.001" name: type: string x-stream-index: "001.001" path: type: string x-stream-index: "001.004" type: enum: - s3 - gcs - abs type: string x-stream-index: "001.002" required: - name - type - bucket - path - duration title: Response type: object UpdateLiveLocationRequest: nullable: true properties: end_at: description: Time when the live location expires format: date-time title: string type: string x-stream-index: "004" latitude: description: Latitude coordinate format: double maximum: 90 minimum: 1.8446744073709552e+19 title: number type: number x-stream-index: "002" longitude: description: Longitude coordinate format: double maximum: 180 minimum: 1.8446744073709552e+19 title: number type: number x-stream-index: "003" message_id: description: Live location ID title: string type: string x-stream-index: "001" required: - message_id type: object UpdateMemberPartialRequest: nullable: true properties: set: additionalProperties: {} type: object x-stream-index: "002.001" unset: items: type: string type: array x-stream-index: "002.002" type: object UpdateMemberPartialResponse: nullable: true properties: channel_member: $ref: '#/components/schemas/ChannelMemberResponse' description: Updated channel member title: Channel member x-stream-index: "001" duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "002.001" required: - duration type: object UpdateMessagePartialRequest: nullable: true properties: set: additionalProperties: {} description: Sets new field values title: Set type: object x-stream-index: "003.001" x-stream-map: description: New value to set key: field title: Value skip_enrich_url: description: Skip enriching the URL in the message title: SkipEnrichURL type: boolean x-stream-index: "001" skip_push: type: boolean x-stream-index: "002" unset: description: Array of field names to unset items: type: string title: Unset type: array x-stream-index: "003.002" user: $ref: '#/components/schemas/UserRequest' x-stream-index: "005.002" user_id: type: string x-stream-index: "005.001" type: object UpdateMessagePartialResponse: nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "003.001" message: $ref: '#/components/schemas/MessageResponse' description: Updated message title: Message x-stream-index: "001" pending_message_metadata: additionalProperties: type: string description: Pending message metadata title: PendingMessageMetadata type: object x-stream-index: "002" required: - duration type: object UpdateMessageRequest: nullable: true properties: message: $ref: '#/components/schemas/MessageRequest' description: Message title: MessageRequest x-stream-index: "001" skip_enrich_url: description: Skip enrich URL title: boolean type: boolean x-stream-index: "003" skip_push: type: boolean x-stream-index: "002" required: - message type: object UpdateMessageResponse: description: Basic response information nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "003.001" message: $ref: '#/components/schemas/MessageResponse' x-stream-index: "001" pending_message_metadata: additionalProperties: type: string type: object x-stream-index: "002" required: - message - duration title: Response type: object UpdatePollOptionRequest: nullable: true properties: config_key: description: Key of the moderation configuration to use. Server-side only. title: Config Key type: string x-stream-index: "005" config_team: description: Team associated with the configuration. Server-side only. title: Config Team type: string x-stream-index: "006" custom: additionalProperties: {} description: Custom data for this object title: Custom data type: object x-stream-index: "004" id: description: Option ID maxLength: 255 title: string type: string x-stream-index: "002" text: description: Option text title: string type: string x-stream-index: "003" user: $ref: '#/components/schemas/UserRequest' x-stream-index: "007.002" user_id: type: string x-stream-index: "007.001" required: - id - text type: object UpdatePollPartialRequest: nullable: true properties: config_key: description: Key of the moderation configuration to use. Server-side only. title: Config Key type: string x-stream-index: "002" config_team: description: Team associated with the configuration. Server-side only. title: Config Team type: string x-stream-index: "003" set: additionalProperties: {} description: Sets new field values title: Set type: object x-stream-index: "004.001" x-stream-map: description: New value to set key: field title: Value unset: description: Array of field names to unset items: type: string title: Unset type: array x-stream-index: "004.002" user: $ref: '#/components/schemas/UserRequest' x-stream-index: "005.002" user_id: type: string x-stream-index: "005.001" type: object UpdatePollRequest: nullable: true properties: allow_answers: description: Allow answers title: boolean type: boolean x-stream-index: "009" allow_user_suggested_options: description: Allow user suggested options title: boolean type: boolean x-stream-index: "008" config_key: description: Key of the moderation configuration to use. Server-side only. title: Config Key type: string x-stream-index: "012" config_team: description: Team associated with the configuration. Server-side only. title: Config Team type: string x-stream-index: "013" custom: additionalProperties: {} description: Custom data for this object title: Custom data type: object x-stream-index: "011" description: description: Poll description title: string type: string x-stream-index: "003" enforce_unique_vote: description: Enforce unique vote title: boolean type: boolean x-stream-index: "005" id: description: Poll ID maxLength: 255 title: string type: string x-stream-index: "001" is_closed: description: Is closed title: boolean type: boolean x-stream-index: "010" max_votes_allowed: description: Max votes allowed format: int32 maximum: 10 title: integer type: integer x-stream-index: "007" name: description: Poll name title: string type: string x-stream-index: "002" options: description: Poll options items: $ref: '#/components/schemas/PollOptionRequest' maxItems: 100 title: PollOptions type: array x-stream-index: "004" user: $ref: '#/components/schemas/UserRequest' x-stream-index: "014.002" user_id: type: string x-stream-index: "014.001" voting_visibility: $ref: '#/components/schemas/VotingVisibility' description: Voting visibility title: string x-stream-description: Voting visibility x-stream-index: "006" required: - id - name type: object UpdatePredefinedFilterRequest: nullable: true properties: description: description: The description of the predefined filter maxLength: 256 title: Description type: string x-stream-index: "002" filter: additionalProperties: {} description: Filter to apply to the query minimum: 1 title: Filter type: object x-stream-filter-fields: app_banned: operators: - $eq type: string archived: operators: - $eq type: boolean blocked: operators: - $eq type: boolean channel_role: operators: - $eq - $in type: string cid: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string created_at: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: date created_by_id: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string custom: operators: - $autocomplete - $contains - $eq - $exists - $gt - $gte - $in - $lt - $lte - $q type: object disabled: operators: - $eq type: boolean distinct: operators: - $eq type: boolean filter_tags: operators: - $eq - $in type: string value_types: $eq: array frozen: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: boolean has_unread: accepted_values: - true operators: - $eq type: boolean hidden: operators: - $eq type: boolean id: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string invite: operators: - $eq type: string joined: operators: - $eq type: boolean last_message_at: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: date last_updated: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: date member.user.name: operators: - $autocomplete - $eq type: string member_count: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: number members: operators: - $eq - $in type: string value_types: $eq: array message_count: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: number muted: operators: - $eq type: boolean name: operators: - $autocomplete - $eq - $exists - $gt - $gte - $in - $lt - $lte - $q type: string pinned: operators: - $eq type: boolean team: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string type: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: string updated_at: operators: - $eq - $exists - $gt - $gte - $in - $lt - $lte type: date x-stream-index: "004" operation: description: The operation this filter is for (e.g., QueryChannels) enum: - QueryChannels title: Operation type: string x-stream-index: "003" sort: items: additionalProperties: {} type: object type: array x-stream-index: "005" required: - operation - filter type: object UpdatePredefinedFilterResponse: nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "002.001" predefined_filter: $ref: '#/components/schemas/PredefinedFilterResponse' description: Predefined filter title: PredefinedFilterResponse x-stream-index: "001" required: - duration type: object UpdateQueueRequest: nullable: true properties: description: maxLength: 512 type: string x-stream-index: "003" filters: additionalProperties: {} type: object x-stream-index: "004" name: maxLength: 255 type: string x-stream-index: "002" sort: items: additionalProperties: {} type: object type: array x-stream-index: "005" user: $ref: '#/components/schemas/UserRequest' x-stream-index: "006.002" user_id: type: string x-stream-index: "006.001" type: object UpdateReminderRequest: nullable: true properties: expires_at: format: date-time type: string x-stream-index: "002" remind_at: format: date-time type: string x-stream-index: "001" user: $ref: '#/components/schemas/UserRequest' x-stream-index: "004.002" user_id: type: string x-stream-index: "004.001" type: object UpdateReminderResponse: description: Basic response information nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "002.001" reminder: $ref: '#/components/schemas/ReminderResponseData' x-stream-index: "001" required: - reminder - duration title: Response type: object UpdateScheduledMessageRequest: nullable: true properties: message: $ref: '#/components/schemas/MessageRequest' description: Replaces the scheduled message as a whole. Fields only a server-side caller may set (html, system type) are rejected on client-side requests title: Message x-stream-index: "002" scheduled_at: description: New send time (UTC). Must be in the future and at most the app's maximum lead time from now. Rounded up to the first whole minute that is at least 1 minute from now, never earlier than requested. Resending the stored time leaves it unchanged format: date-time title: Scheduled at type: string x-stream-index: "003" type: object UpdateScheduledMessageResponse: nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "002.001" scheduled_message: $ref: '#/components/schemas/ScheduledMessageResponse' description: The scheduled message title: Scheduled message x-stream-index: "001" required: - scheduled_message - duration type: object UpdateSegmentRequest: nullable: true properties: description: description: The description of the segment (max 256 characters) maxLength: 256 type: string x-stream-index: "003" filter: additionalProperties: {} description: Filter to apply to the query title: Filter type: object x-stream-index: "004" name: description: The name of the segment (max 128 characters) maxLength: 128 type: string x-stream-index: "002" type: object UpdateSegmentResponse: nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "002.001" segment: $ref: '#/components/schemas/SegmentResponse' description: Segment title: SegmentResponse x-stream-index: "001" required: - segment - duration type: object UpdateThreadPartialRequest: nullable: true properties: set: additionalProperties: {} description: Sets new field values title: Set type: object x-stream-index: "004.001" x-stream-map: description: New value to set key: field title: Value unset: description: Array of field names to unset items: type: string title: Unset type: array x-stream-index: "004.002" user: $ref: '#/components/schemas/UserRequest' x-stream-index: "003.002" user_id: type: string x-stream-index: "003.001" type: object UpdateThreadPartialResponse: nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "002.001" thread: $ref: '#/components/schemas/ThreadResponse' description: Updated thread (not enriched) title: Thread x-stream-index: "001" required: - thread - duration type: object UpdateUserGroupRequest: description: Request body for updating a user group nullable: true properties: description: description: The new description for the group maxLength: 1024 title: Description type: string x-stream-index: "003" name: description: The new name of the user group maxLength: 255 minLength: 1 title: Name type: string x-stream-index: "002" team_id: maxLength: 255 type: string x-stream-index: "004" title: UpdateUserGroupRequest type: object UpdateUserGroupResponse: description: Response for updating a user group nullable: true properties: duration: type: string x-stream-index: "002.001" user_group: $ref: '#/components/schemas/UserGroupResponse' description: The updated user group title: UserGroup x-stream-index: "001" required: - duration title: UpdateUserGroupResponse type: object UpdateUserPartialRequest: properties: id: description: User ID to update title: ID type: string x-stream-index: "001" set: additionalProperties: {} type: object x-stream-index: "002.001" unset: items: type: string type: array x-stream-index: "002.002" required: - id type: object UpdateUsersPartialRequest: nullable: true properties: users: items: $ref: '#/components/schemas/UpdateUserPartialRequest' maxItems: 100 type: array x-stream-index: "001" required: - users type: object UpdateUsersRequest: nullable: true properties: users: additionalProperties: $ref: '#/components/schemas/UserRequest' description: Object containing users title: Users type: object x-stream-index: "001" x-stream-map: key: user_id required: - users type: object UpdateUsersResponse: nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "003.001" membership_deletion_task_id: deprecated: true description: 'Deprecated: Always empty. Removing a user from a team no longer deletes their memberships in that team''s channels, so there is no task to poll.' title: Membership Deletion Task ID type: string x-stream-deprecated: true x-stream-deprecated-message: Always empty. Removing a user from a team no longer deletes their memberships in that team's channels, so there is no task to poll. x-stream-index: "002" users: additionalProperties: $ref: '#/components/schemas/FullUserResponse' description: Object containing users title: Users type: object x-stream-index: "001" x-stream-map: key: user_id required: - users - membership_deletion_task_id - duration type: object UploadChannelFileRequest: nullable: true properties: file: description: file field title: File type: string x-stream-index: "002" user: $ref: '#/components/schemas/OnlyUserID' description: user for the request **server side only** title: User x-stream-index: "003" type: object UploadChannelFileResponse: nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "004.001" file: description: URL to the uploaded asset. Should be used to put to `asset_url` attachment field title: File type: string x-stream-index: "001" moderation_action: type: string x-stream-index: "003" thumb_url: description: URL of the file thumbnail for supported file formats. Should be put to `thumb_url` attachment field title: Thumbnail URL type: string x-stream-index: "002" required: - duration type: object UploadChannelRequest: nullable: true properties: file: type: string x-stream-index: "001.002" upload_sizes: description: field with JSON-encoded array of image size configurations items: $ref: '#/components/schemas/ImageSize' title: Upload sizes type: array x-stream-index: "002" user: $ref: '#/components/schemas/OnlyUserID' x-stream-index: "001.003" type: object UploadChannelResponse: nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: 001.004.001 file: type: string x-stream-index: "001.001" moderation_action: type: string x-stream-index: "001.003" thumb_url: type: string x-stream-index: "001.002" upload_sizes: description: Array of image size configurations items: $ref: '#/components/schemas/ImageSize' title: Upload sizes type: array x-stream-index: "002" required: - duration 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 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 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 UpsertConfigRequest: nullable: true properties: ai_audio_config: $ref: '#/components/schemas/AIAudioConfigRequest' description: Configuration for AI audio analysis title: AI Audio Config x-stream-index: "013" 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/AIVideoConfigRequest' 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: "019" 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: "018" engine: $ref: '#/components/schemas/ModerationEngineConfigRequest' description: 'Engine for everything the policy moderates (text, audio transcripts, OCR text, usernames): provider llm or nlp, and an optional LLM model. A missing provider follows the app''s LLM moderation setting. Omit to keep the stored engine; send an empty object to clear it' title: Engine x-stream-index: "021" flood_config: $ref: '#/components/schemas/FloodConfig' description: Per-user flood detection for the /labels endpoint (identical and similar message detectors) title: Flood Config 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" intent_config: $ref: '#/components/schemas/IntentConfigRequest' description: Configuration for conversation-level intent analysis (topics, capture cap, cooldowns, score threshold) title: Intent Config x-stream-index: "017" 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: "016" 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: "022.002" user_id: description: Optional user ID to associate with the audit log entry title: User ID type: string x-stream-index: "022.001" velocity_filter_config: $ref: '#/components/schemas/VelocityFilterConfig' description: Configuration for velocity-based filtering title: Velocity Filter Config x-stream-index: "014" video_call_rule_config: $ref: '#/components/schemas/VideoCallRuleConfig' x-stream-index: "020" required: - key 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 UpsertExternalStorageAWSS3Request: properties: bucket: type: string x-stream-index: "002" path_prefix: type: string x-stream-index: "004" region: type: string x-stream-index: "003" role_arn: type: string x-stream-index: "001" required: - role_arn - bucket - region type: object UpsertExternalStorageGCSRequest: properties: bucket: type: string x-stream-index: "001" credentials: type: string x-stream-index: "002" path_prefix: type: string x-stream-index: "003" required: - bucket - credentials type: object UpsertExternalStorageRequest: nullable: true properties: aws_s3: $ref: '#/components/schemas/UpsertExternalStorageAWSS3Request' x-stream-index: "002" gcs: $ref: '#/components/schemas/UpsertExternalStorageGCSRequest' x-stream-index: "003" type: enum: - aws_s3 - gcs type: string x-stream-index: "001" required: - type type: object UpsertExternalStorageResponse: 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 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, call, or flood' 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 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 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 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 UpsertPushPreferencesRequest: nullable: true properties: preferences: description: A list of push preferences for channels, calls, or the user. items: $ref: '#/components/schemas/PushPreferenceInput' type: array x-stream-index: "001" required: - preferences type: object UpsertPushPreferencesResponse: nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "003.001" user_channel_preferences: additionalProperties: additionalProperties: $ref: '#/components/schemas/ChannelPushPreferencesResponse' type: object description: The channel specific push notification preferences, only returned for channels you've edited. title: User Channel Notification Preferences type: object x-stream-index: "002" user_preferences: additionalProperties: $ref: '#/components/schemas/PushPreferencesResponse' description: The user preferences, always returned regardless if you edited it title: User Preferences type: object x-stream-index: "001" required: - user_preferences - user_channel_preferences - duration type: object UpsertPushProviderRequest: nullable: true properties: push_provider: $ref: '#/components/schemas/PushProviderRequest' x-stream-index: "001" type: object UpsertPushProviderResponse: description: Basic response information nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "002.001" push_provider: $ref: '#/components/schemas/PushProviderResponse' x-stream-index: "001" required: - push_provider - duration title: Response type: object UpsertPushTemplateRequest: nullable: true properties: enable_push: description: Whether to send push notification for this event title: boolean type: boolean x-stream-index: "002" event_type: description: 'Event type. One of: message.new, message.updated, reaction.new, notification.reminder_due, feeds.activity.added, feeds.comment.added, feeds.activity.reaction.added, feeds.comment.reaction.added, feeds.follow.created, feeds.notification_feed.updated' enum: - message.new - message.updated - reaction.new - notification.reminder_due - feeds.activity.added - feeds.comment.added - feeds.activity.reaction.added - feeds.comment.reaction.added - feeds.follow.created - feeds.notification_feed.updated title: string type: string x-stream-index: "003" push_provider_name: description: Push provider name title: string type: string x-stream-index: "004" push_provider_type: $ref: '#/components/schemas/PushProviderName' description: 'Push provider type. One of: firebase, apn, huawei, xiaomi' title: string x-stream-description: 'Push provider type. One of: firebase, apn, huawei, xiaomi' x-stream-index: "005" template: description: Push template title: string type: string x-stream-index: "006" required: - event_type - push_provider_type type: object UpsertPushTemplateResponse: description: Basic response information nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "001.001" template: $ref: '#/components/schemas/PushTemplateResponse' x-stream-index: "002" required: - duration title: Response type: object UpsertSetupSessionRequest: nullable: true properties: current_step: $ref: '#/components/schemas/SetupStep' description: 'The current step of the setup wizard. One of: welcome, input, configure, live' title: Current Step x-stream-description: 'The current step of the setup wizard. One of: welcome, input, configure, live' x-stream-index: "001" setup_data: additionalProperties: {} description: Per-step data keyed by step name (welcome, input, configure, live) title: Setup Data type: object x-stream-index: "003" status: $ref: '#/components/schemas/SetupStatus' description: 'The status of the setup session. One of: in_progress, completed' title: Status x-stream-description: 'The status of the setup session. One of: in_progress, completed' x-stream-index: "002" required: - current_step - status type: object UpsertSetupSessionResponse: nullable: true properties: duration: type: string x-stream-index: "002.001" setup_session: $ref: '#/components/schemas/SetupSession' description: The created or updated setup session title: Setup Session x-stream-index: "001" required: - duration type: object User: properties: data: additionalProperties: {} type: object x-stream-index: "002" id: type: string x-stream-index: "001" required: - id type: object UserBannedEvent: description: This event is sent when a user gets banned. The event contains information about the user that was banned. nullable: true properties: ban_from_future_channels: description: Whether the ban also applies to channels created later by the same creator. Without a channel, check user.banned to tell a global ban from a future-channels-only ban title: Ban from future channels type: boolean x-stream-index: "007" channel_custom: additionalProperties: {} type: object x-stream-index: 001.001.006 channel_id: description: The ID of the channel where the target user was banned title: Channel ID type: string x-stream-index: 001.002.002 channel_member_count: format: int32 type: integer x-stream-index: 001.001.004 channel_message_count: format: int64 type: integer x-stream-index: 001.001.005 channel_type: description: The type of the channel where the target user was banned title: Channel Type type: string x-stream-index: 001.002.001 cid: description: The CID of the channel where the target user was banned title: Channel CID type: string x-stream-index: 001.001.001.002 created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: 001.001.001.001.003 created_by: $ref: '#/components/schemas/UserResponseCommonFields' description: The user that banned the target user title: Created by x-stream-index: "004" custom: additionalProperties: {} type: object x-stream-index: 001.001.001.001.007 expiration: description: The expiration date of the ban format: date-time title: Expiration type: number x-stream-index: "005" reason: description: The reason for the ban title: Reason type: string x-stream-index: "003" received_at: format: date-time type: number x-stream-index: 001.001.001.001.004 review_queue_item_id: description: ID of the review queue item (flagged message) that triggered the ban, if the ban was applied from the moderation review queue title: Review Queue Item ID type: string x-stream-index: "008" shadow: description: Whether the user was shadow banned title: Shadow type: boolean x-stream-index: "006" team: description: The team of the channel where the target user was banned title: Team type: string x-stream-index: 001.001.003 total_bans: format: int32 type: integer x-stream-index: "009" type: default: user.banned description: 'The type of event: "user.banned" in this case' title: Event Type type: string x-stream-index: 001.001.001.001.002 user: $ref: '#/components/schemas/UserResponseCommonFields' description: The target user that was banned title: User x-stream-index: "002.001" required: - type - created_at - custom - user title: UserBannedEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent UserChannelBanCountRuleParameters: properties: banned_by: type: string x-stream-index: "003" threshold: format: int32 type: integer x-stream-index: "001" time_window: type: string x-stream-index: "002" type: object UserChannelCountRuleParameters: properties: threshold: format: int32 type: integer x-stream-index: "001" time_window: type: string x-stream-index: "002" type: object UserClaimedEvent: description: This event is sent when a regular user claims a guest user. The guest's channels, messages and reactions are then moved to the claiming user. Webhooks receive it when the claim is made; the claiming user's websocket connections receive it when the move has completed, as the signal to reload channels and messages. nullable: true properties: claimed_by: $ref: '#/components/schemas/UserResponseCommonFields' description: The user that claimed the guest user title: Claimed by x-stream-index: "003" created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: "001.003" custom: additionalProperties: {} type: object x-stream-index: "001.007" received_at: format: date-time type: number x-stream-index: "001.004" type: default: user.claimed description: 'The type of event: "user.claimed" in this case' title: Event Type type: string x-stream-index: "001.002" user: $ref: '#/components/schemas/UserResponseCommonFields' description: The guest user that was claimed title: User x-stream-index: "002.001" required: - type - created_at - custom - user - claimed_by title: UserClaimedEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent UserCreatedWithinParameters: properties: max_age: type: string x-stream-index: "001" type: object UserCustomEventRequest: properties: custom: additionalProperties: {} type: object x-stream-index: "002" type: type: string x-stream-index: "001" required: - type type: object UserCustomPropertyParameters: properties: operator: type: string x-stream-index: "002" property_key: type: string x-stream-index: "001" type: object UserDeactivatedEvent: description: This event is sent when a user gets deactivated. The event contains information about the user that was deactivated. nullable: true properties: created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: "001.003" created_by: $ref: '#/components/schemas/UserResponseCommonFields' description: The user that deactivated the target user title: Created by x-stream-index: "003" custom: additionalProperties: {} type: object x-stream-index: "001.007" received_at: format: date-time type: number x-stream-index: "001.004" type: default: user.deactivated description: 'The type of event: "user.deactivated" in this case' title: Event Type type: string x-stream-index: "001.002" user: $ref: '#/components/schemas/UserResponseCommonFields' description: The target user that was deactivated title: User x-stream-index: "002.001" required: - type - created_at - custom - user title: UserDeactivatedEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent UserDeletedEvent: description: This event is sent when a user gets deleted. The event contains information about the user that was deleted and the deletion options that were used. nullable: true properties: created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: "001.003" custom: additionalProperties: {} type: object x-stream-index: "001.007" delete_conversation: description: 'The type of deletion that was used for the user''s conversations. One of: hard, soft, pruning, (empty string)' title: Delete conversation type: string x-stream-index: "004" delete_conversation_channels: description: Whether the user's conversation channels were deleted title: Delete conversation channels type: boolean x-stream-index: "008" delete_messages: description: 'The type of deletion that was used for the user''s messages. One of: hard, soft, pruning, (empty string)' title: Delete messages type: string x-stream-index: "003" delete_user: description: 'The type of deletion that was used for the user. One of: hard, soft, pruning, (empty string)' title: Delete user type: string x-stream-index: "005" hard_delete: description: Whether the user was hard deleted title: Hard delete type: boolean x-stream-index: "006" mark_messages_deleted: description: Whether the user's messages were marked as deleted title: Mark messages deleted type: boolean x-stream-index: "007" received_at: format: date-time type: number x-stream-index: "001.004" type: default: user.deleted description: 'The type of event: "user.deleted" in this case' title: Event Type type: string x-stream-index: "001.002" user: $ref: '#/components/schemas/UserResponseCommonFields' description: The user that was deleted title: User x-stream-index: "002.001" required: - type - created_at - custom - user - delete_messages - delete_conversation - delete_user - hard_delete - mark_messages_deleted - delete_conversation_channels title: UserDeletedEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent UserFlaggedEvent: description: This event is sent when a user gets flagged. The event contains information about the user that was flagged. nullable: true properties: created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: "001.003" custom: additionalProperties: {} description: Custom data title: Custom type: object x-stream-index: "006" reason: description: The reason for the flag title: Reason type: string x-stream-index: "004" received_at: format: date-time type: number x-stream-index: "001.004" target_user: $ref: '#/components/schemas/UserResponseCommonFields' description: The target user that was flagged title: Target user x-stream-index: "003" total_flags: description: The total number of flags for the user format: int32 title: Total flags type: integer x-stream-index: "005" type: default: user.flagged description: 'The type of event: "user.flagged" in this case' title: Event Type type: string x-stream-index: "001.002" user: $ref: '#/components/schemas/UserResponseCommonFields' description: The user that flagged the target user title: User x-stream-index: "002.001" required: - type - created_at - user - reason - total_flags title: UserFlaggedEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent UserGroup: properties: app_pk: format: int64 type: integer x-stream-index: "002" created_at: format: date-time type: number x-stream-index: "008" created_by: type: string x-stream-index: "010" description: type: string x-stream-index: "006" id: type: string x-stream-index: "003" members: items: $ref: '#/components/schemas/UserGroupMember' type: array x-stream-index: "007" name: type: string x-stream-index: "005" team_id: type: string x-stream-index: "004" updated_at: format: date-time type: number x-stream-index: "009" required: - app_pk - id - name - created_at - updated_at type: object UserGroupCreatedEvent: description: Emitted when a user group is created. nullable: true properties: created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: "001.003" custom: additionalProperties: {} type: object x-stream-index: "001.007" received_at: format: date-time type: number x-stream-index: "001.004" type: default: user_group.created description: 'The type of event: "user_group.created" in this case' title: Event Type type: string x-stream-index: "001.002" user: $ref: '#/components/schemas/UserResponseCommonFields' description: The user who created the group title: User x-stream-index: "002.001" user_group: $ref: '#/components/schemas/UserGroup' description: The user group that was created title: User Group x-stream-index: "003" required: - type - created_at - custom title: UserGroupCreatedEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent UserGroupDeletedEvent: description: Emitted when a user group is deleted. nullable: true properties: created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: "001.003" custom: additionalProperties: {} type: object x-stream-index: "001.007" received_at: format: date-time type: number x-stream-index: "001.004" type: default: user_group.deleted description: 'The type of event: "user_group.deleted" in this case' title: Event Type type: string x-stream-index: "001.002" user: $ref: '#/components/schemas/UserResponseCommonFields' description: The user who deleted the group title: User x-stream-index: "002.001" user_group: $ref: '#/components/schemas/UserGroup' description: The user group that was deleted title: User Group x-stream-index: "003" required: - type - created_at - custom title: UserGroupDeletedEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent UserGroupMember: nullable: true properties: app_pk: format: int64 type: integer x-stream-index: "002" created_at: format: date-time type: number x-stream-index: "006" group_id: type: string x-stream-index: "003" is_admin: type: boolean x-stream-index: "005" user_id: type: string x-stream-index: "004" required: - app_pk - group_id - user_id - is_admin - created_at type: object UserGroupMemberAddedEvent: description: Emitted when members are added to a user group. nullable: true properties: created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: "001.003" custom: additionalProperties: {} type: object x-stream-index: "001.007" members: description: The user IDs that were added items: type: string title: Members type: array x-stream-index: "004" received_at: format: date-time type: number x-stream-index: "001.004" type: default: user_group.member_added description: 'The type of event: "user_group.member_added" in this case' title: Event Type type: string x-stream-index: "001.002" user: $ref: '#/components/schemas/UserResponseCommonFields' description: The user who added the members title: User x-stream-index: "002.001" user_group: $ref: '#/components/schemas/UserGroup' description: The user group that members were added to title: User Group x-stream-index: "003" required: - type - created_at - custom - members title: UserGroupMemberAddedEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent UserGroupMemberRemovedEvent: description: Emitted when members are removed from a user group. nullable: true properties: created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: "001.003" custom: additionalProperties: {} type: object x-stream-index: "001.007" members: description: The user IDs that were removed items: type: string title: Members type: array x-stream-index: "004" received_at: format: date-time type: number x-stream-index: "001.004" type: default: user_group.member_removed description: 'The type of event: "user_group.member_removed" in this case' title: Event Type type: string x-stream-index: "001.002" user: $ref: '#/components/schemas/UserResponseCommonFields' description: The user who removed the members title: User x-stream-index: "002.001" user_group: $ref: '#/components/schemas/UserGroup' description: The user group that members were removed from title: User Group x-stream-index: "003" required: - type - created_at - custom - members title: UserGroupMemberRemovedEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent UserGroupResponse: properties: created_at: format: date-time type: number x-stream-index: "001.005" created_by: type: string x-stream-index: "001.007" description: type: string x-stream-index: "001.003" id: type: string x-stream-index: "001.001" members: items: $ref: '#/components/schemas/UserGroupMember' type: array x-stream-index: "002" name: type: string x-stream-index: "001.002" team_id: type: string x-stream-index: "001.004" updated_at: format: date-time type: number x-stream-index: "001.006" required: - id - name - created_at - updated_at type: object UserGroupUpdatedEvent: description: Emitted when a user group is updated. nullable: true properties: created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: "001.003" custom: additionalProperties: {} type: object x-stream-index: "001.007" received_at: format: date-time type: number x-stream-index: "001.004" type: default: user_group.updated description: 'The type of event: "user_group.updated" in this case' title: Event Type type: string x-stream-index: "001.002" user: $ref: '#/components/schemas/UserResponseCommonFields' description: The user who updated the group title: User x-stream-index: "002.001" user_group: $ref: '#/components/schemas/UserGroup' description: The user group that was updated title: User Group x-stream-index: "003" required: - type - created_at - custom title: UserGroupUpdatedEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent UserIdenticalContentCountParameters: properties: threshold: format: int32 type: integer x-stream-index: "001" time_window: type: string x-stream-index: "002" type: object UserIdenticalImageCountParameters: properties: match: type: string x-stream-index: "003" similarity_distance: format: int32 type: integer x-stream-index: "004" threshold: format: int32 type: integer x-stream-index: "001" time_window: type: string x-stream-index: "002" type: object UserMessagesDeletedEvent: description: This event is sent when a user's message get deleted. The event contains information about the user whose messages got deleted. nullable: true properties: channel_custom: additionalProperties: {} type: object x-stream-index: 001.001.006 channel_id: description: The ID of the channel where the target user's messages were deleted title: Channel ID type: string x-stream-index: 001.002.002 channel_member_count: format: int32 type: integer x-stream-index: 001.001.004 channel_message_count: format: int64 type: integer x-stream-index: 001.001.005 channel_type: description: The type of the channel where the target user's messages were deleted title: Channel Type type: string x-stream-index: 001.002.001 cid: description: The CID of the channel where the target user's messages were deleted title: Channel CID type: string x-stream-index: 001.001.001.002 created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: 001.001.001.001.003 custom: additionalProperties: {} type: object x-stream-index: 001.001.001.001.007 hard_delete: description: Whether Messages were hard deleted title: Hard Delete type: boolean x-stream-index: "003" received_at: format: date-time type: number x-stream-index: 001.001.001.001.004 team: description: The team of the channel where the target user's messages were deleted title: Team type: string x-stream-index: 001.001.003 type: default: user.messages.deleted description: 'The type of event: "user.messages.deleted" in this case' title: Event Type type: string x-stream-index: 001.001.001.001.002 user: $ref: '#/components/schemas/UserResponseCommonFields' description: The target user whose messages got deleted title: User x-stream-index: "002.001" required: - type - created_at - custom - user title: UserMessagesDeletedEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent 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 UserMutedEvent: description: This event is sent when a user gets muted. The event contains information about the user that was muted. nullable: true properties: created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: "001.003" custom: additionalProperties: {} type: object x-stream-index: "001.007" received_at: format: date-time type: number x-stream-index: "001.004" target_user: $ref: '#/components/schemas/UserResponseCommonFields' description: The target user that was muted title: Target user x-stream-index: "003" target_users: description: The target users that were muted items: $ref: '#/components/schemas/UserResponseCommonFields' title: Target users type: array x-stream-index: "004" type: default: user.muted description: 'The type of event: "user.muted" in this case' title: Event Type type: string x-stream-index: "001.002" user: $ref: '#/components/schemas/UserResponseCommonFields' description: The user that muted the target user title: User x-stream-index: "002.001" required: - type - created_at - custom - user title: UserMutedEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent UserReactionCountRuleParameters: properties: count: type: string x-stream-index: "003" threshold: format: int32 type: integer x-stream-index: "001" time_window: type: string x-stream-index: "002" type: object UserReactivatedEvent: description: This event is sent when a user gets reactivated. The event contains information about the user that was reactivated. nullable: true properties: created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: "001.003" created_by: $ref: '#/components/schemas/UserResponseCommonFields' description: The user that reactivated the target user title: Created by x-stream-index: "003" custom: additionalProperties: {} type: object x-stream-index: "001.007" received_at: format: date-time type: number x-stream-index: "001.004" type: default: user.reactivated description: 'The type of event: "user.reactivated" in this case' title: Event Type type: string x-stream-index: "001.002" user: $ref: '#/components/schemas/UserResponseCommonFields' description: The target user that was reactivated title: User x-stream-index: "002.001" required: - type - created_at - custom - user title: UserReactivatedEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent 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 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 UserResponseCommonFields: properties: avg_response_time: format: int32 type: integer x-stream-index: "018" banned: type: boolean x-stream-index: "012" blocked_user_ids: items: type: string type: array x-stream-index: "017" created_at: format: date-time type: number x-stream-index: "009" custom: additionalProperties: {} type: object x-stream-index: "004" deactivated_at: format: date-time type: number x-stream-index: "016" deleted_at: format: date-time type: number x-stream-index: "011" id: type: string x-stream-index: "001" image: type: string x-stream-index: "003" language: type: string x-stream-index: "005" last_active: format: date-time type: number x-stream-index: "014" name: type: string x-stream-index: "002" online: type: boolean x-stream-index: "013" revoke_tokens_issued_before: format: date-time type: number x-stream-index: "015" role: type: string x-stream-index: "006" teams: items: type: string type: array x-stream-index: "007" teams_role: additionalProperties: type: string type: object x-stream-index: "008" updated_at: format: date-time type: number x-stream-index: "010" required: - id - custom - language - role - teams - created_at - updated_at - banned - online - blocked_user_ids type: object UserResponsePrivacyFields: 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: "001.017" 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" id: type: string x-stream-index: "001.001" image: type: string x-stream-index: "001.003" invisible: type: boolean x-stream-index: "003" language: type: string x-stream-index: "001.005" last_active: format: date-time type: number x-stream-index: "001.014" 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: "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" updated_at: format: date-time type: number x-stream-index: "001.010" required: - id - custom - language - role - teams - created_at - updated_at - banned - online - blocked_user_ids type: object UserRoleParameters: properties: operator: type: string x-stream-index: "001" role: type: string x-stream-index: "002" type: object UserRuleParameters: properties: max_age: type: string x-stream-index: "001" type: object UserUnbannedEvent: description: This event is sent when a user gets unbanned. The event contains information about the user that was unbanned. nullable: true properties: channel_custom: additionalProperties: {} type: object x-stream-index: 001.001.006 channel_id: description: The ID of the channel where the target user was unbanned title: Channel ID type: string x-stream-index: 001.002.002 channel_member_count: format: int32 type: integer x-stream-index: 001.001.004 channel_message_count: format: int64 type: integer x-stream-index: 001.001.005 channel_type: description: The type of the channel where the target user was unbanned title: Channel Type type: string x-stream-index: 001.002.001 cid: description: The CID of the channel where the target user was unbanned title: Channel CID type: string x-stream-index: 001.001.001.002 created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: 001.001.001.001.003 created_by: $ref: '#/components/schemas/UserResponseCommonFields' description: The user who unbanned the target user title: Created by x-stream-index: "003" custom: additionalProperties: {} type: object x-stream-index: 001.001.001.001.007 received_at: format: date-time type: number x-stream-index: 001.001.001.001.004 shadow: description: Whether the target user was shadow unbanned title: Shadow type: boolean x-stream-index: "004" team: description: The team of the channel where the target user was unbanned title: Team type: string x-stream-index: 001.001.003 type: default: user.unbanned description: 'The type of event: "user.unbanned" in this case' title: Event Type type: string x-stream-index: 001.001.001.001.002 user: $ref: '#/components/schemas/UserResponseCommonFields' description: The target user that was unbanned title: User x-stream-index: "002.001" required: - type - created_at - custom - user title: UserUnbannedEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent UserUnmutedEvent: description: This event is sent when a user gets unmuted. The event contains information about the user that was unmuted. nullable: true properties: created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: "001.003" custom: additionalProperties: {} type: object x-stream-index: "001.007" received_at: format: date-time type: number x-stream-index: "001.004" target_user: $ref: '#/components/schemas/UserResponseCommonFields' description: The target user that was unmuted title: Target user x-stream-index: "003" target_users: description: The target users that were unmuted items: $ref: '#/components/schemas/UserResponseCommonFields' title: Target users type: array x-stream-index: "004" type: default: user.unmuted description: 'The type of event: "user.unmuted" in this case' title: Event Type type: string x-stream-index: "001.002" user: $ref: '#/components/schemas/UserResponseCommonFields' description: The user that unmuted the target user title: User x-stream-index: "002.001" required: - type - created_at - custom - user title: UserUnmutedEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent UserUnreadReminderEvent: description: Reminder events allow you to notify your users about unread messages. Reminders can be used to trigger an email, push notification or SMS to the user. nullable: true properties: channels: additionalProperties: $ref: '#/components/schemas/ChannelMessagesResponse' description: The channels with unread messages title: Channels type: object x-stream-index: "003" created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: "001.003" custom: additionalProperties: {} type: object x-stream-index: "001.007" received_at: format: date-time type: number x-stream-index: "001.004" type: default: user.unread_message_reminder description: 'The type of event: "user.unread_message_reminder" in this case' title: Event Type type: string x-stream-index: "001.002" user: $ref: '#/components/schemas/UserResponseCommonFields' description: The user that has unread messages title: User x-stream-index: "002.001" required: - type - created_at - custom - user - channels title: UserUnreadReminderEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent UserUpdatedEvent: description: This event is sent when a user gets updated. The event contains information about the updated user. nullable: true properties: created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: "001.003" custom: additionalProperties: {} type: object x-stream-index: "001.007" received_at: format: date-time type: number x-stream-index: "001.004" type: default: user.updated description: 'The type of event: "user.updated" in this case' title: Event Type type: string x-stream-index: "001.002" user: $ref: '#/components/schemas/UserResponsePrivacyFields' description: The updated user title: User x-stream-index: "002.001" required: - type - created_at - custom - user title: UserUpdatedEvent type: object x-stream-event-client-type: true x-stream-event-doc-group: other x-stream-is-event: true x-stream-ws-base-event-name: VideoEvent ValidateExternalStorageResponse: 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 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 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 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 VideoCodec: description: The codec an ingress video layer is encoded with. enum: - h264 - vp8 title: VideoCodec type: string VideoContentParameters: properties: harm_labels: items: type: string type: array x-stream-index: "001" label_operator: type: string x-stream-index: "002" 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 VideoSettings: properties: access_request_enabled: type: boolean x-stream-index: "002" camera_default_on: type: boolean x-stream-index: "004" camera_facing: $ref: '#/components/schemas/CameraFacing' 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 VoteData: properties: answer_text: type: string x-stream-index: "002" option_id: maxLength: 255 type: string x-stream-index: "001" type: object VotingVisibility: description: Whether poll votes are attributed to the voter. enum: - anonymous - public title: VotingVisibility type: string x-stream-enum-descriptions: anonymous: Votes are anonymous and cannot be attributed to individual users. public: Votes are public and can be seen by everyone. WHEvent: description: The discriminator object for all webhook events, it maps events' payload to the final type discriminator: mapping: '*': '#/components/schemas/CustomEvent' appeal.accepted: '#/components/schemas/AppealAcceptedEvent' appeal.created: '#/components/schemas/AppealCreatedEvent' appeal.rejected: '#/components/schemas/AppealRejectedEvent' campaign.completed: '#/components/schemas/CampaignCompletedEvent' campaign.started: '#/components/schemas/CampaignStartedEvent' channel.created: '#/components/schemas/ChannelCreatedEvent' channel.deleted: '#/components/schemas/ChannelDeletedEvent' channel.forked: '#/components/schemas/ChannelForkedEvent' channel.frozen: '#/components/schemas/ChannelFrozenEvent' channel.hidden: '#/components/schemas/ChannelHiddenEvent' channel.max_streak_changed: '#/components/schemas/MaxStreakChangedEvent' channel.muted: '#/components/schemas/ChannelMutedEvent' channel.rewound: '#/components/schemas/ChannelRewoundEvent' channel.truncated: '#/components/schemas/ChannelTruncatedEvent' channel.unfrozen: '#/components/schemas/ChannelUnFrozenEvent' channel.unmuted: '#/components/schemas/ChannelUnmutedEvent' channel.updated: '#/components/schemas/ChannelUpdatedEvent' channel.visible: '#/components/schemas/ChannelVisibleEvent' channel_batch_update.completed: '#/components/schemas/ChannelBatchCompletedEvent' channel_batch_update.started: '#/components/schemas/ChannelBatchStartedEvent' export.bulk_image_moderation.error: '#/components/schemas/AsyncExportErrorEvent' export.bulk_image_moderation.success: '#/components/schemas/AsyncBulkImageModerationEvent' export.channels.error: '#/components/schemas/AsyncExportErrorEvent' export.channels.success: '#/components/schemas/AsyncExportChannelsEvent' export.label_results.error: '#/components/schemas/AsyncExportErrorEvent' export.label_results.success: '#/components/schemas/AsyncExportLabelResultsEvent' export.moderation_logs.error: '#/components/schemas/AsyncExportErrorEvent' export.moderation_logs.success: '#/components/schemas/AsyncExportModerationLogsEvent' export.review_queue.error: '#/components/schemas/AsyncExportErrorEvent' export.review_queue.success: '#/components/schemas/AsyncExportReviewQueueEvent' export.users.error: '#/components/schemas/AsyncExportErrorEvent' export.users.success: '#/components/schemas/AsyncExportUsersEvent' flag.updated: '#/components/schemas/FlagUpdatedEvent' import.error: '#/components/schemas/AsyncImportErrorEvent' import.success: '#/components/schemas/AsyncImportSuccessEvent' member.added: '#/components/schemas/MemberAddedEvent' member.removed: '#/components/schemas/MemberRemovedEvent' member.updated: '#/components/schemas/MemberUpdatedEvent' message.deleted: '#/components/schemas/MessageDeletedEvent' message.flagged: '#/components/schemas/MessageFlaggedEvent' message.new: '#/components/schemas/MessageNewEvent' message.pending: '#/components/schemas/PendingMessageEvent' message.read: '#/components/schemas/MessageReadEvent' message.unblocked: '#/components/schemas/MessageUnblockedEvent' message.undeleted: '#/components/schemas/MessageUndeletedEvent' message.updated: '#/components/schemas/MessageUpdatedEvent' moderation.analysis.failed: '#/components/schemas/ModerationAnalysisFailedEvent' moderation.custom_action: '#/components/schemas/ModerationCustomActionEvent' moderation.flagged: '#/components/schemas/ModerationFlaggedEvent' moderation.image_analysis.complete: '#/components/schemas/ModerationImageAnalysisCompleteEvent' moderation.mark_reviewed: '#/components/schemas/ModerationMarkReviewedEvent' moderation.text_analysis.complete: '#/components/schemas/ModerationTextAnalysisCompleteEvent' moderation_check.completed: '#/components/schemas/ModerationCheckCompletedEvent' moderation_rule.triggered: '#/components/schemas/ModerationRulesTriggeredEvent' notification.mark_unread: '#/components/schemas/NotificationMarkUnreadEvent' notification.reminder_due: '#/components/schemas/ReminderNotificationEvent' notification.thread_message_new: '#/components/schemas/NotificationThreadMessageNewEvent' poll.closed: '#/components/schemas/PollClosedEvent' poll.deleted: '#/components/schemas/PollDeletedEvent' poll.updated: '#/components/schemas/PollUpdatedEvent' poll.vote_casted: '#/components/schemas/PollVoteCastedEvent' poll.vote_changed: '#/components/schemas/PollVoteChangedEvent' poll.vote_removed: '#/components/schemas/PollVoteRemovedEvent' reaction.deleted: '#/components/schemas/ReactionDeletedEvent' reaction.new: '#/components/schemas/ReactionNewEvent' reaction.updated: '#/components/schemas/ReactionUpdatedEvent' reminder.created: '#/components/schemas/ReminderCreatedEvent' reminder.deleted: '#/components/schemas/ReminderDeletedEvent' reminder.updated: '#/components/schemas/ReminderUpdatedEvent' review_queue_item.new: '#/components/schemas/ReviewQueueItemNewEvent' review_queue_item.updated: '#/components/schemas/ReviewQueueItemUpdatedEvent' scheduled_message.failed: '#/components/schemas/ScheduledMessageFailedEvent' scheduled_message.sent: '#/components/schemas/ScheduledMessageSentEvent' thread.updated: '#/components/schemas/ThreadUpdatedEvent' user.banned: '#/components/schemas/UserBannedEvent' user.claimed: '#/components/schemas/UserClaimedEvent' user.deactivated: '#/components/schemas/UserDeactivatedEvent' user.deleted: '#/components/schemas/UserDeletedEvent' user.flagged: '#/components/schemas/UserFlaggedEvent' user.messages.deleted: '#/components/schemas/UserMessagesDeletedEvent' user.muted: '#/components/schemas/UserMutedEvent' user.reactivated: '#/components/schemas/UserReactivatedEvent' user.unbanned: '#/components/schemas/UserUnbannedEvent' user.unmuted: '#/components/schemas/UserUnmutedEvent' user.unread_message_reminder: '#/components/schemas/UserUnreadReminderEvent' user.updated: '#/components/schemas/UserUpdatedEvent' user_group.created: '#/components/schemas/UserGroupCreatedEvent' user_group.deleted: '#/components/schemas/UserGroupDeletedEvent' user_group.member_added: '#/components/schemas/UserGroupMemberAddedEvent' user_group.member_removed: '#/components/schemas/UserGroupMemberRemovedEvent' user_group.updated: '#/components/schemas/UserGroupUpdatedEvent' propertyName: type oneOf: - $ref: '#/components/schemas/AppealAcceptedEvent' - $ref: '#/components/schemas/AppealCreatedEvent' - $ref: '#/components/schemas/AppealRejectedEvent' - $ref: '#/components/schemas/AsyncBulkImageModerationEvent' - $ref: '#/components/schemas/AsyncExportChannelsEvent' - $ref: '#/components/schemas/AsyncExportErrorEvent' - $ref: '#/components/schemas/AsyncExportErrorEvent' - $ref: '#/components/schemas/AsyncExportErrorEvent' - $ref: '#/components/schemas/AsyncExportErrorEvent' - $ref: '#/components/schemas/AsyncExportErrorEvent' - $ref: '#/components/schemas/AsyncExportErrorEvent' - $ref: '#/components/schemas/AsyncExportLabelResultsEvent' - $ref: '#/components/schemas/AsyncExportModerationLogsEvent' - $ref: '#/components/schemas/AsyncExportReviewQueueEvent' - $ref: '#/components/schemas/AsyncExportUsersEvent' - $ref: '#/components/schemas/AsyncImportErrorEvent' - $ref: '#/components/schemas/AsyncImportSuccessEvent' - $ref: '#/components/schemas/CampaignCompletedEvent' - $ref: '#/components/schemas/CampaignStartedEvent' - $ref: '#/components/schemas/ChannelBatchCompletedEvent' - $ref: '#/components/schemas/ChannelBatchStartedEvent' - $ref: '#/components/schemas/ChannelCreatedEvent' - $ref: '#/components/schemas/ChannelDeletedEvent' - $ref: '#/components/schemas/ChannelForkedEvent' - $ref: '#/components/schemas/ChannelFrozenEvent' - $ref: '#/components/schemas/ChannelHiddenEvent' - $ref: '#/components/schemas/ChannelMutedEvent' - $ref: '#/components/schemas/ChannelRewoundEvent' - $ref: '#/components/schemas/ChannelTruncatedEvent' - $ref: '#/components/schemas/ChannelUnFrozenEvent' - $ref: '#/components/schemas/ChannelUnmutedEvent' - $ref: '#/components/schemas/ChannelUpdatedEvent' - $ref: '#/components/schemas/ChannelVisibleEvent' - $ref: '#/components/schemas/CustomEvent' - $ref: '#/components/schemas/FlagUpdatedEvent' - $ref: '#/components/schemas/MaxStreakChangedEvent' - $ref: '#/components/schemas/MemberAddedEvent' - $ref: '#/components/schemas/MemberRemovedEvent' - $ref: '#/components/schemas/MemberUpdatedEvent' - $ref: '#/components/schemas/MessageDeletedEvent' - $ref: '#/components/schemas/MessageFlaggedEvent' - $ref: '#/components/schemas/MessageNewEvent' - $ref: '#/components/schemas/MessageReadEvent' - $ref: '#/components/schemas/MessageUnblockedEvent' - $ref: '#/components/schemas/MessageUndeletedEvent' - $ref: '#/components/schemas/MessageUpdatedEvent' - $ref: '#/components/schemas/ModerationAnalysisFailedEvent' - $ref: '#/components/schemas/ModerationCheckCompletedEvent' - $ref: '#/components/schemas/ModerationCustomActionEvent' - $ref: '#/components/schemas/ModerationFlaggedEvent' - $ref: '#/components/schemas/ModerationImageAnalysisCompleteEvent' - $ref: '#/components/schemas/ModerationMarkReviewedEvent' - $ref: '#/components/schemas/ModerationRulesTriggeredEvent' - $ref: '#/components/schemas/ModerationTextAnalysisCompleteEvent' - $ref: '#/components/schemas/NotificationMarkUnreadEvent' - $ref: '#/components/schemas/NotificationThreadMessageNewEvent' - $ref: '#/components/schemas/PendingMessageEvent' - $ref: '#/components/schemas/PollClosedEvent' - $ref: '#/components/schemas/PollDeletedEvent' - $ref: '#/components/schemas/PollUpdatedEvent' - $ref: '#/components/schemas/PollVoteCastedEvent' - $ref: '#/components/schemas/PollVoteChangedEvent' - $ref: '#/components/schemas/PollVoteRemovedEvent' - $ref: '#/components/schemas/ReactionDeletedEvent' - $ref: '#/components/schemas/ReactionNewEvent' - $ref: '#/components/schemas/ReactionUpdatedEvent' - $ref: '#/components/schemas/ReminderCreatedEvent' - $ref: '#/components/schemas/ReminderDeletedEvent' - $ref: '#/components/schemas/ReminderNotificationEvent' - $ref: '#/components/schemas/ReminderUpdatedEvent' - $ref: '#/components/schemas/ReviewQueueItemNewEvent' - $ref: '#/components/schemas/ReviewQueueItemUpdatedEvent' - $ref: '#/components/schemas/ScheduledMessageFailedEvent' - $ref: '#/components/schemas/ScheduledMessageSentEvent' - $ref: '#/components/schemas/ThreadUpdatedEvent' - $ref: '#/components/schemas/UserBannedEvent' - $ref: '#/components/schemas/UserClaimedEvent' - $ref: '#/components/schemas/UserDeactivatedEvent' - $ref: '#/components/schemas/UserDeletedEvent' - $ref: '#/components/schemas/UserFlaggedEvent' - $ref: '#/components/schemas/UserGroupCreatedEvent' - $ref: '#/components/schemas/UserGroupDeletedEvent' - $ref: '#/components/schemas/UserGroupMemberAddedEvent' - $ref: '#/components/schemas/UserGroupMemberRemovedEvent' - $ref: '#/components/schemas/UserGroupUpdatedEvent' - $ref: '#/components/schemas/UserMessagesDeletedEvent' - $ref: '#/components/schemas/UserMutedEvent' - $ref: '#/components/schemas/UserReactivatedEvent' - $ref: '#/components/schemas/UserUnbannedEvent' - $ref: '#/components/schemas/UserUnmutedEvent' - $ref: '#/components/schemas/UserUnreadReminderEvent' - $ref: '#/components/schemas/UserUpdatedEvent' WSEvent: description: Represents an BaseEvent that happened in Stream Chat properties: automoderation: type: boolean x-stream-index: "023" automoderation_scores: $ref: '#/components/schemas/ModerationResponse' x-stream-index: "024" channel: $ref: '#/components/schemas/ChannelResponse' x-stream-index: "011" channel_id: type: string x-stream-index: "004" channel_last_message_at: format: date-time type: number x-stream-index: "007" channel_type: type: string x-stream-index: "005" cid: type: string x-stream-index: "003" connection_id: type: string x-stream-index: "002" created_at: format: date-time type: number x-stream-index: "028" created_by: $ref: '#/components/schemas/UserResponse' x-stream-index: "022" custom: additionalProperties: {} type: object x-stream-index: "027" me: $ref: '#/components/schemas/OwnUserResponse' x-stream-index: "019" member: $ref: '#/components/schemas/ChannelMemberResponse' x-stream-index: "014" message: $ref: '#/components/schemas/MessageResponse' x-stream-index: "008" message_update: $ref: '#/components/schemas/MessageUpdate' x-stream-index: "009" parent_id: type: string x-stream-index: "025" poll: $ref: '#/components/schemas/PollResponseData' x-stream-index: "015" poll_vote: $ref: '#/components/schemas/PollVoteResponseData' x-stream-index: "016" reaction: $ref: '#/components/schemas/ReactionResponse' x-stream-index: "010" reason: type: string x-stream-index: "021" team: type: string x-stream-index: "026" thread: $ref: '#/components/schemas/ThreadResponse' x-stream-index: "013" thread_id: type: string x-stream-index: "012" type: type: string x-stream-index: "001" user: $ref: '#/components/schemas/UserResponse' x-stream-index: "017" user_id: type: string x-stream-index: "018" watcher_count: format: int32 type: integer x-stream-index: "020" required: - type - custom - created_at title: Event type: object x-stream-docs-page-id: event_object WebhookFailoverConfig: properties: gcs_bucket: type: string x-stream-index: "002" gcs_credentials: type: string x-stream-index: "004" gcs_path: type: string x-stream-index: "003" s3_api_key: type: string x-stream-index: "008" s3_bucket: type: string x-stream-index: "005" s3_path: type: string x-stream-index: "006" s3_region: type: string x-stream-index: "007" s3_role_arn: type: string x-stream-index: "010" s3_secret: type: string x-stream-index: "009" type: type: string x-stream-index: "001" type: object WrappedUnreadCountsResponse: description: The total unread information from the current user. nullable: true properties: channel_type: description: The unread information per channel type. items: $ref: '#/components/schemas/UnreadCountsChannelType' title: Channel type type: array x-stream-index: "001.005" channels: description: The unread information per channel. items: $ref: '#/components/schemas/UnreadCountsChannel' title: Channels type: array x-stream-index: "001.004" duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: "002.001" threads: description: The unread information per thread. items: $ref: '#/components/schemas/UnreadCountsThread' title: Threads type: array x-stream-index: "001.006" total_unread_count: description: The total number of unread messages. format: int32 title: Total unread count type: integer x-stream-index: "001.001" total_unread_count_by_team: additionalProperties: format: int32 type: integer description: The total number of unread messages grouped by team. title: Total unread count by team type: object x-stream-index: "001.003" total_unread_threads_count: description: The total number of unread threads. format: int32 title: Total unread threads count type: integer x-stream-index: "001.002" required: - total_unread_count - total_unread_threads_count - channels - channel_type - threads - duration type: object XiaomiConfig: properties: Disabled: type: boolean writeOnly: true x-stream-index: "003" package_name: type: string x-stream-index: "001" secret: type: string x-stream-index: "002" type: object XiaomiConfigFields: properties: enabled: type: boolean x-stream-index: "001" package_name: type: string x-stream-index: "002" secret: type: string x-stream-index: "003" required: - enabled 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 info: title: Stream API version: v240.7.4 x-stream-breaking-changes: go: - CHA-3441 (2026-10-08) - CHA-5080 (2026-10-16) - CHA-5081 (2026-10-16) - CHA-5082 (2026-10-16) - CHA-6186 (2026-10-19) - FEEDS-1972 (2026-10-06) - FLU-1102 (2026-10-23) - FLU-1103 (2026-10-26) - FLU-1105 (2026-10-27) - FLU-1105 (2026-10-28) - FLU-755 (2026-10-14) - FLU-755 (2026-10-21) - MOD2-1119 (2026-10-13) - MOD2-1482 (2026-10-02) - MOD2-789 (2026-10-05) wire: - CHA-0 (2026-04-14) - CHA-2563 (2026-03-24) - CHA-3037 (2026-08-06) - CHA-3079 (2026-04-29) - CHA-3386 (2026-07-14) - CHA-3449 (2026-10-22) - CHA-4734 (2026-08-24) - CHA-4810 (2026-08-19) - CHA-4993 (2026-08-28) - CHA-5081 (2026-09-02) - CHA-5082 (2026-09-02) - CHA-6186 (2026-10-19) - FEEDS-1875 (2026-09-09) - FEEDS-1972 (2026-10-06) - FEEDS-1996 (2026-11-03) - FEEDS-2162 (2026-10-27) - FLU-1103 (2026-10-26) - FLU-1105 (2026-10-27) - FLU-1105 (2026-10-28) - MOD2-1189 (2026-07-29) - MOD2-1482 (2026-10-02) - MOD2-1486 (2026-10-02) - MOD2-789 (2026-10-05) openapi: 3.0.3 paths: /api/v2/app: get: description: | This Method returns the application settings operationId: GetApp responses: "200": content: application/json: schema: $ref: '#/components/schemas/GetApplicationResponse' 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 App Settings tags: - product:common patch: description: | This Method updates one or more application settings operationId: UpdateApp requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateAppRequest' required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/Response' 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: Update App Settings tags: - product:common /api/v2/blocklists: get: description: | Returns all available block lists operationId: ListBlockLists parameters: - in: query name: team schema: type: string writeOnly: true x-stream-index: "001" - in: query name: cursor schema: type: string writeOnly: true x-stream-index: "002" - in: query name: limit schema: format: int32 maximum: 200 minimum: 1 type: integer writeOnly: true x-stream-index: "003" responses: "200": content: application/json: schema: $ref: '#/components/schemas/ListBlockListResponse' 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: List block lists tags: - product:common post: description: | Creates a new application blocklist, once created the blocklist can be used by any channel type operationId: CreateBlockList requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateBlockListRequest' description: Block list required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/CreateBlockListResponse' 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: Create block list tags: - product:common /api/v2/blocklists/{id}/import: post: description: | Enqueues an asynchronous bulk import of items into an existing blocklist. Returns a task ID that can be polled via GET /tasks/{id} to observe progress. AddItems is idempotent: items already present are skipped without error. For lists exceeding the HTTP request-body cap, issue repeated import calls each carrying a bounded slice of items — the task result accumulates correctly. operationId: ImportBlockList parameters: - in: path name: id required: true schema: type: string writeOnly: true x-stream-index: "001" requestBody: content: application/json: schema: $ref: '#/components/schemas/ImportBlockListRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/ImportBlockListResponse' 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: Import block list items tags: - product:common /api/v2/blocklists/{name}: delete: description: | Deletes previously created application blocklist operationId: DeleteBlockList parameters: - in: path name: name required: true schema: type: string writeOnly: true x-stream-index: "001" - in: query name: team schema: type: string x-stream-index: "002" - in: query name: user_id schema: type: string writeOnly: true x-stream-index: "003.001" responses: "200": content: application/json: schema: $ref: '#/components/schemas/Response' 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 block list tags: - product:common get: description: | Returns block list by given name operationId: GetBlockList parameters: - in: path name: name required: true schema: description: Block list name title: Name type: string writeOnly: true x-stream-index: "001" - in: query name: team schema: type: string writeOnly: true x-stream-index: "002" responses: "200": content: application/json: schema: $ref: '#/components/schemas/GetBlockListResponse' description: GetBlockListResponse "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 block list tags: - product:common put: description: | Updates contents of the block list operationId: UpdateBlockList parameters: - in: path name: name required: true schema: description: Block list name title: Name type: string writeOnly: true x-stream-index: "001" requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateBlockListRequest' description: Update block list required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/UpdateBlockListResponse' 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: Update block list tags: - product:common /api/v2/chat/campaigns: post: description: | Creates a campaign operationId: CreateCampaign requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateCampaignRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/CreateCampaignResponse' 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: Create campaign tags: - product:chat /api/v2/chat/campaigns/{id}: delete: description: | Delete campaign operationId: DeleteCampaign parameters: - in: path name: id required: true schema: description: The ID of the campaign (uuid) maxLength: 255 title: Campaign ID type: string writeOnly: true x-stream-index: "001" responses: "200": content: application/json: schema: $ref: '#/components/schemas/DeleteCampaignResponse' 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 campaign tags: - product:chat get: description: | Get campaign by ID. operationId: GetCampaign parameters: - in: path name: id required: true schema: description: The ID of the campaign (uuid) maxLength: 255 title: Campaign ID type: string writeOnly: true x-stream-index: "001" - in: query name: prev schema: description: Token for the previous page of campaign users title: Previous Users Page type: string writeOnly: true x-stream-index: "002.001" - in: query name: next schema: description: Token for the next page of campaign users title: Next Users Page type: string writeOnly: true x-stream-index: "002.002" - in: query name: limit schema: description: 'Maximum number of campaign users to return in a single request (max: 1000)' format: int32 maximum: 1000 minimum: 0 title: Users Limit type: integer writeOnly: true x-stream-index: "002.003" responses: "200": content: application/json: schema: $ref: '#/components/schemas/GetCampaignResponse' 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 campaign tags: - product:chat put: description: | Updates a campaign operationId: UpdateCampaign parameters: - in: path name: id required: true schema: maxLength: 255 type: string writeOnly: true x-stream-index: "002" requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateCampaignRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/UpdateCampaignResponse' 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: Update campaign tags: - product:chat /api/v2/chat/campaigns/{id}/start: post: description: | Starts or schedules a campaign operationId: StartCampaign parameters: - in: path name: id required: true schema: maxLength: 255 type: string writeOnly: true x-stream-index: "001" requestBody: content: application/json: schema: $ref: '#/components/schemas/StartCampaignRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/StartCampaignResponse' 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: Start/schedule campaign tags: - product:chat /api/v2/chat/campaigns/{id}/stop: post: description: | Stops a campaign operationId: StopCampaign parameters: - in: path name: id required: true schema: maxLength: 255 type: string writeOnly: true x-stream-index: "001" responses: "201": content: application/json: schema: $ref: '#/components/schemas/StopCampaignResponse' 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: Stop campaign tags: - product:chat /api/v2/chat/campaigns/query: post: description: | Query campaigns with filter query operationId: QueryCampaigns requestBody: content: application/json: schema: $ref: '#/components/schemas/QueryCampaignsRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/QueryCampaignsResponse' 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 campaigns tags: - product:chat /api/v2/chat/channels: post: description: | Query channels with filter query operationId: QueryChannels requestBody: content: application/json: schema: $ref: '#/components/schemas/QueryChannelsRequest' description: Query Channels Request required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/QueryChannelsResponse' description: Channels list "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 channels tags: - product:chat /api/v2/chat/channels/{type}/{id}: delete: description: | Deletes channel Sends events: - channel.deleted operationId: DeleteChannel parameters: - in: path name: type required: true schema: description: Channel type to interact with title: Channel type type: string writeOnly: true x-stream-index: "001.001" - in: path name: id required: true schema: description: Channel ID to interact with title: Channel ID type: string writeOnly: true x-stream-index: "001.002" - in: query name: hard_delete schema: description: Server-side only. When true, the channel and all its resources are permanently deleted instead of soft-deleted. title: Hard delete type: boolean x-stream-index: "002" - in: query name: skip_truncate schema: description: Server-side only. When true, the soft delete preserves message history instead of hiding it, so a later recreation of the same channel ID restores the full history. Only supported for distinct channels. Cannot be combined with hard_delete. title: Skip truncate type: boolean x-stream-index: "003" responses: "200": content: application/json: schema: $ref: '#/components/schemas/DeleteChannelResponse' 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 channel tags: - product:chat get: description: | Returns a channel by its CID without creating it. Responds with 404 when the channel does not exist, so it doubles as an existence check. Pass state=true to also load messages, read state and watchers, and the messages_id_* parameters to page those messages by message ID. operationId: GetChannel parameters: - in: path name: type required: true schema: description: Channel type to interact with title: Channel type type: string writeOnly: true x-stream-index: "001.001" - in: path name: id required: true schema: description: Channel ID to interact with title: Channel ID type: string writeOnly: true x-stream-index: "001.002" - in: query name: state schema: type: boolean x-stream-index: "002" - in: query name: messages_limit schema: format: int32 minimum: 0 type: integer x-stream-index: "003" - in: query name: members_limit schema: format: int32 minimum: 0 type: integer x-stream-index: "004" - in: query name: watchers_limit schema: format: int32 minimum: 0 type: integer x-stream-index: "005" - in: query name: messages_id_lt schema: type: string x-stream-index: "006" - in: query name: messages_id_lte schema: type: string x-stream-index: "007" - in: query name: messages_id_gt schema: type: string x-stream-index: "008" - in: query name: messages_id_gte schema: type: string x-stream-index: "009" - in: query name: messages_id_around schema: type: string x-stream-index: "010" - in: query name: user_id schema: type: string writeOnly: true x-stream-index: "012" responses: "200": content: application/json: schema: $ref: '#/components/schemas/ChannelStateResponse' 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 channel tags: - product:chat patch: description: | Updates certain fields of the channel Sends events: - channel.updated operationId: UpdateChannelPartial parameters: - in: path name: type required: true schema: description: Channel type to interact with title: Channel type type: string writeOnly: true x-stream-index: "001.001" - in: path name: id required: true schema: description: Channel ID to interact with title: Channel ID type: string writeOnly: true x-stream-index: "001.002" requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateChannelPartialRequest' description: UpdateChannelPartialRequest required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/UpdateChannelPartialResponse' 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: Partially update channel tags: - product:chat post: description: | Change channel data Sends events: - channel.updated - member.added - member.removed - member.updated - message.new operationId: UpdateChannel parameters: - in: path name: type required: true schema: type: string writeOnly: true x-stream-index: 016.002.001 - in: path name: id required: true schema: type: string writeOnly: true x-stream-index: 016.002.002 requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateChannelRequest' description: Channel update request required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/UpdateChannelResponse' 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: Update channel tags: - product:chat /api/v2/chat/channels/{type}/{id}/bans/query: post: description: | Lists the users banned from a channel, by a ban on the channel or by a future channel ban issued by the channel's creator, with one entry per user operationId: QueryChannelBans parameters: - in: path name: type required: true schema: description: Channel type to interact with title: Channel type type: string writeOnly: true x-stream-index: "004.001" - in: path name: id required: true schema: description: Channel ID to interact with title: Channel ID type: string writeOnly: true x-stream-index: "004.002" requestBody: content: application/json: schema: $ref: '#/components/schemas/QueryChannelBansRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/QueryChannelBansResponse' 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 channel bans tags: - product:chat /api/v2/chat/channels/{type}/{id}/draft: delete: description: | Deletes a draft Sends events: - draft.deleted operationId: DeleteDraft parameters: - in: path name: type required: true schema: type: string writeOnly: true x-stream-index: "002.001" - in: path name: id required: true schema: type: string writeOnly: true x-stream-index: "002.002" - in: query name: parent_id schema: description: Parent message ID title: string type: string writeOnly: true x-stream-index: "001" - in: query name: user_id schema: type: string writeOnly: true x-stream-index: "003.001" responses: "200": content: application/json: schema: $ref: '#/components/schemas/Response' 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 draft tags: - product:chat get: description: | Get a draft operationId: GetDraft parameters: - in: path name: type required: true schema: type: string writeOnly: true x-stream-index: "002.001" - in: path name: id required: true schema: type: string writeOnly: true x-stream-index: "002.002" - in: query name: parent_id schema: description: Parent message ID title: string type: string writeOnly: true x-stream-index: "001" - in: query name: user_id schema: type: string writeOnly: true x-stream-index: "003.001" responses: "200": content: application/json: schema: $ref: '#/components/schemas/GetDraftResponse' 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 draft tags: - product:chat /api/v2/chat/channels/{type}/{id}/event: post: description: | Sends event to the channel operationId: SendEvent parameters: - in: path name: type required: true schema: description: Channel type to interact with title: Channel type type: string writeOnly: true x-stream-index: "002.001" - in: path name: id required: true schema: description: Channel ID to interact with title: Channel ID type: string writeOnly: true x-stream-index: "002.002" requestBody: content: application/json: schema: $ref: '#/components/schemas/SendEventRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/EventResponse' 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: Send event tags: - product:chat /api/v2/chat/channels/{type}/{id}/file: delete: description: | Deletes previously uploaded file operationId: DeleteChannelFile parameters: - in: path name: type required: true schema: description: The type of file title: Type type: string writeOnly: true x-stream-index: "002.001" - in: path name: id required: true schema: description: File ID title: ID type: string writeOnly: true x-stream-index: "002.002" - in: query name: url schema: description: File URL to delete title: URL type: string writeOnly: true x-stream-index: "001" responses: "200": content: application/json: schema: $ref: '#/components/schemas/Response' 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 file tags: - product:chat post: description: | Uploads file operationId: UploadChannelFile parameters: - in: path name: type required: true schema: type: string writeOnly: true x-stream-index: "001.001" - in: path name: id required: true schema: type: string writeOnly: true x-stream-index: "001.002" requestBody: content: multipart/form-data: schema: $ref: '#/components/schemas/UploadChannelFileRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/UploadChannelFileResponse' 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: Upload file tags: - product:chat /api/v2/chat/channels/{type}/{id}/fork: post: description: | Forks an agent channel at one of its messages: creates a new agent channel holding a copy of the messages a client sees up to it, itself included, with their replies up to it. The source channel is not changed. Reactions, pins, polls, read state, mutes, reminders, moderation flags and edit history are not copied. Fork only at a message the agent has finished writing. The request copies the newest 100 messages and their replies, so the fork is usable when it returns (fewer when the newest 1,000 messages are mostly deleted or hidden); older history is copied by a background task (`fork.status` is `backfilling`, `fork.task_id` names the task) and `channel.forked` is sent once every message is copied. A retry with the same channel ID and message returns the fork. Only available for the `agent` channel type. Sends events: - channel.created - channel.forked operationId: ForkChannel parameters: - in: path name: type required: true schema: type: string writeOnly: true x-stream-index: "001.001" - in: path name: id required: true schema: type: string writeOnly: true x-stream-index: "001.002" requestBody: content: application/json: schema: $ref: '#/components/schemas/ForkChannelRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/ForkChannelResponse' 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: Fork channel tags: - product:chat /api/v2/chat/channels/{type}/{id}/fork/message_ids: post: description: | Maps messages of a fork's source channel to their copies in the fork. Call it on the fork. A source message the fork holds no copy of is left out of the map. operationId: ForkMessageIDs parameters: - in: path name: type required: true schema: type: string writeOnly: true x-stream-index: "001.001" - in: path name: id required: true schema: type: string writeOnly: true x-stream-index: "001.002" requestBody: content: application/json: schema: $ref: '#/components/schemas/ForkMessageIDsRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/ForkMessageIDsResponse' 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: Fork message IDs tags: - product:chat /api/v2/chat/channels/{type}/{id}/hide: post: description: | Marks channel as hidden for current user Sends events: - channel.hidden operationId: HideChannel parameters: - in: path name: type required: true schema: type: string writeOnly: true x-stream-index: "002.001" - in: path name: id required: true schema: type: string writeOnly: true x-stream-index: "002.002" requestBody: content: application/json: schema: $ref: '#/components/schemas/HideChannelRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/HideChannelResponse' 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: Hide channel tags: - product:chat /api/v2/chat/channels/{type}/{id}/image: delete: description: | Deletes previously uploaded image operationId: DeleteChannelImage parameters: - in: path name: type required: true schema: description: The type of file title: Type type: string writeOnly: true x-stream-index: "002.001" - in: path name: id required: true schema: description: File ID title: ID type: string writeOnly: true x-stream-index: "002.002" - in: query name: url schema: description: File URL to delete title: URL type: string writeOnly: true x-stream-index: "001" responses: "200": content: application/json: schema: $ref: '#/components/schemas/Response' 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 image tags: - product:chat post: description: | Uploads image operationId: UploadChannelImage parameters: - in: path name: type required: true schema: type: string writeOnly: true x-stream-index: 001.001.001 - in: path name: id required: true schema: type: string writeOnly: true x-stream-index: 001.001.002 requestBody: content: multipart/form-data: schema: $ref: '#/components/schemas/UploadChannelRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/UploadChannelResponse' 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: Upload image tags: - product:chat /api/v2/chat/channels/{type}/{id}/member: patch: description: |2+ operationId: UpdateMemberPartial parameters: - in: path name: type required: true schema: type: string writeOnly: true x-stream-index: "003.001" - in: path name: id required: true schema: type: string writeOnly: true x-stream-index: "003.002" - in: query name: user_id schema: type: string writeOnly: true x-stream-index: "005.001" requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateMemberPartialRequest' required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/UpdateMemberPartialResponse' 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: Partially channel member update tags: - product:chat /api/v2/chat/channels/{type}/{id}/message: post: description: | Sends new message to the specified channel Sends events: - channel.visible - message.new - message.updated - scheduled_message.created operationId: SendMessage parameters: - in: path name: type required: true schema: description: Channel type to interact with title: Channel type type: string writeOnly: true x-stream-index: "012.001" - in: path name: id required: true schema: description: Channel ID to interact with title: Channel ID type: string writeOnly: true x-stream-index: "012.002" requestBody: content: application/json: schema: $ref: '#/components/schemas/SendMessageRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/SendMessageResponse' 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: Send new message tags: - product:chat /api/v2/chat/channels/{type}/{id}/messages: get: description: | Returns list messages found by IDs operationId: GetManyMessages parameters: - in: path name: type required: true schema: type: string writeOnly: true x-stream-index: "003.001" - in: path name: id required: true schema: type: string writeOnly: true x-stream-index: "003.002" - in: query name: ids required: true schema: description: List of comma-separated IDs items: type: string maxItems: 50 minItems: 1 title: IDs type: array writeOnly: true x-stream-index: "001" - in: query name: member_custom_include schema: description: Top-level keys of each message sender's channel-member custom data to include under member.custom (max 8 keys, 64 chars each) items: type: string maxItems: 8 title: Member custom include type: array writeOnly: true x-stream-index: "002" responses: "200": content: application/json: schema: $ref: '#/components/schemas/GetManyMessagesResponse' 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 many messages tags: - product:chat /api/v2/chat/channels/{type}/{id}/pinned_messages: get: description: | Returns pinned messages for the channel operationId: GetPinnedMessages parameters: - in: path name: type required: true schema: description: Channel type to interact with title: Channel type type: string writeOnly: true x-stream-index: "004.001" - in: path name: id required: true schema: description: Channel ID to interact with title: Channel ID type: string writeOnly: true x-stream-index: "004.002" - in: query name: limit schema: description: Number of pinned messages to return. Defaults to 20, capped at 300 format: int32 minimum: 0 title: Limit type: integer x-stream-index: "001.001" - in: query name: offset schema: description: Number of pinned messages to skip format: int32 title: Offset type: integer x-stream-index: "001.002" - in: query name: id_gte schema: description: Return pinned messages with an ID greater than or equal to this value title: ID greater than or equal type: string x-stream-index: "001.003" - in: query name: id_gt schema: description: Return pinned messages with an ID greater than this value title: ID greater than type: string x-stream-index: "001.004" - in: query name: id_lte schema: description: Return pinned messages with an ID less than or equal to this value title: ID less than or equal type: string x-stream-index: "001.005" - in: query name: id_lt schema: description: Return pinned messages with an ID less than this value title: ID less than type: string x-stream-index: "001.006" - in: query name: pinned_at_after_or_equal schema: description: Return pinned messages pinned at or after this date format: date-time title: Pinned at after or equal type: string x-stream-index: "001.007" - in: query name: pinned_at_after schema: description: Return pinned messages pinned after this date format: date-time title: Pinned at after type: string x-stream-index: "001.008" - in: query name: pinned_at_before_or_equal schema: description: Return pinned messages pinned at or before this date format: date-time title: Pinned at before or equal type: string x-stream-index: "001.009" - in: query name: pinned_at_before schema: description: Return pinned messages pinned before this date format: date-time title: Pinned at before type: string x-stream-index: "001.010" - in: query name: id_around schema: description: Return the page of pinned messages centered on this message ID title: ID around type: string x-stream-index: "001.011" - in: query name: pinned_at_around schema: description: Return the page of pinned messages centered on this pin date format: date-time title: Pinned at around type: string x-stream-index: "001.012" - content: application/json: schema: description: Sort parameter, at most one field. Defaults to pinned_at descending items: $ref: '#/components/schemas/SortParamRequest' maxItems: 1 title: Sort type: array x-stream-index: "002" in: query name: sort - in: query name: member_custom_include schema: description: Top-level keys of each message sender's channel-member custom data to include under member.custom (max 8 keys, 64 chars each) items: type: string maxItems: 8 title: Member custom include type: array x-stream-index: "003" - in: query name: user_id schema: type: string writeOnly: true x-stream-index: "006" responses: "200": content: application/json: schema: $ref: '#/components/schemas/GetPinnedMessagesResponse' 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 pinned messages tags: - product:chat /api/v2/chat/channels/{type}/{id}/query: post: description: | This Method creates a channel or returns an existing one with matching attributes Sends events: - channel.created - member.added - member.removed - member.updated - user.watching.start operationId: GetOrCreateChannel parameters: - in: path name: type required: true schema: description: Channel type maxLength: 64 title: Type type: string writeOnly: true x-stream-index: "001" - in: path name: id required: true schema: description: Channel ID (maximum length of 64 characters) title: ID type: string writeOnly: true x-stream-index: "002" requestBody: content: application/json: schema: $ref: '#/components/schemas/ChannelGetOrCreateRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/ChannelStateResponse' 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 or create channel tags: - product:chat /api/v2/chat/channels/{type}/{id}/read: post: description: | Marks channel as read up to the specific message Sends events: - message.read operationId: MarkRead parameters: - in: path name: type required: true schema: type: string writeOnly: true x-stream-index: "003.001" - in: path name: id required: true schema: type: string writeOnly: true x-stream-index: "003.002" requestBody: content: application/json: schema: $ref: '#/components/schemas/MarkReadRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/MarkReadResponse' 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: Mark read tags: - product:chat /api/v2/chat/channels/{type}/{id}/rewind: post: description: | Rewinds an agent channel to one of its messages: every message created after it, and the message itself when `inclusive` is set, is hidden from every read. The messages are kept and can still be exported. Only available for the `agent` channel type. Sends events: - channel.rewound operationId: RewindChannel parameters: - in: path name: type required: true schema: type: string writeOnly: true x-stream-index: "001.001" - in: path name: id required: true schema: type: string writeOnly: true x-stream-index: "001.002" requestBody: content: application/json: schema: $ref: '#/components/schemas/RewindChannelRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/RewindChannelResponse' 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: Rewind channel tags: - product:chat /api/v2/chat/channels/{type}/{id}/show: post: description: | Shows previously hidden channel Sends events: - channel.visible operationId: ShowChannel parameters: - in: path name: type required: true schema: description: Channel type to interact with title: Channel type type: string writeOnly: true x-stream-index: "001.001" - in: path name: id required: true schema: description: Channel ID to interact with title: Channel ID type: string writeOnly: true x-stream-index: "001.002" requestBody: content: application/json: schema: $ref: '#/components/schemas/ShowChannelRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/ShowChannelResponse' 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: Show channel tags: - product:chat /api/v2/chat/channels/{type}/{id}/truncate: post: description: | Truncates messages from a channel. Can be applied to the entire channel or scoped to specific members. Sends events: - channel.truncated operationId: TruncateChannel parameters: - in: path name: type required: true schema: type: string writeOnly: true x-stream-index: "001.001" - in: path name: id required: true schema: type: string writeOnly: true x-stream-index: "001.002" requestBody: content: application/json: schema: $ref: '#/components/schemas/TruncateChannelRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/TruncateChannelResponse' 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: Truncate channel tags: - product:chat /api/v2/chat/channels/{type}/{id}/unread: post: description: | Marks channel as unread from a specific message operationId: MarkUnread parameters: - in: path name: type required: true schema: type: string writeOnly: true x-stream-index: "002.001" - in: path name: id required: true schema: type: string writeOnly: true x-stream-index: "002.002" requestBody: content: application/json: schema: $ref: '#/components/schemas/MarkUnreadRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/Response' 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: Mark unread tags: - product:chat /api/v2/chat/channels/{type}/query: post: description: | This Method creates a channel or returns an existing one with matching attributes Sends events: - channel.created - member.added - member.removed - member.updated - user.watching.start operationId: GetOrCreateDistinctChannel parameters: - in: path name: type required: true schema: description: Channel type maxLength: 64 title: Type type: string writeOnly: true x-stream-index: "001" requestBody: content: application/json: schema: $ref: '#/components/schemas/ChannelGetOrCreateRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/ChannelStateResponse' 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 or create channel tags: - product:chat /api/v2/chat/channels/batch: put: description: | Update channels in batch. By default returns task_id for an asynchronous task. With synchronous: true, updateData and hide accept at most 100 explicit CIDs (hide also at most 10 distinct members) and return success_channels_count of channels selected after the database write completes, without task_id. A synchronous hide where none of the member users exist hides nothing and omits success_channels_count. Always poll a returned task_id, including when an older node ignores synchronous. Sends events: - channel.frozen - channel.hidden - channel.unfrozen - channel.updated - channel.visible - member.added - member.removed - member.updated operationId: ChannelBatchUpdate requestBody: content: application/json: schema: $ref: '#/components/schemas/ChannelBatchUpdateRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/ChannelBatchUpdateResponse' 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: Update channels in batch tags: - product:chat /api/v2/chat/channels/delete: post: description: | Allows to delete several channels at once asynchronously Sends events: - channel.deleted operationId: DeleteChannels requestBody: content: application/json: schema: $ref: '#/components/schemas/DeleteChannelsRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/DeleteChannelsResponse' 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: Deletes channels asynchronously tags: - product:chat /api/v2/chat/channels/deleted: post: description: | Lists soft-deleted channels, ordered by created_at. Server-side only. Without a filter it lists every soft-deleted channel of the app; filter by team to scope it to one tenant. To permanently remove the returned channels, pass their cids to Delete channels (POST /channels/delete) with hard_delete set to true; the single-channel Delete channel endpoint does not accept soft-deleted channels. operationId: QueryDeletedChannels requestBody: content: application/json: schema: $ref: '#/components/schemas/QueryDeletedChannelsRequest' description: Query Deleted Channels Request required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/QueryDeletedChannelsResponse' 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 deleted channels tags: - product:chat /api/v2/chat/channels/delivered: post: description: | Mark the status of a channel message delivered. operationId: MarkDelivered parameters: - in: query name: user_id schema: type: string writeOnly: true x-stream-index: "002.001" requestBody: content: application/json: schema: $ref: '#/components/schemas/MarkDeliveredRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/MarkDeliveredResponse' 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: Mark channel message delivery status tags: - product:chat /api/v2/chat/channels/grouped: post: description: | Query channels grouped into predefined buckets. Only available for enterprise apps. operationId: GroupedQueryChannels requestBody: content: application/json: schema: $ref: '#/components/schemas/GroupedQueryChannelsRequest' description: Grouped Query Channels Request required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/GroupedQueryChannelsResponse' description: Grouped Query Channels 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: Grouped query channels tags: - product:chat /api/v2/chat/channels/read: post: description: | Marks channels as read up to the specific message. If no channels is given, mark all channel as read Sends events: - message.read operationId: MarkChannelsRead requestBody: content: application/json: schema: $ref: '#/components/schemas/MarkChannelsReadRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/MarkReadResponse' 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: Mark channels as read tags: - product:chat /api/v2/chat/channeltypes: get: description: | Lists all available channel types operationId: ListChannelTypes responses: "200": content: application/json: schema: $ref: '#/components/schemas/ListChannelTypesResponse' description: ListChannelTypesResponse "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 channel types tags: - product:chat post: description: | Creates new channel type operationId: CreateChannelType requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateChannelTypeRequest' description: CreateChannelTypeRequest required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/CreateChannelTypeResponse' 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 channel type tags: - product:chat /api/v2/chat/channeltypes/{name}: delete: description: | Deletes channel type operationId: DeleteChannelType parameters: - in: path name: name required: true schema: description: Channel type name title: Name type: string writeOnly: true x-stream-index: "001" responses: "200": content: application/json: schema: $ref: '#/components/schemas/Response' 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 channel type tags: - product:chat get: description: | Gets channel type operationId: GetChannelType parameters: - in: path name: name required: true schema: description: Channel type name title: Name type: string writeOnly: true x-stream-index: "001" responses: "200": content: application/json: schema: $ref: '#/components/schemas/GetChannelTypeResponse' 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 channel type tags: - product:chat put: description: | Updates channel type operationId: UpdateChannelType parameters: - in: path name: name required: true schema: type: string writeOnly: true x-stream-index: "001" requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateChannelTypeRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/UpdateChannelTypeResponse' 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: Update channel type tags: - product:chat /api/v2/chat/commands: get: description: | Returns all custom commands operationId: ListCommands responses: "200": content: application/json: schema: $ref: '#/components/schemas/ListCommandsResponse' description: ListCommandsResponse "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 commands tags: - product:chat post: description: | Creates custom chat command operationId: CreateCommand requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateCommandRequest' description: CreateCommandRequest required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/CreateCommandResponse' description: CreateCommandResponse "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 command tags: - product:chat /api/v2/chat/commands/{name}: delete: description: | Deletes custom chat command operationId: DeleteCommand parameters: - in: path name: name required: true schema: description: Command name title: Name type: string x-stream-index: "001" responses: "200": content: application/json: schema: $ref: '#/components/schemas/DeleteCommandResponse' description: DeleteCommandResponse "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 command tags: - product:chat get: description: | Returns custom command by its name operationId: GetCommand parameters: - in: path name: name required: true schema: description: Command name title: Name type: string x-stream-index: "001" responses: "200": content: application/json: schema: $ref: '#/components/schemas/GetCommandResponse' description: GetCommandResponse "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 command tags: - product:chat put: description: | Updates custom chat command operationId: UpdateCommand parameters: - in: path name: name required: true schema: description: Unique command name title: Name type: string writeOnly: true x-stream-index: "001" requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateCommandRequest' description: UpdateCommandRequest required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/UpdateCommandResponse' description: UpdateCommandResponse "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 command tags: - product:chat /api/v2/chat/drafts/query: post: description: | Queries draft messages for a user operationId: QueryDrafts requestBody: content: application/json: schema: $ref: '#/components/schemas/QueryDraftsRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/QueryDraftsResponse' 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 draft messages tags: - product:chat /api/v2/chat/export_channels: post: description: | Exports channel data to a JSON or CSV file (CSV requires version=v2) operationId: ExportChannels requestBody: content: application/json: schema: $ref: '#/components/schemas/ExportChannelsRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/ExportChannelsResponse' 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: Export channels tags: - product:chat /api/v2/chat/history_window/teams: get: description: | Returns the app's default history window and the teams with full history. Only for apps with the history window enabled; other apps get 403. Server-side only. operationId: GetHistoryWindowTeams responses: "200": content: application/json: schema: $ref: '#/components/schemas/GetHistoryWindowTeamsResponse' 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 history window teams tags: - product:chat post: description: | Gives up to ten teams full history. Only for apps with the history window enabled; other apps get 403. Server-side only. operationId: SetHistoryWindowTeams requestBody: content: application/json: schema: $ref: '#/components/schemas/SetHistoryWindowTeamsRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/SetHistoryWindowTeamsResponse' 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: Set history window teams tags: - product:chat /api/v2/chat/history_window/teams/delete: post: description: | Puts up to ten teams back on the app's default history window. Only for apps with the history window enabled; other apps get 403. Server-side only. operationId: DeleteHistoryWindowTeams requestBody: content: application/json: schema: $ref: '#/components/schemas/DeleteHistoryWindowTeamsRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/DeleteHistoryWindowTeamsResponse' 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 history window teams tags: - product:chat /api/v2/chat/members: get: description: | Find and filter channel members operationId: QueryMembers parameters: - content: application/json: schema: $ref: '#/components/schemas/QueryMembersPayload' x-stream-index: "001" in: query name: payload responses: "200": content: application/json: schema: $ref: '#/components/schemas/MembersResponse' 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 members tags: - product:chat /api/v2/chat/messages/{id}: delete: description: | Deletes message Sends events: - message.deleted operationId: DeleteMessage parameters: - in: path name: id required: true schema: description: Message ID to delete title: ID type: string writeOnly: true x-stream-index: "001" - in: query name: hard schema: description: Delete all message reactions and replies as well title: Hard type: boolean writeOnly: true x-stream-index: "002" - in: query name: deleted_by schema: type: string writeOnly: true x-stream-index: "003" - in: query name: delete_for_me schema: description: Delete the message only for the user making the request title: Delete for me type: boolean writeOnly: true x-stream-index: "004" responses: "200": content: application/json: schema: $ref: '#/components/schemas/DeleteMessageResponse' 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 message tags: - product:chat get: description: | Returns message by ID operationId: GetMessage parameters: - in: path name: id required: true schema: description: ID of the message title: ID type: string writeOnly: true x-stream-index: "001" - in: query name: show_deleted_message schema: description: Whether to show deleted message title: Show deleted message type: boolean writeOnly: true x-stream-index: "002" responses: "200": content: application/json: schema: $ref: '#/components/schemas/GetMessageResponse' 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 message tags: - product:chat post: description: | Updates message with new data Sends events: - message.updated operationId: UpdateMessage parameters: - in: path name: id required: true schema: description: Message ID title: ID type: string writeOnly: true x-stream-index: "004.001" requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateMessageRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/UpdateMessageResponse' 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: Update message tags: - product:chat put: description: | Updates certain fields of the message Sends events: - message.updated operationId: UpdateMessagePartial parameters: - in: path name: id required: true schema: type: string writeOnly: true x-stream-index: "004.001" requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateMessagePartialRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/UpdateMessagePartialResponse' 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: Partially message update tags: - product:chat /api/v2/chat/messages/{id}/action: post: description: | Executes message command action with given parameters Sends events: - message.new operationId: RunMessageAction parameters: - in: path name: id required: true schema: description: Message ID title: ID type: string writeOnly: true x-stream-index: "001" requestBody: content: application/json: schema: $ref: '#/components/schemas/MessageActionRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/MessageActionResponse' 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: Run message command action tags: - product:chat /api/v2/chat/messages/{id}/commit: post: description: | Commits a pending message, which will make it visible in the channel Sends events: - message.new - message.updated operationId: CommitMessage parameters: - in: path name: id required: true schema: type: string writeOnly: true x-stream-index: "001" responses: "201": content: application/json: schema: $ref: '#/components/schemas/MessageActionResponse' 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: Commit message tags: - product:chat /api/v2/chat/messages/{id}/ephemeral: patch: description: | Updates message fields without storing in database, only sends update event Sends events: - message.updated operationId: EphemeralMessageUpdate parameters: - in: path name: id required: true schema: type: string writeOnly: true x-stream-index: "004.001" requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateMessagePartialRequest' required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/UpdateMessagePartialResponse' 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: Ephemeral message update tags: - product:chat /api/v2/chat/messages/{id}/reaction: post: description: | Sends reaction to specified message Sends events: - reaction.new - reaction.updated operationId: SendReaction parameters: - in: path name: id required: true schema: description: Message ID to send reaction for title: ID type: string writeOnly: true x-stream-index: "001" requestBody: content: application/json: schema: $ref: '#/components/schemas/SendReactionRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/SendReactionResponse' 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: Send reaction tags: - product:chat /api/v2/chat/messages/{id}/reaction/{type}: delete: description: | Removes user reaction from the message Sends events: - reaction.deleted operationId: DeleteReaction parameters: - in: path name: id required: true schema: description: Message ID to remove reaction from title: ID type: string writeOnly: true x-stream-index: "001" - in: path name: type required: true schema: description: Reaction type to remove title: Type type: string writeOnly: true x-stream-index: "002" - in: query name: user_id schema: description: '**Server-side only**. User ID which server acts upon' title: User ID type: string writeOnly: true x-stream-index: "003.001" responses: "200": content: application/json: schema: $ref: '#/components/schemas/DeleteReactionResponse' 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 reaction tags: - product:chat /api/v2/chat/messages/{id}/reactions: get: description: | Returns list of reactions of specific message operationId: GetReactions parameters: - in: path name: id required: true schema: description: Message ID title: ID type: string writeOnly: true x-stream-index: "001" - in: query name: limit schema: description: Number of records to return format: int32 title: Limit type: integer writeOnly: true x-stream-index: "002" - in: query name: offset schema: description: Number of records to offset format: int32 title: Offset type: integer writeOnly: true x-stream-index: "003" responses: "200": content: application/json: schema: $ref: '#/components/schemas/GetReactionsResponse' 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 reactions tags: - product:chat post: description: | Get reactions on a message operationId: QueryReactions parameters: - in: path name: id required: true schema: type: string writeOnly: true x-stream-index: "001" requestBody: content: application/json: schema: $ref: '#/components/schemas/QueryReactionsRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/QueryReactionsResponse' 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 tags: - product:chat /api/v2/chat/messages/{id}/translate: post: description: | Translates message to a given language using automated translation software Sends events: - message.updated operationId: TranslateMessage parameters: - in: path name: id required: true schema: description: Message ID title: ID type: string writeOnly: true x-stream-index: "002.001" requestBody: content: application/json: schema: $ref: '#/components/schemas/TranslateMessageRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/TranslateMessageResponse' 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: Translate message tags: - product:chat /api/v2/chat/messages/{id}/undelete: post: description: | Undelete a message that was previously soft-deleted Sends events: - message.undeleted operationId: UndeleteMessage parameters: - in: path name: id required: true schema: description: Message ID title: ID type: string writeOnly: true x-stream-index: "002.001" requestBody: content: application/json: schema: $ref: '#/components/schemas/UndeleteMessageRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/UndeleteMessageResponse' 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: Undelete message tags: - product:chat /api/v2/chat/messages/{message_id}/polls/{poll_id}/vote: post: description: | Cast a vote on a poll Sends events: - feeds.poll.vote_casted - feeds.poll.vote_changed - feeds.poll.vote_removed - poll.vote_casted - poll.vote_changed - poll.vote_removed operationId: CastPollVote parameters: - in: path name: message_id required: true schema: type: string writeOnly: true x-stream-index: "001" - in: path name: poll_id required: true schema: description: Poll ID maxLength: 255 title: string type: string x-stream-index: "003" requestBody: content: application/json: schema: $ref: '#/components/schemas/CastPollVoteRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/PollVoteResponse' 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: Cast vote tags: - product:chat /api/v2/chat/messages/{message_id}/polls/{poll_id}/vote/{vote_id}: delete: description: | Delete a vote from a poll Sends events: - feeds.poll.vote_removed - poll.vote_removed operationId: DeletePollVote parameters: - in: path name: message_id required: true schema: type: string writeOnly: true x-stream-index: "002" - in: path name: poll_id required: true schema: description: Poll ID maxLength: 255 title: string type: string x-stream-index: "004" - in: path name: vote_id required: true schema: description: Vote ID maxLength: 255 title: string type: string x-stream-index: "005" - in: query name: user_id schema: type: string writeOnly: true x-stream-index: "001.001" responses: "200": content: application/json: schema: $ref: '#/components/schemas/PollVoteResponse' 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 vote tags: - product:chat /api/v2/chat/messages/{message_id}/reminders: delete: description: | Deletes a user's created reminder Sends events: - reminder.deleted operationId: DeleteReminder parameters: - in: path name: message_id required: true schema: type: string writeOnly: true x-stream-index: "002" - in: query name: user_id schema: type: string writeOnly: true x-stream-index: "001" responses: "200": content: application/json: schema: $ref: '#/components/schemas/DeleteReminderResponse' 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 reminder tags: - product:chat patch: description: | Updates an existing reminder. remind_at and expires_at are both replaced on every call: omitting either one clears it Sends events: - reminder.updated operationId: UpdateReminder parameters: - in: path name: message_id required: true schema: type: string writeOnly: true x-stream-index: "003" requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateReminderRequest' required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/UpdateReminderResponse' 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: Updates Reminder tags: - product:chat post: description: | Creates a new reminder. An optional expires_at hides the reminder from every read once it passes and stops it counting against the per-user reminder cap Sends events: - reminder.created operationId: CreateReminder parameters: - in: path name: message_id required: true schema: type: string writeOnly: true x-stream-index: "003" requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateReminderRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/CreateReminderResponse' 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: Create reminder tags: - product:chat /api/v2/chat/messages/{parent_id}/replies: get: description: | Returns replies (thread) of the message operationId: GetReplies parameters: - in: path name: parent_id required: true schema: type: string writeOnly: true x-stream-index: "001" - content: application/json: schema: items: $ref: '#/components/schemas/SortParamRequest' maxItems: 1 type: array writeOnly: true x-stream-index: "002" in: query name: sort - in: query name: limit schema: format: int32 minimum: 0 type: integer writeOnly: true x-stream-index: "003" - in: query name: id_gte schema: type: string writeOnly: true x-stream-index: "004" - in: query name: id_gt schema: type: string writeOnly: true x-stream-index: "005" - in: query name: id_lte schema: type: string writeOnly: true x-stream-index: "006" - in: query name: id_lt schema: type: string writeOnly: true x-stream-index: "007" - in: query name: id_around schema: type: string writeOnly: true x-stream-index: "008" - in: query name: member_custom_include schema: description: Top-level keys of each message sender's channel-member custom data to include under member.custom (max 8 keys, 64 chars each) items: type: string maxItems: 8 title: Member custom include type: array writeOnly: true x-stream-index: "009" responses: "200": content: application/json: schema: $ref: '#/components/schemas/GetRepliesResponse' 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 replies tags: - product:chat /api/v2/chat/messages/history: post: description: | Queries history for one message operationId: QueryMessageHistory requestBody: content: application/json: schema: $ref: '#/components/schemas/QueryMessageHistoryRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/QueryMessageHistoryResponse' 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 message history tags: - product:chat /api/v2/chat/moderation/flags/message: get: description: | Find and filter message flags operationId: QueryMessageFlags parameters: - content: application/json: schema: $ref: '#/components/schemas/QueryMessageFlagsPayload' description: JSON object with query message flags payload title: Payload x-stream-index: "001" in: query name: payload responses: "200": content: application/json: schema: $ref: '#/components/schemas/QueryMessageFlagsResponse' description: QueryMessageFlagsResponse "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 Message Flags tags: - product:chat /api/v2/chat/moderation/mute/channel: post: description: | Mutes channel for user Sends events: - channel.muted operationId: MuteChannel requestBody: content: application/json: schema: $ref: '#/components/schemas/MuteChannelRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/MuteChannelResponse' 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: Mute channel tags: - product:chat /api/v2/chat/moderation/unmute/channel: post: description: | Unmutes channel for user Sends events: - channel.unmuted operationId: UnmuteChannel requestBody: content: application/json: schema: $ref: '#/components/schemas/UnmuteChannelRequest' 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 channel tags: - product:chat /api/v2/chat/predefined_filters: get: description: | Get all predefined filters with optional sorting by created_at, updated_at, name, or operation operationId: GetPredefinedFilters parameters: - content: application/json: schema: description: Array of sort parameters items: $ref: '#/components/schemas/SortParamRequest' title: Sort type: array writeOnly: true x-stream-index: "001" in: query name: sort - in: query name: include_stats schema: type: boolean writeOnly: true x-stream-index: "002" responses: "200": content: application/json: schema: $ref: '#/components/schemas/QueryPredefinedFiltersResponse' 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 predefined filters tags: - product:chat post: description: | Create a predefined filter that can be used in Query endpoints operationId: CreatePredefinedFilter requestBody: content: application/json: schema: $ref: '#/components/schemas/CreatePredefinedFilterRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/CreatePredefinedFilterResponse' 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 predefined filter tags: - product:chat /api/v2/chat/predefined_filters/{name}: delete: description: | Delete a predefined filter by name operationId: DeletePredefinedFilter parameters: - in: path name: name required: true schema: description: The name of the predefined filter maxLength: 255 title: Name type: string writeOnly: true x-stream-index: "001" responses: "200": content: application/json: schema: $ref: '#/components/schemas/Response' 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 predefined filter tags: - product:chat get: description: | Get a predefined filter by name operationId: GetPredefinedFilter parameters: - in: path name: name required: true schema: description: The name of the predefined filter maxLength: 255 title: Name type: string writeOnly: true x-stream-index: "001" responses: "200": content: application/json: schema: $ref: '#/components/schemas/GetPredefinedFilterResponse' 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 predefined filter tags: - product:chat put: description: | Update a predefined filter by name operationId: UpdatePredefinedFilter parameters: - in: path name: name required: true schema: maxLength: 255 type: string writeOnly: true x-stream-index: "001" requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdatePredefinedFilterRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/UpdatePredefinedFilterResponse' 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: Update predefined filter tags: - product:chat /api/v2/chat/query_banned_users: get: description: | Find and filter channel scoped or global user bans operationId: QueryBannedUsers parameters: - content: application/json: schema: $ref: '#/components/schemas/QueryBannedUsersPayload' description: JSON object with query user bans payload title: Payload x-stream-index: "001" in: query name: payload responses: "200": content: application/json: schema: $ref: '#/components/schemas/QueryBannedUsersResponse' 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 Banned Users tags: - product:chat /api/v2/chat/query_future_channel_bans: get: description: | Find and filter future channel bans created by the authenticated user operationId: QueryFutureChannelBans parameters: - content: application/json: schema: $ref: '#/components/schemas/QueryFutureChannelBansPayload' description: JSON object with query future channel bans payload title: Payload x-stream-index: "001" in: query name: payload responses: "200": content: application/json: schema: $ref: '#/components/schemas/QueryFutureChannelBansResponse' 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 Future Channel Bans tags: - product:chat /api/v2/chat/reminders/query: post: description: | Queries reminders operationId: QueryReminders requestBody: content: application/json: schema: $ref: '#/components/schemas/QueryRemindersRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/QueryRemindersResponse' 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 reminders tags: - product:chat /api/v2/chat/retention_policy: get: description: | Returns all retention policies configured for the app. The per-channel-type rules of the 'inactive-channels-by-type' policy are returned in 'channel_type_rules' rather than in 'policies'. Server-side only. operationId: GetRetentionPolicy responses: "200": content: application/json: schema: $ref: '#/components/schemas/GetRetentionPolicyResponse' 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 retention policy tags: - product:chat post: description: | Creates or updates a retention policy for the app. The 'inactive-channels-by-type' policy sets the 'max_age_hours' rule of the channel type given by 'channel_type', which overrides 'inactive-channels' for that type; its response carries the saved rule in 'channel_type_rule'. Server-side only. operationId: SetRetentionPolicy requestBody: content: application/json: schema: $ref: '#/components/schemas/SetRetentionPolicyRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/SetRetentionPolicyResponse' 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: Set retention policy tags: - product:chat /api/v2/chat/retention_policy/delete: post: description: | Removes a retention policy for the app. For the 'inactive-channels-by-type' policy, 'channel_type' selects the rule to remove. Server-side only. operationId: DeleteRetentionPolicy requestBody: content: application/json: schema: $ref: '#/components/schemas/DeleteRetentionPolicyRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/DeleteRetentionPolicyResponse' 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 retention policy tags: - product:chat /api/v2/chat/retention_policy/runs: post: description: | Returns filtered and sorted retention cleanup run history for the app. Supports filter_conditions on 'policy' (possible values: 'old-messages', 'inactive-channels', 'inactive-channels@type:', 'inactive-channels@blanket:') and 'date' fields. Once the app has a per-channel-type rule, inactive-channels runs are recorded per channel type, under 'inactive-channels@type:' for a type with its own rule and 'inactive-channels@blanket:' for a type covered by the app-wide rule, and 'policy': 'inactive-channels' no longer matches new runs; filter with '$in' over the pass names of your channel types. Server-side only. operationId: GetRetentionPolicyRuns requestBody: content: application/json: schema: $ref: '#/components/schemas/GetRetentionPolicyRunsRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/GetRetentionPolicyRunsResponse' 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 retention policy runs tags: - product:chat /api/v2/chat/scheduled_messages/{id}: delete: description: | Cancels a scheduled message so it is never sent, or removes a failed one. Returns 409 while the message is being sent Sends events: - scheduled_message.deleted operationId: DeleteScheduledMessage parameters: - in: path name: id required: true schema: description: ID of the scheduled message maxLength: 255 title: ID type: string writeOnly: true x-stream-index: "001" responses: "200": content: application/json: schema: $ref: '#/components/schemas/DeleteScheduledMessageResponse' 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 scheduled message tags: - product:chat patch: description: | Replaces the message and/or the send time of a scheduled message. The scheduling checks run again, and the message is then sent, under the caller's auth mode. A request that changes only scheduled_at keeps the auth mode the message was scheduled with. Returns 409 while the message is being sent Sends events: - scheduled_message.updated operationId: UpdateScheduledMessage parameters: - in: path name: id required: true schema: description: ID of the scheduled message maxLength: 255 title: ID type: string writeOnly: true x-stream-index: "001" requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateScheduledMessageRequest' required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/UpdateScheduledMessageResponse' 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: Update a scheduled message tags: - product:chat /api/v2/chat/scheduled_messages/{id}/send_now: post: description: | Moves the send time of a scheduled message to now and queues the send. Every send check runs when it is sent. Returns 409 while the message is being sent Sends events: - scheduled_message.updated operationId: SendScheduledMessageNow parameters: - in: path name: id required: true schema: description: ID of the scheduled message maxLength: 255 title: ID type: string writeOnly: true x-stream-index: "001" responses: "201": content: application/json: schema: $ref: '#/components/schemas/SendScheduledMessageNowResponse' 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: Send a scheduled message now tags: - product:chat /api/v2/chat/scheduled_messages/query: post: description: | Lists the scheduled messages of one user across channels: pending ones first, then failed ones, each by scheduled_at. Client-side requests return the caller's own; server-side requests require user_id operationId: QueryScheduledMessages requestBody: content: application/json: schema: $ref: '#/components/schemas/QueryScheduledMessagesRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/QueryScheduledMessagesResponse' 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 scheduled messages tags: - product:chat /api/v2/chat/search: get: description: | Search messages across channels operationId: Search parameters: - content: application/json: schema: $ref: '#/components/schemas/SearchPayload' description: JSON object with search payload title: Payload x-stream-index: "001" in: query name: payload responses: "200": content: application/json: schema: $ref: '#/components/schemas/SearchResponse' 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: Search messages tags: - product:chat /api/v2/chat/search/all: post: description: | Runs one free-text query across messages, users and channels and returns one envelope with a section per requested entity. The server picks the match operator, sort and scope for every section: messages are matched as full text in the channels the caller can read, users by name or username prefix, and channels by name prefix among the channels the caller is a member of. Each section carries its own opaque `next` cursor when more results exist; a section that fails is reported in its `error` field while the other sections return normally. operationId: SearchAll requestBody: content: application/json: schema: $ref: '#/components/schemas/SearchAllRequest' description: Search All Request required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/SearchAllResponse' description: Search All 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: Search messages, users, and channels tags: - product:chat /api/v2/chat/segments: post: description: | Create a segment operationId: CreateSegment requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateSegmentRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/CreateSegmentResponse' 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: Create segment tags: - product:chat /api/v2/chat/segments/{id}: delete: description: | Delete a segment operationId: DeleteSegment parameters: - in: path name: id required: true schema: maxLength: 255 type: string writeOnly: true x-stream-index: "001" responses: "200": content: application/json: schema: $ref: '#/components/schemas/Response' 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 segment tags: - product:chat get: description: | Get segment operationId: GetSegment parameters: - in: path name: id required: true schema: maxLength: 255 type: string writeOnly: true x-stream-index: "001" responses: "200": content: application/json: schema: $ref: '#/components/schemas/GetSegmentResponse' 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 segment tags: - product:chat put: description: | Update an existing segment operationId: UpdateSegment parameters: - in: path name: id required: true schema: maxLength: 255 type: string writeOnly: true x-stream-index: "001" requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateSegmentRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/UpdateSegmentResponse' 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: Update segment tags: - product:chat /api/v2/chat/segments/{id}/addtargets: post: description: | Add targets to a segment operationId: AddSegmentTargets parameters: - in: path name: id required: true schema: maxLength: 255 type: string writeOnly: true x-stream-index: "001" requestBody: content: application/json: schema: $ref: '#/components/schemas/AddSegmentTargetsRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/Response' 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: Add targets to a segment tags: - product:chat /api/v2/chat/segments/{id}/deletetargets: post: description: | Delete targets from a segment operationId: DeleteSegmentTargets parameters: - in: path name: id required: true schema: maxLength: 255 type: string writeOnly: true x-stream-index: "001" requestBody: content: application/json: schema: $ref: '#/components/schemas/DeleteSegmentTargetsRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/Response' 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 targets from a segment tags: - product:chat /api/v2/chat/segments/{id}/target/{target_id}: get: description: | Check whether a target exists in a segment. Returns 200 if the target exists, 404 otherwise operationId: SegmentTargetExists parameters: - in: path name: id required: true schema: maxLength: 255 type: string writeOnly: true x-stream-index: "001" - in: path name: target_id required: true schema: type: string writeOnly: true x-stream-index: "002" responses: "200": content: application/json: schema: $ref: '#/components/schemas/Response' 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: Check whether a target exists in a segment tags: - product:chat /api/v2/chat/segments/{id}/targets/query: post: description: | Query segment targets operationId: QuerySegmentTargets parameters: - in: path name: id required: true schema: maxLength: 255 type: string writeOnly: true x-stream-index: "001" requestBody: content: application/json: schema: $ref: '#/components/schemas/QuerySegmentTargetsRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/QuerySegmentTargetsResponse' 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 segment targets tags: - product:chat /api/v2/chat/segments/query: post: description: | Query segments operationId: QuerySegments requestBody: content: application/json: schema: $ref: '#/components/schemas/QuerySegmentsRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/QuerySegmentsResponse' 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 segments tags: - product:chat /api/v2/chat/stats/team_usage: post: description: | Retrieve team-level usage statistics from the warehouse database. Returns all 16 metrics grouped by team with cursor-based pagination. **Date Range Options (mutually exclusive):** - Use 'month' parameter (YYYY-MM format) for monthly aggregated values - Use 'start_date'/'end_date' parameters (YYYY-MM-DD format) for daily breakdown - If neither provided, defaults to current month (monthly mode) **Team Filter:** - Use 'team' to return a single team's stats (empty string selects users not assigned to any team) - Mutually exclusive with the 'next' pagination cursor This endpoint is server-side only. operationId: QueryTeamUsageStats requestBody: content: application/json: schema: $ref: '#/components/schemas/QueryTeamUsageStatsRequest' description: Query Team Usage Stats Request required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/QueryTeamUsageStatsResponse' description: Query Team Usage Stats 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 Team Usage Statistics tags: - product:chat /api/v2/chat/threads: post: description: | Returns the list of threads for specific user operationId: QueryThreads requestBody: content: application/json: schema: $ref: '#/components/schemas/QueryThreadsRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/QueryThreadsResponse' 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 Threads tags: - product:chat /api/v2/chat/threads/{message_id}: get: description: | Return a specific thread operationId: GetThread parameters: - in: path name: message_id required: true schema: type: string writeOnly: true x-stream-index: "001" - in: query name: reply_limit schema: description: Limit the number of replies returned format: int32 minimum: 0 title: Reply limit type: integer writeOnly: true x-stream-index: "004" - in: query name: participant_limit schema: description: Limit the number of participants returned format: int32 maximum: 100 minimum: 0 title: Participant limit type: integer writeOnly: true x-stream-index: "005" - in: query name: member_limit schema: description: Limit the number of members returned per thread channel format: int32 maximum: 100 minimum: 0 title: Member limit type: integer writeOnly: true x-stream-index: "006" responses: "200": content: application/json: schema: $ref: '#/components/schemas/GetThreadResponse' 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 Thread tags: - product:chat patch: description: | Updates certain fields of the thread Sends events: - thread.updated operationId: UpdateThreadPartial parameters: - in: path name: message_id required: true schema: type: string writeOnly: true x-stream-index: "001" requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateThreadPartialRequest' required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/UpdateThreadPartialResponse' 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: Partially update thread tags: - product:chat /api/v2/chat/unread: get: description: | Fetch unread counts for a single user operationId: UnreadCounts parameters: - in: query name: user_id schema: type: string writeOnly: true x-stream-index: "001.001" - in: query name: include_large_channels schema: description: Also return channels too large to keep an unread count for. They come back with unread_count 0 and has_unread true when they have messages newer than the user's last read. title: Include large channels type: boolean writeOnly: true x-stream-index: "003" responses: "200": content: application/json: schema: $ref: '#/components/schemas/WrappedUnreadCountsResponse' 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: Unread counts tags: - product:chat /api/v2/chat/unread_batch: post: description: | Fetch unread counts in batch for multiple users in one call operationId: UnreadCountsBatch requestBody: content: application/json: schema: $ref: '#/components/schemas/UnreadCountsBatchRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/UnreadCountsBatchResponse' 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: Batch unread counts tags: - product:chat /api/v2/chat/users/{user_id}/event: post: description: | Sends a custom event to a user Sends events: - * operationId: SendUserCustomEvent parameters: - in: path name: user_id required: true schema: type: string writeOnly: true x-stream-index: "002" requestBody: content: application/json: schema: $ref: '#/components/schemas/SendUserCustomEventRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/Response' 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: Send user event tags: - product:chat /api/v2/check_gcp_pubsub: post: description: | Validates that Stream can publish to a customer-owned GCP Pub/Sub topic operationId: CheckGCPPubSub requestBody: content: application/json: schema: $ref: '#/components/schemas/CheckGCPPubSubRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/CheckGCPPubSubResponse' 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 Pub/Sub tags: - product:common /api/v2/check_push: post: description: | Sends a test message via push, this is a test endpoint to verify your push settings operationId: CheckPush requestBody: content: application/json: schema: $ref: '#/components/schemas/CheckPushRequest' description: CheckPushRequest required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/CheckPushResponse' 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 push tags: - product:common /api/v2/check_sns: post: description: | Validates Amazon SNS configuration operationId: CheckSNS requestBody: content: application/json: schema: $ref: '#/components/schemas/CheckSNSRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/CheckSNSResponse' 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 SNS tags: - product:common /api/v2/check_sqs: post: description: | Validates Amazon SQS credentials operationId: CheckSQS requestBody: content: application/json: schema: $ref: '#/components/schemas/CheckSQSRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/CheckSQSResponse' 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 SQS tags: - product:common /api/v2/devices: delete: description: | Deletes one device operationId: DeleteDevice parameters: - in: query name: id required: true schema: description: Device ID to delete title: ID type: string writeOnly: true x-stream-index: "001" - in: query name: user_id schema: description: '**Server-side only**. User ID which server acts upon' title: User ID type: string writeOnly: true x-stream-index: "002.001" responses: "200": content: application/json: schema: $ref: '#/components/schemas/Response' 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 device tags: - product:common get: description: | Returns all available devices operationId: ListDevices parameters: - in: query name: user_id schema: description: '**Server-side only**. User ID which server acts upon' title: User ID type: string writeOnly: true x-stream-index: "001.001" responses: "200": content: application/json: schema: $ref: '#/components/schemas/ListDevicesResponse' description: ListDevicesResponse "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 devices tags: - product:common post: description: | Adds a new device to a user, if the same device already exists the call will have no effect operationId: CreateDevice requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateDeviceRequest' description: CreateDeviceRequest required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/Response' 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: Create device tags: - product:common /api/v2/export/users: post: description: | Exports user profile, reactions and messages for list of given users operationId: ExportUsers requestBody: content: application/json: schema: $ref: '#/components/schemas/ExportUsersRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/ExportUsersResponse' 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: Export users tags: - product:common /api/v2/external_storage: get: description: | Lists external storage operationId: ListExternalStorage responses: "200": content: application/json: schema: $ref: '#/components/schemas/ListExternalStorageResponse' 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: List external storage tags: - product:common post: description: | Creates new external storage operationId: CreateExternalStorage requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateExternalStorageRequest' description: CreateExternalStorageRequest required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/CreateExternalStorageResponse' 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: Create external storage tags: - product:common /api/v2/external_storage/{name}: delete: description: | Deletes external storage operationId: DeleteExternalStorage parameters: - in: path name: name required: true schema: type: string writeOnly: true x-stream-index: "002" responses: "200": content: application/json: schema: $ref: '#/components/schemas/DeleteExternalStorageResponse' 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 external storage tags: - product:common put: description: |2+ operationId: UpdateExternalStorage parameters: - in: path name: name required: true schema: type: string writeOnly: true x-stream-index: "001" requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateExternalStorageRequest' description: ExternalStorageRequest required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/UpdateExternalStorageResponse' 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: Update External Storage tags: - product:common /api/v2/external_storage/{name}/check: get: description: |2+ operationId: CheckExternalStorage parameters: - in: path name: name required: true schema: type: string writeOnly: true x-stream-index: "002" responses: "200": content: application/json: schema: $ref: '#/components/schemas/CheckExternalStorageResponse' 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: Check External Storage tags: - product:common /api/v2/guest: post: description: |2+ operationId: CreateGuest requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateGuestRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/CreateGuestResponse' 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 Guest tags: - product:common x-stream-requires-token: false /api/v2/import_urls: post: description: | Creates a new import URL operationId: CreateImportURL requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateImportURLRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/CreateImportURLResponse' 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: Create import URL tags: - product:common /api/v2/imports: get: description: | Gets an import operationId: ListImports responses: "200": content: application/json: schema: $ref: '#/components/schemas/ListImportsResponse' 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 import tags: - product:common post: description: | Creates a new import operationId: CreateImport requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateImportRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/CreateImportResponse' 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: Create import tags: - product:common /api/v2/imports/{id}: get: description: | Gets an import operationId: GetImport parameters: - in: path name: id required: true schema: type: string writeOnly: true x-stream-index: "001" responses: "200": content: application/json: schema: $ref: '#/components/schemas/GetImportResponse' 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 import tags: - product:common /api/v2/imports/v2: get: description: | Lists all import v2 tasks for the app operationId: ListImportV2Tasks parameters: - in: query name: state schema: format: int32 type: integer writeOnly: true x-stream-index: "001" responses: "200": content: application/json: schema: $ref: '#/components/schemas/ListImportV2TasksResponse' 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: List import v2 tasks tags: - product:common post: description: | Creates a new import v2 task operationId: CreateImportV2Task requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateImportV2TaskRequest' description: ClientRequest required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/CreateImportV2TaskResponse' 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: Create import v2 task tags: - product:common /api/v2/imports/v2/{id}: delete: description: | Deletes an import v2 task. Can only delete tasks in queued state. operationId: DeleteImportV2Task parameters: - in: path name: id required: true schema: type: string writeOnly: true x-stream-index: "001" responses: "200": content: application/json: schema: $ref: '#/components/schemas/DeleteImportV2TaskResponse' 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 import v2 task tags: - product:common get: description: | Gets a single import v2 task by ID operationId: GetImportV2Task parameters: - in: path name: id required: true schema: type: string writeOnly: true x-stream-index: "001" responses: "200": content: application/json: schema: $ref: '#/components/schemas/GetImportV2TaskResponse' 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 import v2 task tags: - product:common /api/v2/imports/v2/{id}/cancel: post: description: | Requests a controlled stop of an import v2 task. Allowed only for tasks in queued or processing state; a processing import stops cleanly on its next progress tick. operationId: CancelImportV2Task parameters: - in: path name: id required: true schema: type: string writeOnly: true x-stream-index: "001" responses: "201": content: application/json: schema: $ref: '#/components/schemas/CancelImportV2TaskResponse' 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: Cancel import v2 task tags: - product:common /api/v2/imports/v2/external-storage: delete: description: | Removes the external storage configuration for the app. Idempotent: succeeds even if no configuration exists. operationId: DeleteImporterExternalStorage responses: "200": content: application/json: schema: $ref: '#/components/schemas/DeleteExternalStorageResponse' 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 external storage tags: - product:common get: description: | Returns the current external storage configuration for the app. Returns 404 if no configuration exists. operationId: GetImporterExternalStorage responses: "200": content: application/json: schema: $ref: '#/components/schemas/GetExternalStorageResponse' 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 external storage tags: - product:common put: description: | Creates or updates the external storage configuration for the app. Supports AWS S3 (via cross-account IAM role assumption) and GCS (via service-account JSON credentials). operationId: UpsertImporterExternalStorage requestBody: content: application/json: schema: $ref: '#/components/schemas/UpsertExternalStorageRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/UpsertExternalStorageResponse' 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 external storage tags: - product:common /api/v2/imports/v2/external-storage/validate: post: description: | Validates the configured external storage. For AWS S3, performs a live STS AssumeRole and S3 ListObjectsV2 check. For GCS, performs a live bucket listing check using the configured service-account credentials. operationId: ValidateImporterExternalStorage responses: "201": content: application/json: schema: $ref: '#/components/schemas/ValidateExternalStorageResponse' 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: Validate external storage tags: - product:common /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/analyze: post: description: | Moderate named text fields and raw image bytes via multipart/form-data. Returns a per-field lightweight verdict. operationId: analyze requestBody: content: application/json: schema: $ref: '#/components/schemas/AnalyzeRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/AnalyzeResponse' 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: Analyze 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/appeals/bulk_action: post: description: | Process multiple appeals in a single request by applying the specified action to each. Supported actions: unban, restore, unblock, mark_reviewed, reject_appeal. Each appeal goes through the same path as a single submit_action call. operationId: bulk_action_appeals requestBody: content: application/json: schema: $ref: '#/components/schemas/BulkActionAppealsRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/BulkActionAppealsResponse' 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 action 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/ModerationBanResponse' 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/config/{key}/versions: get: description: | List the retained versions of a moderation configuration, newest first, and which one is published. operationId: list_config_versions parameters: - in: path name: key required: true schema: description: Key of the moderation configuration 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/ListConfigVersionsResponse' 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: List moderation configuration versions tags: - product:moderation /api/v2/moderation/config/{key}/versions/{version}: get: description: | Retrieve the full moderation configuration stored in a specific version, whether or not it is published. operationId: get_config_version parameters: - in: path name: key required: true schema: description: Key of the moderation configuration title: Key type: string x-stream-index: "001" - in: path name: version required: true schema: description: Version to retrieve format: int32 minimum: 1 title: Version type: integer x-stream-index: "002" - in: query name: team schema: description: Team associated with the configuration title: Team type: string x-stream-index: "003" responses: "200": content: application/json: schema: $ref: '#/components/schemas/GetConfigVersionResponse' 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 version tags: - product:moderation /api/v2/moderation/config/{key}/versions/{version}/publish: post: description: | Make a stored version the moderation configuration in effect. Publishing an older version reverts to it without creating a new version. operationId: publish_config_version parameters: - in: path name: key required: true schema: description: Key of the moderation configuration title: Key type: string x-stream-index: "001" - in: path name: version required: true schema: description: Version to publish. Publishing an older version reverts to it format: int32 minimum: 1 title: Version type: integer x-stream-index: "002" requestBody: content: application/json: schema: $ref: '#/components/schemas/PublishConfigVersionRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/PublishConfigVersionResponse' 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: Publish moderation configuration version tags: - product:moderation /api/v2/moderation/config/versions: post: description: | Save a moderation configuration as a new version without making it live. The version takes effect once it is published. operationId: save_config_version requestBody: content: application/json: schema: $ref: '#/components/schemas/SaveConfigVersionRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/SaveConfigVersionResponse' 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: Save moderation configuration version 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/feedback_items: post: description: | List moderation feedback submissions that have an item matching the filter, with those items, sorting and pagination. Server-side only. operationId: query_moderation_feedback requestBody: content: application/json: schema: $ref: '#/components/schemas/QueryModerationFeedbackRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/QueryModerationFeedbackResponse' 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 feedback tags: - product:moderation /api/v2/moderation/feeds_moderation_template: delete: description: | Delete a specific moderation template by its name operationId: V2DeleteTemplate parameters: - in: query name: name schema: description: Name of the moderation template to delete. The server rejects a request that omits it title: Name type: string x-stream-index: "001" 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/FlagItemResponse' 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: path name: id required: true schema: 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/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 parameters: - in: path name: id required: true schema: type: string writeOnly: true x-stream-index: "001" 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/policy_tests/runs/{id}: get: description: |2+ operationId: get_policy_test_run parameters: - in: path name: id required: true schema: description: Unique identifier of the policy test run title: ID type: string writeOnly: true x-stream-index: "001" responses: "200": content: application/json: schema: $ref: '#/components/schemas/PolicyTestRunResponse' 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 policy test run tags: - product:moderation /api/v2/moderation/policy_tests/sets: get: description: |2+ operationId: list_policy_test_sets parameters: - in: query name: limit schema: description: Page size. Empty uses the default of 100. Values above 200 are capped format: int32 title: Limit type: integer writeOnly: true x-stream-index: "001" - in: query name: offset schema: description: Number of sets to skip. Empty means 0 format: int32 title: Offset type: integer writeOnly: true x-stream-index: "002" responses: "200": content: application/json: schema: $ref: '#/components/schemas/PolicyTestSetListResponse' 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: List policy test sets tags: - product:moderation post: description: | Save a labeled set of messages that can be re-run against the moderation policy. operationId: create_policy_test_set requestBody: content: application/json: schema: $ref: '#/components/schemas/CreatePolicyTestSetRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/PolicyTestSetResponse' 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 policy test set tags: - product:moderation /api/v2/moderation/policy_tests/sets/{id}: delete: description: |2+ operationId: delete_policy_test_set parameters: - in: path name: id required: true schema: description: Unique identifier of the policy test set title: ID type: string writeOnly: true x-stream-index: "001" responses: "200": content: application/json: schema: $ref: '#/components/schemas/Response' 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 policy test set tags: - product:moderation get: description: |2+ operationId: get_policy_test_set parameters: - in: path name: id required: true schema: description: Unique identifier of the policy test set title: ID type: string writeOnly: true x-stream-index: "001" responses: "200": content: application/json: schema: $ref: '#/components/schemas/PolicyTestSetResponse' 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 policy test set tags: - product:moderation /api/v2/moderation/policy_tests/sets/{id}/runs: post: description: | Enqueue a background run of the set against the saved live moderation config. operationId: start_policy_test_run parameters: - in: path name: id required: true schema: description: Unique identifier of the policy test set to run title: ID type: string writeOnly: true x-stream-index: "001" responses: "201": content: application/json: schema: $ref: '#/components/schemas/PolicyTestRunResponse' 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: Start policy test run tags: - product:moderation /api/v2/moderation/queues: get: description: |2+ operationId: list_queues parameters: - in: query name: user_id schema: type: string writeOnly: true x-stream-index: "001.001" responses: "200": content: application/json: schema: $ref: '#/components/schemas/ListQueuesResponse' 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: List queues tags: - product:moderation post: description: |2+ operationId: create_queue requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateQueueRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/QueueResponse' 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: Create queue tags: - product:moderation /api/v2/moderation/queues/{id}: get: description: |2+ operationId: get_queue parameters: - in: path name: id required: true schema: type: string writeOnly: true x-stream-index: "001" - in: query name: user_id schema: type: string writeOnly: true x-stream-index: "002.001" responses: "200": content: application/json: schema: $ref: '#/components/schemas/QueueResponse' 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 queue tags: - product:moderation patch: description: |2+ operationId: update_queue parameters: - in: path name: id required: true schema: type: string writeOnly: true x-stream-index: "001" requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateQueueRequest' required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/QueueResponse' 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: Update queue tags: - product:moderation /api/v2/moderation/queues/{id}/delete: post: description: |2+ operationId: delete_queue parameters: - in: path name: id required: true schema: type: string writeOnly: true x-stream-index: "001" requestBody: content: application/json: schema: $ref: '#/components/schemas/DeleteQueueRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/QueueResponse' 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 queue tags: - product:moderation /api/v2/moderation/reveal_media: post: description: | Authorize revealing a review queue item's blurred media. CSAM can only be revealed by users with the RevealProtectedMedia permission. Reveals of blurred CSAM or gore are recorded in the moderation action logs. operationId: reveal_media requestBody: content: application/json: schema: $ref: '#/components/schemas/RevealMediaRequest' description: Reveal Media Request required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/RevealMediaResponse' description: Reveal Media 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: Reveal review queue media 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/setup: get: description: | Retrieve a setup session for an app operationId: get_setup_session responses: "200": content: application/json: schema: $ref: '#/components/schemas/GetSetupSessionResponse' 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 setup session tags: - product:moderation post: description: | Update a setup session for an app operationId: upsert_setup_session requestBody: content: application/json: schema: $ref: '#/components/schemas/UpsertSetupSessionRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/UpsertSetupSessionResponse' 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 setup session 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, optionally marking the referenced flags as false positives. 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 /api/v2/og: get: description: | Get an OpenGraph attachment for a link operationId: GetOG parameters: - in: query name: url required: true schema: description: URL to be scraped title: URL type: string writeOnly: true x-stream-index: "001" responses: "200": content: application/json: schema: $ref: '#/components/schemas/GetOGResponse' description: Get OG Attachment "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 OG tags: - product:common /api/v2/permissions: get: description: | Lists all available permissions operationId: ListPermissions responses: "200": content: application/json: schema: $ref: '#/components/schemas/ListPermissionsResponse' 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: List permissions tags: - product:common post: description: | Creates permission operationId: CreatePermission requestBody: content: application/json: schema: $ref: '#/components/schemas/CreatePermissionRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/Response' 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: Create permission tags: - product:common /api/v2/permissions/{id}: delete: description: | Deletes custom permission operationId: DeletePermission parameters: - in: path name: id required: true schema: description: Permission ID title: ID type: string writeOnly: true x-stream-index: "001" responses: "200": content: application/json: schema: $ref: '#/components/schemas/Response' 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 permission tags: - product:common get: description: | Gets custom permission operationId: GetPermission parameters: - in: path name: id required: true schema: description: Permission ID title: ID type: string writeOnly: true x-stream-index: "001" responses: "200": content: application/json: schema: $ref: '#/components/schemas/GetCustomPermissionResponse' 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 permission tags: - product:common put: description: | Updates custom permission operationId: UpdatePermission parameters: - in: path name: id required: true schema: description: Unique permission ID maxLength: 255 title: ID type: string writeOnly: true x-stream-index: "001" requestBody: content: application/json: schema: $ref: '#/components/schemas/PermissionRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/Response' 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: Update permission tags: - product:common /api/v2/polls: post: description: | Creates a new poll operationId: CreatePoll requestBody: content: application/json: schema: $ref: '#/components/schemas/CreatePollRequest' description: Create Poll Request required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/PollResponse' 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 poll tags: - product:common put: description: | Updates a poll Sends events: - feeds.poll.closed - feeds.poll.updated - poll.closed - poll.updated operationId: UpdatePoll requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdatePollRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/PollResponse' 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: Update poll tags: - product:common /api/v2/polls/{poll_id}: delete: description: | Deletes a poll Sends events: - feeds.poll.deleted - poll.deleted operationId: DeletePoll parameters: - in: path name: poll_id required: true schema: description: Poll ID maxLength: 255 title: string type: string x-stream-index: "002" - in: query name: user_id schema: type: string writeOnly: true x-stream-index: "001.001" responses: "200": content: application/json: schema: $ref: '#/components/schemas/Response' 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 poll tags: - product:common get: description: | Retrieves a poll operationId: GetPoll parameters: - in: path name: poll_id required: true schema: description: Poll ID maxLength: 255 title: string type: string x-stream-index: "002" - in: query name: user_id schema: type: string writeOnly: true x-stream-index: "001.001" responses: "200": content: application/json: schema: $ref: '#/components/schemas/PollResponse' 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 poll tags: - product:common patch: description: | Updates a poll partially Sends events: - feeds.poll.closed - feeds.poll.updated - poll.closed - poll.updated operationId: UpdatePollPartial parameters: - in: path name: poll_id required: true schema: description: Poll ID maxLength: 255 title: string type: string x-stream-index: "001" requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdatePollPartialRequest' required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/PollResponse' 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: Partial update poll tags: - product:common /api/v2/polls/{poll_id}/options: post: description: | Creates a poll option Sends events: - feeds.poll.updated - poll.updated operationId: CreatePollOption parameters: - in: path name: poll_id required: true schema: description: Poll ID maxLength: 255 title: string type: string x-stream-index: "001" requestBody: content: application/json: schema: $ref: '#/components/schemas/CreatePollOptionRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/PollOptionResponse' 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 poll option tags: - product:common put: description: | Updates a poll option Sends events: - feeds.poll.updated - poll.updated operationId: UpdatePollOption parameters: - in: path name: poll_id required: true schema: description: Poll ID maxLength: 255 title: string type: string x-stream-index: "001" requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdatePollOptionRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/PollOptionResponse' 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: Update poll option tags: - product:common /api/v2/polls/{poll_id}/options/{option_id}: delete: description: | Deletes a poll option Sends events: - feeds.poll.updated - poll.updated operationId: DeletePollOption parameters: - in: path name: poll_id required: true schema: description: Poll ID maxLength: 255 title: string type: string x-stream-index: "002" - in: path name: option_id required: true schema: description: Option ID maxLength: 255 title: string type: string x-stream-index: "003" - in: query name: user_id schema: type: string writeOnly: true x-stream-index: "001.001" responses: "200": content: application/json: schema: $ref: '#/components/schemas/Response' 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 poll option tags: - product:common get: description: | Retrieves a poll option operationId: GetPollOption parameters: - in: path name: poll_id required: true schema: description: Poll ID maxLength: 255 title: string type: string x-stream-index: "002" - in: path name: option_id required: true schema: description: Option ID maxLength: 255 title: string type: string x-stream-index: "003" - in: query name: user_id schema: type: string writeOnly: true x-stream-index: "001.001" responses: "200": content: application/json: schema: $ref: '#/components/schemas/PollOptionResponse' 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 poll option tags: - product:common /api/v2/polls/{poll_id}/votes: post: description: | Queries votes operationId: QueryPollVotes parameters: - in: path name: poll_id required: true schema: description: Poll ID maxLength: 255 title: string type: string x-stream-index: "002" - in: query name: user_id schema: type: string writeOnly: true x-stream-index: "001.001" requestBody: content: application/json: schema: $ref: '#/components/schemas/QueryPollVotesRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/PollVotesResponse' 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 votes tags: - product:common /api/v2/polls/query: post: description: | Queries polls operationId: QueryPolls parameters: - in: query name: user_id schema: type: string writeOnly: true x-stream-index: "001.001" requestBody: content: application/json: schema: $ref: '#/components/schemas/QueryPollsRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/QueryPollsResponse' 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 polls tags: - product:common /api/v2/push_preferences: post: description: | Upserts the push preferences for a user and or channel member. Set to all, mentions or none operationId: UpdatePushNotificationPreferences requestBody: content: application/json: schema: $ref: '#/components/schemas/UpsertPushPreferencesRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/UpsertPushPreferencesResponse' 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: Push notification preferences tags: - product:common /api/v2/push_providers: get: description: | List details of all push providers. operationId: ListPushProviders responses: "200": content: application/json: schema: $ref: '#/components/schemas/ListPushProvidersResponse' 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: List push providers tags: - product:common post: description: | Upsert a push provider for v2 with multi bundle/package support operationId: UpsertPushProvider requestBody: content: application/json: schema: $ref: '#/components/schemas/UpsertPushProviderRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/UpsertPushProviderResponse' 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 a push provider tags: - product:common /api/v2/push_providers/{type}/{name}: delete: description: | Delete a push provider from v2 with multi bundle/package support. v1 isn't supported in this endpoint operationId: DeletePushProvider parameters: - in: path name: type required: true schema: $ref: '#/components/schemas/PushProviderName' x-stream-index: "001" - in: path name: name required: true schema: maxLength: 36 minLength: 1 type: string writeOnly: true x-stream-index: "002" responses: "200": content: application/json: schema: $ref: '#/components/schemas/Response' 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 a push provider tags: - product:common /api/v2/push_templates: get: description: | Retrieve push notification templates for Chat. operationId: GetPushTemplates parameters: - in: query name: push_provider_name schema: description: Push provider name to filter templates title: string type: string writeOnly: true x-stream-index: "002" - in: query name: push_provider_type required: true schema: $ref: '#/components/schemas/PushProviderName' description: 'Push provider type to filter templates. One of: firebase, apn, huawei, xiaomi' title: string x-stream-description: 'Push provider type to filter templates. One of: firebase, apn, huawei, xiaomi' x-stream-index: "003" responses: "200": content: application/json: schema: $ref: '#/components/schemas/GetPushTemplatesResponse' 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 push notification templates tags: - product:common post: description: | Create or update a push notification template for a specific event type and push provider operationId: UpsertPushTemplate requestBody: content: application/json: schema: $ref: '#/components/schemas/UpsertPushTemplateRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/UpsertPushTemplateResponse' 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 a push notification template tags: - product:common /api/v2/rate_limits: get: description: | Get rate limits usage and quotas operationId: GetRateLimits parameters: - in: query name: server_side schema: description: Whether to include server-side platform limits or not title: Server-side type: boolean writeOnly: true x-stream-index: "001" - in: query name: android schema: description: Whether to include Android platform limits or not title: Android type: boolean writeOnly: true x-stream-index: "002" - in: query name: ios schema: description: Whether to include iOS platform limits or not title: iOS type: boolean writeOnly: true x-stream-index: "003" - in: query name: web schema: description: Whether to include web platform limits or not title: Web type: boolean writeOnly: true x-stream-index: "004" - in: query name: unity schema: description: Whether to include Unity platform limits or not title: Unity type: boolean writeOnly: true x-stream-index: "005" - in: query name: unity_desktop schema: description: Whether to include Unity desktop platform limits or not title: Unity desktop type: boolean writeOnly: true x-stream-index: "006" - in: query name: unity_console schema: description: Whether to include Unity console platform limits or not title: Unity console type: boolean writeOnly: true x-stream-index: "007" - in: query name: endpoints schema: description: Specific endpoints to show limits for, as a comma-separated list of values title: Endpoints type: string writeOnly: true x-stream-index: "008" responses: "200": content: application/json: schema: $ref: '#/components/schemas/GetRateLimitsResponse' description: Get Rate Limits 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 rate limits tags: - product:common /api/v2/roles: get: description: | Lists all available roles operationId: ListRoles responses: "200": content: application/json: schema: $ref: '#/components/schemas/ListRolesResponse' 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: List roles tags: - product:common post: description: | Creates custom role operationId: CreateRole requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateRoleRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/CreateRoleResponse' 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: Create role tags: - product:common /api/v2/roles/{name}: delete: description: | Deletes custom role operationId: DeleteRole parameters: - in: path name: name required: true schema: description: Role name title: Name type: string writeOnly: true x-stream-index: "001" responses: "200": content: application/json: schema: $ref: '#/components/schemas/Response' 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 role tags: - product:common /api/v2/roles/search: get: description: | Searches mentionable roles (user-assignable + channel-assignable, built-in and custom) by name prefix for autocomplete operationId: SearchRoles parameters: - in: query name: query required: true schema: description: Case-insensitive name prefix to match against role names maxLength: 255 minLength: 1 title: Query type: string writeOnly: true x-stream-index: "001" - in: query name: limit schema: description: Maximum number of roles to return (1-25, default 10) format: int32 maximum: 25 minimum: 1 title: Limit type: integer writeOnly: true x-stream-index: "002" - in: query name: name_gt schema: description: Return roles with names strictly greater than this cursor (for pagination) title: Name cursor type: string writeOnly: true x-stream-index: "003" - in: query name: role_type schema: description: 'Optional filter: ''user'' for user-assignable roles, ''channel'' for channel-assignable roles. Omit to return both.' enum: - user - channel title: Role type type: string writeOnly: true x-stream-index: "004" - in: query name: include_global_roles schema: description: When true, include cross-team operator roles whose name starts with 'global_'. Defaults to false. title: Include global roles type: boolean writeOnly: true x-stream-index: "005" responses: "200": content: application/json: schema: $ref: '#/components/schemas/SearchRolesResponse' 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: Search roles tags: - product:common /api/v2/tasks/{id}: get: description: | Gets status of a 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: Get Task 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 status of a task tags: - product:common /api/v2/uploads/file: delete: description: | Deletes previously uploaded file operationId: DeleteFile parameters: - in: query name: url schema: description: File URL to delete title: URL type: string writeOnly: true x-stream-index: "001" responses: "200": content: application/json: schema: $ref: '#/components/schemas/Response' 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 file tags: - product:common post: description: | Uploads file operationId: UploadFile requestBody: content: multipart/form-data: schema: $ref: '#/components/schemas/FileUploadRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/FileUploadResponse' 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: Upload file tags: - product:common /api/v2/uploads/image: delete: description: | Deletes previously uploaded image operationId: DeleteImage parameters: - in: query name: url schema: description: File URL to delete title: URL type: string writeOnly: true x-stream-index: "001" responses: "200": content: application/json: schema: $ref: '#/components/schemas/Response' 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 image tags: - product:common post: description: | Uploads image operationId: UploadImage requestBody: content: multipart/form-data: schema: $ref: '#/components/schemas/ImageUploadRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/ImageUploadResponse' 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: Upload image tags: - product:common /api/v2/usergroups: get: description: | Lists user groups with cursor-based pagination operationId: ListUserGroups parameters: - in: query name: limit schema: format: int32 maximum: 100 minimum: 1 type: integer writeOnly: true x-stream-index: "001" - in: query name: id_gt schema: type: string writeOnly: true x-stream-index: "002" - in: query name: created_at_gt schema: type: string writeOnly: true x-stream-index: "003" - in: query name: team_id schema: maxLength: 255 type: string writeOnly: true x-stream-index: "004" responses: "200": content: application/json: schema: $ref: '#/components/schemas/ListUserGroupsResponse' description: ListUserGroupsResponse "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 user groups tags: - product:common post: description: | Creates a new user group, optionally with initial members operationId: CreateUserGroup requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateUserGroupRequest' description: CreateUserGroupRequest required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/CreateUserGroupResponse' description: CreateUserGroupResponse "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 user group tags: - product:common /api/v2/usergroups/{id}: delete: description: | Deletes a user group and all its members operationId: DeleteUserGroup parameters: - in: path name: id required: true schema: type: string writeOnly: true x-stream-index: "001" - in: query name: team_id schema: maxLength: 255 type: string writeOnly: true x-stream-index: "002" responses: "200": content: application/json: schema: $ref: '#/components/schemas/Response' 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 user group tags: - product:common get: description: | Gets a user group by ID, including its members operationId: GetUserGroup parameters: - in: path name: id required: true schema: type: string writeOnly: true x-stream-index: "001" - in: query name: team_id schema: maxLength: 255 type: string writeOnly: true x-stream-index: "002" responses: "200": content: application/json: schema: $ref: '#/components/schemas/GetUserGroupResponse' description: GetUserGroupResponse "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 user group tags: - product:common put: description: | Updates a user group's name and/or description. team_id is immutable. operationId: UpdateUserGroup parameters: - in: path name: id required: true schema: type: string writeOnly: true x-stream-index: "001" requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateUserGroupRequest' description: UpdateUserGroupRequest required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/UpdateUserGroupResponse' description: UpdateUserGroupResponse "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 user group tags: - product:common /api/v2/usergroups/{id}/members: post: description: | Adds members to a user group. All user IDs must exist. The operation is all-or-nothing. operationId: AddUserGroupMembers parameters: - in: path name: id required: true schema: type: string writeOnly: true x-stream-index: "001" requestBody: content: application/json: schema: $ref: '#/components/schemas/AddUserGroupMembersRequest' description: AddUserGroupMembersRequest required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/AddUserGroupMembersResponse' description: AddUserGroupMembersResponse "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: Add user group members tags: - product:common /api/v2/usergroups/{id}/members/delete: post: description: | Removes members from a user group. Users already not in the group are silently ignored. operationId: RemoveUserGroupMembers parameters: - in: path name: id required: true schema: type: string writeOnly: true x-stream-index: "001" requestBody: content: application/json: schema: $ref: '#/components/schemas/RemoveUserGroupMembersRequest' description: RemoveUserGroupMembersRequest required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/RemoveUserGroupMembersResponse' description: RemoveUserGroupMembersResponse "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: Remove user group members tags: - product:common /api/v2/usergroups/search: get: description: | Searches user groups by name prefix for autocomplete operationId: SearchUserGroups parameters: - in: query name: query required: true schema: maxLength: 255 minLength: 1 type: string writeOnly: true x-stream-index: "001" - in: query name: limit schema: format: int32 maximum: 25 minimum: 1 type: integer writeOnly: true x-stream-index: "002" - in: query name: name_gt schema: type: string writeOnly: true x-stream-index: "003" - in: query name: id_gt schema: type: string writeOnly: true x-stream-index: "004" - in: query name: team_id schema: maxLength: 255 type: string writeOnly: true x-stream-index: "005" responses: "200": content: application/json: schema: $ref: '#/components/schemas/SearchUserGroupsResponse' description: SearchUserGroupsResponse "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: Search user groups tags: - product:common /api/v2/users: get: description: | Find and filter users operationId: QueryUsers parameters: - content: application/json: schema: $ref: '#/components/schemas/QueryUsersPayload' x-stream-index: "001" in: query name: payload responses: "200": content: application/json: schema: $ref: '#/components/schemas/QueryUsersResponse' 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 users tags: - product:common patch: description: | Updates certain fields of the user Sends events: - user.presence.changed - user.updated operationId: UpdateUsersPartial requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateUsersPartialRequest' required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/UpdateUsersResponse' 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: Partially update user tags: - product:common post: description: | Update or create users in bulk Sends events: - user.updated operationId: UpdateUsers requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateUsersRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/UpdateUsersResponse' 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 users tags: - product:common /api/v2/users/{user_id}/deactivate: post: description: | Deactivates user with possibility to activate it back Sends events: - user.deactivated operationId: DeactivateUser parameters: - in: path name: user_id required: true schema: title: User ID type: string writeOnly: true x-stream-index: "001" requestBody: content: application/json: schema: $ref: '#/components/schemas/DeactivateUserRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/DeactivateUserResponse' 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: Deactivate user tags: - product:common /api/v2/users/{user_id}/export: get: description: | Exports the user's profile, reactions and messages. Raises an error if a user has more than 10k messages or reactions operationId: ExportUser parameters: - in: path name: user_id required: true schema: title: User ID type: string x-stream-index: "001" responses: "200": content: application/json: schema: $ref: '#/components/schemas/ExportUserResponse' 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: Export user tags: - product:common /api/v2/users/{user_id}/reactivate: post: description: | Activates user who's been deactivated previously Sends events: - user.reactivated operationId: ReactivateUser parameters: - in: path name: user_id required: true schema: title: User ID type: string x-stream-index: "001" requestBody: content: application/json: schema: $ref: '#/components/schemas/ReactivateUserRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/ReactivateUserResponse' 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: Reactivate user tags: - product:common /api/v2/users/block: get: description: | Get list of blocked Users operationId: GetBlockedUsers parameters: - in: query name: user_id schema: type: string writeOnly: true x-stream-index: "002.001" responses: "200": content: application/json: schema: $ref: '#/components/schemas/GetBlockedUsersResponse' 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 list of blocked Users tags: - product:common post: description: | Block users operationId: BlockUsers requestBody: content: application/json: schema: $ref: '#/components/schemas/BlockUsersRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/BlockUsersResponse' 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: Block user tags: - product:common /api/v2/users/claim_guest: post: description: | Claims a guest user for a regular user. The guest is deactivated and its channel memberships, owned channels, messages and reactions are moved to the claiming user by an asynchronous task. Server-side only. Sends events: - user.claimed - user.deactivated operationId: ClaimGuestUser requestBody: content: application/json: schema: $ref: '#/components/schemas/ClaimGuestUserRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/ClaimGuestUserResponse' 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: Claim guest user tags: - product:common /api/v2/users/deactivate: post: description: | Deactivate users in batches Sends events: - user.deactivated operationId: DeactivateUsers requestBody: content: application/json: schema: $ref: '#/components/schemas/DeactivateUsersRequest' description: DeactivateUsersRequest required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/DeactivateUsersResponse' 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: Deactivate users tags: - product:common /api/v2/users/delete: post: description: | Deletes users and optionally all their belongings asynchronously. Sends events: - channel.deleted - user.deleted operationId: DeleteUsers requestBody: content: application/json: schema: $ref: '#/components/schemas/DeleteUsersRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/DeleteUsersResponse' 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 Users tags: - product:common /api/v2/users/live_locations: get: description: | Retrieves all active live locations for a user operationId: GetUserLiveLocations parameters: - in: query name: user_id schema: description: User ID to get live locations for. If not provided, returns live locations for the authenticated user. title: string type: string writeOnly: true x-stream-index: "001.001" responses: "200": content: application/json: schema: $ref: '#/components/schemas/SharedLocationsResponse' 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 user live locations tags: - product:common put: description: | Updates an existing live location with new coordinates or expiration time operationId: UpdateLiveLocation parameters: - in: query name: user_id schema: type: string writeOnly: true x-stream-index: "005.001" requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateLiveLocationRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/SharedLocationResponse' 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: Update live location tags: - product:common /api/v2/users/reactivate: post: description: | Reactivate users in batches Sends events: - user.reactivated operationId: ReactivateUsers requestBody: content: application/json: schema: $ref: '#/components/schemas/ReactivateUsersRequest' description: ReactivateUsersRequest required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/ReactivateUsersResponse' 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: Reactivate users tags: - product:common /api/v2/users/restore: post: description: | Restore soft deleted users operationId: RestoreUsers requestBody: content: application/json: schema: $ref: '#/components/schemas/RestoreUsersRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/Response' 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: Restore users tags: - product:common /api/v2/users/unblock: post: description: | Unblock users operationId: UnblockUsers requestBody: content: application/json: schema: $ref: '#/components/schemas/UnblockUsersRequest' required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/UnblockUsersResponse' 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: Unblock user tags: - product:common security: - JWT: [] api_key: [] stream-auth-type: [] - api_key: [] stream-auth-type: [] servers: - description: Stream API url: https://chat.stream-io-api.com x-stream-date-directions-split: true