---
title: "Mark channels as read"
method: POST
path: "/channels/read"
tags: ["product:chat"]
---

# Mark channels as read

`POST /channels/read`

Marks channels as read up to the specific message. If no channels is given, mark all channel as read

Sends events:
- message.read

## Request body

- MarkChannelsReadRequest, nullable
  - `read_by_channel` object — Map of channel ID to last read message ID
  - `user` UserRequest — User request object
    - `custom` object — Custom user data
    - `id` string, required — User ID
    - `image` string — User's profile image URL
    - `invisible` boolean
    - `language` string
    - `name` string — Optional name of user
    - `privacy_settings` PrivacySettingsResponse
      - `delivery_receipts` DeliveryReceiptsResponse
        - `enabled` boolean
      - `read_receipts` ReadReceiptsResponse
        - `enabled` boolean
      - `typing_indicators` TypingIndicatorsResponse
        - `enabled` boolean
    - `role` string — User's global role
    - `teams` string[] — List of teams the user belongs to
    - `teams_role` object — Map of team-specific roles for the user
  - `user_id` string

## Response `201`

Successful response

- MarkReadResponse, nullable
  - `duration` string, required — Duration of the request in milliseconds
  - `event` MarkReadResponseEvent
    - `channel` ChannelResponse — Represents channel in chat
      - `auto_translation_enabled` boolean — Whether auto translation is enabled or not
      - `auto_translation_language` string — Language (or comma-separated list of languages) to translate to when auto translation is active
      - `blocked` boolean — Whether this channel is blocked by current user or not
      - `cid` string, required — Channel CID (<type>:<id>)
      - `config` ChannelConfigWithInfo
        - `allowed_flag_reasons` string[]
        - `automod` 'disabled' | 'simple' | 'AI', required
        - `automod_behavior` 'flag' | 'block' | 'shadow_block', required
        - `automod_thresholds` Thresholds — Sets thresholds for AI moderation
          - `explicit` LabelThresholds
            - `block` number, float — Threshold for automatic message block
            - `flag` number, float — Threshold for automatic message flag
          - `spam` LabelThresholds
            - `block` number, float — Threshold for automatic message block
            - `flag` number, float — Threshold for automatic message flag
          - `toxic` LabelThresholds
            - `block` number, float — Threshold for automatic message block
            - `flag` number, float — Threshold for automatic message flag
        - `blocklist` string
        - `blocklist_behavior` 'flag' | 'block' | 'shadow_block'
        - `blocklists` BlockListOptions[]
          - `behavior` 'flag' | 'block' | 'shadow_block', required — Blocklist behavior. One of: flag, block, shadow_block
          - `blocklist` string, required — Blocklist name
        - `chat_preferences` ChatPreferences
          - `channel_mentions` string
          - `default_preference` string
          - `direct_mentions` string
          - `distinct_channel_messages` string
          - `group_mentions` string
          - `here_mentions` string
          - `role_mentions` string
          - `thread_replies` string
        - `commands` Command[], required
          - `args` string, required — Arguments help text, shown in commands auto-completion
          - `created_at` string, date-time — Date/time of creation
          - `description` string, required — Description, shown in commands auto-completion
          - `name` string, required — Unique command name
          - `set` string, required — Set name used for grouping commands
          - `updated_at` string, date-time — Date/time of the last update
        - `connect_events` boolean, required
        - `count_messages` boolean, required
        - `created_at` string, date-time, required
        - `custom_events` boolean, required
        - `delivery_events` boolean, required
        - `grants` object
        - `mark_messages_pending` boolean, required
        - `max_message_length` integer, required
        - `message_retention` string, required
        - `mutes` boolean, required
        - `name` string, required
        - `partition_size` integer
        - `partition_ttl` string, duration, nullable
        - `polls` boolean, required
        - `push_level` 'all' | 'all_mentions' | 'mentions' | 'direct_mentions' | 'none'
        - `push_notifications` boolean, required
        - `quotes` boolean, required
        - `reactions` boolean, required
        - `read_events` boolean, required
        - `reminders` boolean, required
        - `replies` boolean, required
        - `search` boolean, required
        - `shared_locations` boolean, required
        - `skip_last_msg_update_for_system_msgs` boolean, required
        - `typing_events` boolean, required
        - `updated_at` string, date-time, required
        - `uploads` boolean, required
        - `url_enrichment` boolean, required
        - `user_message_reminders` boolean, required
      - `cooldown` integer — Cooldown period after sending each message
      - `created_at` string, date-time, required — Date/time of creation
      - `created_by` UserResponse — User response object
        - `avg_response_time` integer
        - `ban_expires` string, date-time — Date when ban expires
        - `banned` boolean, required — Whether a user is banned or not
        - `blocked_user_ids` string[], required
        - `bypass_moderation` boolean
        - `created_at` string, date-time, required — Date/time of creation
        - `custom` object, required — Custom data for this object
        - `deactivated_at` string, date-time — Date of deactivation
        - `deleted_at` string, date-time — Date/time of deletion
        - `devices` DeviceResponse[] — List of devices user is using
          - `created_at` string, date-time, required — Date/time of creation
          - `disabled` boolean — Whether device is disabled or not
          - `disabled_reason` string — Reason explaining why device had been disabled
          - `hardware_id` string — Stable physical device identifier used to deduplicate pushes across push providers
          - `id` string, required — Device ID
          - `push_provider` string, required — Push provider
          - `push_provider_name` string — Push provider name
          - `user_id` string, required — User ID
          - `voip` boolean — When true the token is for Apple VoIP push notifications
        - `id` string, required — Unique user identifier
        - `image` string
        - `invisible` boolean, required
        - `language` string, required — Preferred language of a user
        - `last_active` string, date-time — Date of last activity
        - `name` string — Optional name of user
        - `online` boolean, required — Whether a user online or not
        - `privacy_settings` PrivacySettingsResponse
          - `delivery_receipts` DeliveryReceiptsResponse
            - `enabled` boolean
          - `read_receipts` ReadReceiptsResponse
            - `enabled` boolean
          - `typing_indicators` TypingIndicatorsResponse
            - `enabled` boolean
        - `push_notifications` PushNotificationSettingsResponse
          - `disabled` boolean
          - `disabled_until` string, date-time
        - `revoke_tokens_issued_before` string, date-time — Revocation date for tokens
        - `role` string, required — Determines the set of user permissions
        - `shadow_banned` boolean, required — Whether a user is shadow banned
        - `teams` string[], required — List of teams user is a part of
        - `teams_role` object
        - `updated_at` string, date-time, required — Date/time of the last update
      - `custom` object, required — Custom data for this object
      - `deleted_at` string, date-time — Date/time of deletion
      - `disabled` boolean, required
      - `filter_tags` string[] — List of filter tags associated with the channel
      - `frozen` boolean, required — Whether channel is frozen or not
      - `hidden` boolean — Whether this channel is hidden by current user or not
      - `hide_messages_before` string, date-time — Date since when the message history is accessible
      - `id` string, required — Channel unique ID
      - `last_message_at` string, date-time — Date of the last message sent
      - `member_count` integer — Number of members in the channel
      - `members` ChannelMemberResponse[] — List of channel members (max 100)
        - `archived_at` string, date-time
        - `ban_expires` string, date-time — Expiration date of the ban
        - `ban_from_future_channels` boolean — 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)
        - `banned` boolean, required — Whether member is banned this channel or not
        - `channel_role` string, required — Role of the member in the channel
        - `created_at` string, date-time, required — Date/time of creation
        - `custom` object, required
        - `deleted_at` string, date-time
        - `deleted_messages` string[]
        - `future_channel_ban_expires` string, date-time — Expiration date of the future channel ban; absent when the future channel ban is permanent
        - `invite_accepted_at` string, date-time — Date when invite was accepted
        - `invite_rejected_at` string, date-time — Date when invite was rejected
        - `invited` boolean — Whether member was invited or not
        - `is_moderator` boolean — Whether member is channel moderator or not
        - `notifications_muted` boolean, required
        - `pinned_at` string, date-time
        - `role` string — Permission level of the member in the channel (DEPRECATED: use channel_role instead). One of: member, moderator, admin, owner
        - `shadow_banned` boolean, required — Whether member is shadow banned in this channel or not
        - `status` string
        - `updated_at` string, date-time, required — Date/time of the last update
        - `user` UserResponse — User response object
          - `avg_response_time` integer
          - `ban_expires` string, date-time — Date when ban expires
          - `banned` boolean, required — Whether a user is banned or not
          - `blocked_user_ids` string[], required
          - `bypass_moderation` boolean
          - `created_at` string, date-time, required — Date/time of creation
          - `custom` object, required — Custom data for this object
          - `deactivated_at` string, date-time — Date of deactivation
          - `deleted_at` string, date-time — Date/time of deletion
          - `devices` DeviceResponse[] — List of devices user is using
            - `created_at` string, date-time, required — Date/time of creation
            - `disabled` boolean — Whether device is disabled or not
            - `disabled_reason` string — Reason explaining why device had been disabled
            - `hardware_id` string — Stable physical device identifier used to deduplicate pushes across push providers
            - `id` string, required — Device ID
            - `push_provider` string, required — Push provider
            - `push_provider_name` string — Push provider name
            - `user_id` string, required — User ID
            - `voip` boolean — When true the token is for Apple VoIP push notifications
          - `id` string, required — Unique user identifier
          - `image` string
          - `invisible` boolean, required
          - `language` string, required — Preferred language of a user
          - `last_active` string, date-time — Date of last activity
          - `name` string — Optional name of user
          - `online` boolean, required — Whether a user online or not
          - `privacy_settings` PrivacySettingsResponse
            - `delivery_receipts` DeliveryReceiptsResponse
              - …
            - `read_receipts` ReadReceiptsResponse
              - …
            - `typing_indicators` TypingIndicatorsResponse
              - …
          - `push_notifications` PushNotificationSettingsResponse
            - `disabled` boolean
            - `disabled_until` string, date-time
          - `revoke_tokens_issued_before` string, date-time — Revocation date for tokens
          - `role` string, required — Determines the set of user permissions
          - `shadow_banned` boolean, required — Whether a user is shadow banned
          - `teams` string[], required — List of teams user is a part of
          - `teams_role` object
          - `updated_at` string, date-time, required — Date/time of the last update
        - `user_id` string
      - `message_count` integer — Number of messages in the channel
      - `mute_expires_at` string, date-time — Date of mute expiration
      - `muted` boolean — Whether this channel is muted or not
      - `own_capabilities` ChannelOwnCapability[] — List of channel capabilities of authenticated user
      - `team` string — Team the channel belongs to (multi-tenant only)
      - `truncated_at` string, date-time — Date of the latest truncation of the channel
      - `truncated_by` UserResponse — User response object
        - `avg_response_time` integer
        - `ban_expires` string, date-time — Date when ban expires
        - `banned` boolean, required — Whether a user is banned or not
        - `blocked_user_ids` string[], required
        - `bypass_moderation` boolean
        - `created_at` string, date-time, required — Date/time of creation
        - `custom` object, required — Custom data for this object
        - `deactivated_at` string, date-time — Date of deactivation
        - `deleted_at` string, date-time — Date/time of deletion
        - `devices` DeviceResponse[] — List of devices user is using
          - `created_at` string, date-time, required — Date/time of creation
          - `disabled` boolean — Whether device is disabled or not
          - `disabled_reason` string — Reason explaining why device had been disabled
          - `hardware_id` string — Stable physical device identifier used to deduplicate pushes across push providers
          - `id` string, required — Device ID
          - `push_provider` string, required — Push provider
          - `push_provider_name` string — Push provider name
          - `user_id` string, required — User ID
          - `voip` boolean — When true the token is for Apple VoIP push notifications
        - `id` string, required — Unique user identifier
        - `image` string
        - `invisible` boolean, required
        - `language` string, required — Preferred language of a user
        - `last_active` string, date-time — Date of last activity
        - `name` string — Optional name of user
        - `online` boolean, required — Whether a user online or not
        - `privacy_settings` PrivacySettingsResponse
          - `delivery_receipts` DeliveryReceiptsResponse
            - `enabled` boolean
          - `read_receipts` ReadReceiptsResponse
            - `enabled` boolean
          - `typing_indicators` TypingIndicatorsResponse
            - `enabled` boolean
        - `push_notifications` PushNotificationSettingsResponse
          - `disabled` boolean
          - `disabled_until` string, date-time
        - `revoke_tokens_issued_before` string, date-time — Revocation date for tokens
        - `role` string, required — Determines the set of user permissions
        - `shadow_banned` boolean, required — Whether a user is shadow banned
        - `teams` string[], required — List of teams user is a part of
        - `teams_role` object
        - `updated_at` string, date-time, required — Date/time of the last update
      - `type` string, required — Type of the channel
      - `updated_at` string, date-time, required — Date/time of the last update
    - `channel_id` string, required
    - `channel_last_message_at` string, date-time
    - `channel_type` string, required
    - `cid` string, required
    - `created_at` string, date-time, required
    - `last_read_message_id` string
    - `team` string
    - `thread` ThreadResponse
      - `active_participant_count` integer, required — Active Participant Count
      - `channel` ChannelResponse — Represents channel in chat
        - `auto_translation_enabled` boolean — Whether auto translation is enabled or not
        - `auto_translation_language` string — Language (or comma-separated list of languages) to translate to when auto translation is active
        - `blocked` boolean — Whether this channel is blocked by current user or not
        - `cid` string, required — Channel CID (<type>:<id>)
        - `config` ChannelConfigWithInfo
          - `allowed_flag_reasons` string[]
          - `automod` 'disabled' | 'simple' | 'AI', required
          - `automod_behavior` 'flag' | 'block' | 'shadow_block', required
          - `automod_thresholds` Thresholds — Sets thresholds for AI moderation
            - `explicit` LabelThresholds
              - …
            - `spam` LabelThresholds
              - …
            - `toxic` LabelThresholds
              - …
          - `blocklist` string
          - `blocklist_behavior` 'flag' | 'block' | 'shadow_block'
          - `blocklists` BlockListOptions[]
            - `behavior` 'flag' | 'block' | 'shadow_block', required — Blocklist behavior. One of: flag, block, shadow_block
            - `blocklist` string, required — Blocklist name
          - `chat_preferences` ChatPreferences
            - `channel_mentions` string
            - `default_preference` string
            - `direct_mentions` string
            - `distinct_channel_messages` string
            - `group_mentions` string
            - `here_mentions` string
            - `role_mentions` string
            - `thread_replies` string
          - `commands` Command[], required
            - `args` string, required — Arguments help text, shown in commands auto-completion
            - `created_at` string, date-time — Date/time of creation
            - `description` string, required — Description, shown in commands auto-completion
            - `name` string, required — Unique command name
            - `set` string, required — Set name used for grouping commands
            - `updated_at` string, date-time — Date/time of the last update
          - `connect_events` boolean, required
          - `count_messages` boolean, required
          - `created_at` string, date-time, required
          - `custom_events` boolean, required
          - `delivery_events` boolean, required
          - `grants` object
          - `mark_messages_pending` boolean, required
          - `max_message_length` integer, required
          - `message_retention` string, required
          - `mutes` boolean, required
          - `name` string, required
          - `partition_size` integer
          - `partition_ttl` string, duration, nullable
          - `polls` boolean, required
          - `push_level` 'all' | 'all_mentions' | 'mentions' | 'direct_mentions' | 'none'
          - `push_notifications` boolean, required
          - `quotes` boolean, required
          - `reactions` boolean, required
          - `read_events` boolean, required
          - `reminders` boolean, required
          - `replies` boolean, required
          - `search` boolean, required
          - `shared_locations` boolean, required
          - `skip_last_msg_update_for_system_msgs` boolean, required
          - `typing_events` boolean, required
          - `updated_at` string, date-time, required
          - `uploads` boolean, required
          - `url_enrichment` boolean, required
          - `user_message_reminders` boolean, required
        - `cooldown` integer — Cooldown period after sending each message
        - `created_at` string, date-time, required — Date/time of creation
        - `created_by` UserResponse — User response object
          - `avg_response_time` integer
          - `ban_expires` string, date-time — Date when ban expires
          - `banned` boolean, required — Whether a user is banned or not
          - `blocked_user_ids` string[], required
          - `bypass_moderation` boolean
          - `created_at` string, date-time, required — Date/time of creation
          - `custom` object, required — Custom data for this object
          - `deactivated_at` string, date-time — Date of deactivation
          - `deleted_at` string, date-time — Date/time of deletion
          - `devices` DeviceResponse[] — List of devices user is using
            - `created_at` string, date-time, required — Date/time of creation
            - `disabled` boolean — Whether device is disabled or not
            - `disabled_reason` string — Reason explaining why device had been disabled
            - `hardware_id` string — Stable physical device identifier used to deduplicate pushes across push providers
            - `id` string, required — Device ID
            - `push_provider` string, required — Push provider
            - `push_provider_name` string — Push provider name
            - `user_id` string, required — User ID
            - `voip` boolean — When true the token is for Apple VoIP push notifications
          - `id` string, required — Unique user identifier
          - `image` string
          - `invisible` boolean, required
          - `language` string, required — Preferred language of a user
          - `last_active` string, date-time — Date of last activity
          - `name` string — Optional name of user
          - `online` boolean, required — Whether a user online or not
          - `privacy_settings` PrivacySettingsResponse
            - `delivery_receipts` DeliveryReceiptsResponse
              - …
            - `read_receipts` ReadReceiptsResponse
              - …
            - `typing_indicators` TypingIndicatorsResponse
              - …
          - `push_notifications` PushNotificationSettingsResponse
            - `disabled` boolean
            - `disabled_until` string, date-time
          - `revoke_tokens_issued_before` string, date-time — Revocation date for tokens
          - `role` string, required — Determines the set of user permissions
          - `shadow_banned` boolean, required — Whether a user is shadow banned
          - `teams` string[], required — List of teams user is a part of
          - `teams_role` object
          - `updated_at` string, date-time, required — Date/time of the last update
        - `custom` object, required — Custom data for this object
        - `deleted_at` string, date-time — Date/time of deletion
        - `disabled` boolean, required
        - `filter_tags` string[] — List of filter tags associated with the channel
        - `frozen` boolean, required — Whether channel is frozen or not
        - `hidden` boolean — Whether this channel is hidden by current user or not
        - `hide_messages_before` string, date-time — Date since when the message history is accessible
        - `id` string, required — Channel unique ID
        - `last_message_at` string, date-time — Date of the last message sent
        - `member_count` integer — Number of members in the channel
        - `members` ChannelMemberResponse[] — List of channel members (max 100)
          - `archived_at` string, date-time
          - `ban_expires` string, date-time — Expiration date of the ban
          - `ban_from_future_channels` boolean — 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)
          - `banned` boolean, required — Whether member is banned this channel or not
          - `channel_role` string, required — Role of the member in the channel
          - `created_at` string, date-time, required — Date/time of creation
          - `custom` object, required
          - `deleted_at` string, date-time
          - `deleted_messages` string[]
          - `future_channel_ban_expires` string, date-time — Expiration date of the future channel ban; absent when the future channel ban is permanent
          - `invite_accepted_at` string, date-time — Date when invite was accepted
          - `invite_rejected_at` string, date-time — Date when invite was rejected
          - `invited` boolean — Whether member was invited or not
          - `is_moderator` boolean — Whether member is channel moderator or not
          - `notifications_muted` boolean, required
          - `pinned_at` string, date-time
          - `role` string — Permission level of the member in the channel (DEPRECATED: use channel_role instead). One of: member, moderator, admin, owner
          - `shadow_banned` boolean, required — Whether member is shadow banned in this channel or not
          - `status` string
          - `updated_at` string, date-time, required — Date/time of the last update
          - `user` UserResponse — User response object
            - `avg_response_time` integer
            - `ban_expires` string, date-time — Date when ban expires
            - `banned` boolean, required — Whether a user is banned or not
            - `blocked_user_ids` string[], required
            - `bypass_moderation` boolean
            - `created_at` string, date-time, required — Date/time of creation
            - `custom` object, required — Custom data for this object
            - `deactivated_at` string, date-time — Date of deactivation
            - `deleted_at` string, date-time — Date/time of deletion
            - `devices` DeviceResponse[] — List of devices user is using
              - …
            - `id` string, required — Unique user identifier
            - `image` string
            - `invisible` boolean, required
            - `language` string, required — Preferred language of a user
            - `last_active` string, date-time — Date of last activity
            - `name` string — Optional name of user
            - `online` boolean, required — Whether a user online or not
            - `privacy_settings` PrivacySettingsResponse
              - …
            - `push_notifications` PushNotificationSettingsResponse
              - …
            - `revoke_tokens_issued_before` string, date-time — Revocation date for tokens
            - `role` string, required — Determines the set of user permissions
            - `shadow_banned` boolean, required — Whether a user is shadow banned
            - `teams` string[], required — List of teams user is a part of
            - `teams_role` object
            - `updated_at` string, date-time, required — Date/time of the last update
          - `user_id` string
        - `message_count` integer — Number of messages in the channel
        - `mute_expires_at` string, date-time — Date of mute expiration
        - `muted` boolean — Whether this channel is muted or not
        - `own_capabilities` ChannelOwnCapability[] — List of channel capabilities of authenticated user
        - `team` string — Team the channel belongs to (multi-tenant only)
        - `truncated_at` string, date-time — Date of the latest truncation of the channel
        - `truncated_by` UserResponse — User response object
          - `avg_response_time` integer
          - `ban_expires` string, date-time — Date when ban expires
          - `banned` boolean, required — Whether a user is banned or not
          - `blocked_user_ids` string[], required
          - `bypass_moderation` boolean
          - `created_at` string, date-time, required — Date/time of creation
          - `custom` object, required — Custom data for this object
          - `deactivated_at` string, date-time — Date of deactivation
          - `deleted_at` string, date-time — Date/time of deletion
          - `devices` DeviceResponse[] — List of devices user is using
            - `created_at` string, date-time, required — Date/time of creation
            - `disabled` boolean — Whether device is disabled or not
            - `disabled_reason` string — Reason explaining why device had been disabled
            - `hardware_id` string — Stable physical device identifier used to deduplicate pushes across push providers
            - `id` string, required — Device ID
            - `push_provider` string, required — Push provider
            - `push_provider_name` string — Push provider name
            - `user_id` string, required — User ID
            - `voip` boolean — When true the token is for Apple VoIP push notifications
          - `id` string, required — Unique user identifier
          - `image` string
          - `invisible` boolean, required
          - `language` string, required — Preferred language of a user
          - `last_active` string, date-time — Date of last activity
          - `name` string — Optional name of user
          - `online` boolean, required — Whether a user online or not
          - `privacy_settings` PrivacySettingsResponse
            - `delivery_receipts` DeliveryReceiptsResponse
              - …
            - `read_receipts` ReadReceiptsResponse
              - …
            - `typing_indicators` TypingIndicatorsResponse
              - …
          - `push_notifications` PushNotificationSettingsResponse
            - `disabled` boolean
            - `disabled_until` string, date-time
          - `revoke_tokens_issued_before` string, date-time — Revocation date for tokens
          - `role` string, required — Determines the set of user permissions
          - `shadow_banned` boolean, required — Whether a user is shadow banned
          - `teams` string[], required — List of teams user is a part of
          - `teams_role` object
          - `updated_at` string, date-time, required — Date/time of the last update
        - `type` string, required — Type of the channel
        - `updated_at` string, date-time, required — Date/time of the last update
      - `channel_cid` string, required — Channel CID
      - `created_at` string, date-time, required — Date/time of creation
      - `created_by` UserResponse — User response object
        - `avg_response_time` integer
        - `ban_expires` string, date-time — Date when ban expires
        - `banned` boolean, required — Whether a user is banned or not
        - `blocked_user_ids` string[], required
        - `bypass_moderation` boolean
        - `created_at` string, date-time, required — Date/time of creation
        - `custom` object, required — Custom data for this object
        - `deactivated_at` string, date-time — Date of deactivation
        - `deleted_at` string, date-time — Date/time of deletion
        - `devices` DeviceResponse[] — List of devices user is using
          - `created_at` string, date-time, required — Date/time of creation
          - `disabled` boolean — Whether device is disabled or not
          - `disabled_reason` string — Reason explaining why device had been disabled
          - `hardware_id` string — Stable physical device identifier used to deduplicate pushes across push providers
          - `id` string, required — Device ID
          - `push_provider` string, required — Push provider
          - `push_provider_name` string — Push provider name
          - `user_id` string, required — User ID
          - `voip` boolean — When true the token is for Apple VoIP push notifications
        - `id` string, required — Unique user identifier
        - `image` string
        - `invisible` boolean, required
        - `language` string, required — Preferred language of a user
        - `last_active` string, date-time — Date of last activity
        - `name` string — Optional name of user
        - `online` boolean, required — Whether a user online or not
        - `privacy_settings` PrivacySettingsResponse
          - `delivery_receipts` DeliveryReceiptsResponse
            - `enabled` boolean
          - `read_receipts` ReadReceiptsResponse
            - `enabled` boolean
          - `typing_indicators` TypingIndicatorsResponse
            - `enabled` boolean
        - `push_notifications` PushNotificationSettingsResponse
          - `disabled` boolean
          - `disabled_until` string, date-time
        - `revoke_tokens_issued_before` string, date-time — Revocation date for tokens
        - `role` string, required — Determines the set of user permissions
        - `shadow_banned` boolean, required — Whether a user is shadow banned
        - `teams` string[], required — List of teams user is a part of
        - `teams_role` object
        - `updated_at` string, date-time, required — Date/time of the last update
      - `created_by_user_id` string, required — Created By User ID
      - `custom` object, required — Custom data for this object
      - `deleted_at` string, date-time — Deleted At
      - `last_message_at` string, date-time — Last Message At
      - `parent_message` MessageResponse — Represents any chat message
        - `attachments` Attachment[], required — Array of message attachments
          - `actions` Action[]
            - `name` string, required
            - `style` string
            - `text` string, required
            - `type` string, required
            - `value` string
          - `asset_url` string
          - `author_icon` string
          - `author_link` string
          - `author_name` string
          - `color` string
          - `custom` object, required
          - `fallback` string
          - `fields` Field[]
            - `short` boolean, required
            - `title` string, required
            - `value` string, required
          - `footer` string
          - `footer_icon` string
          - `giphy` Images
            - `fixed_height` ImageData, required
              - …
            - `fixed_height_downsampled` ImageData, required
              - …
            - `fixed_height_still` ImageData, required
              - …
            - `fixed_width` ImageData, required
              - …
            - `fixed_width_downsampled` ImageData, required
              - …
            - `fixed_width_still` ImageData, required
              - …
            - `original` ImageData, required
              - …
          - `image_url` string
          - `og_scrape_url` string
          - `original_height` integer
          - `original_width` integer
          - `pretext` string
          - `text` string
          - `thumb_url` string
          - `title` string
          - `title_link` string
          - `type` string — Attachment type (e.g. image, video, url)
        - `cid` string, required — Channel unique identifier in <type>:<id> format
        - `command` string — Contains provided slash command
        - `created_at` string, date-time, required — Date/time of creation
        - `custom` object, required
        - `deleted_at` string, date-time — Date/time of deletion
        - `deleted_for_me` boolean
        - `deleted_reply_count` integer, required
        - `draft` DraftResponse
          - `channel` ChannelResponse — Represents channel in chat
            - `auto_translation_enabled` boolean — Whether auto translation is enabled or not
            - `auto_translation_language` string — Language (or comma-separated list of languages) to translate to when auto translation is active
            - `blocked` boolean — Whether this channel is blocked by current user or not
            - `cid` string, required — Channel CID (<type>:<id>)
            - `config` ChannelConfigWithInfo
              - …
            - `cooldown` integer — Cooldown period after sending each message
            - `created_at` string, date-time, required — Date/time of creation
            - `created_by` UserResponse — User response object
              - …
            - `custom` object, required — Custom data for this object
            - `deleted_at` string, date-time — Date/time of deletion
            - `disabled` boolean, required
            - `filter_tags` string[] — List of filter tags associated with the channel
            - `frozen` boolean, required — Whether channel is frozen or not
            - `hidden` boolean — Whether this channel is hidden by current user or not
            - `hide_messages_before` string, date-time — Date since when the message history is accessible
            - `id` string, required — Channel unique ID
            - `last_message_at` string, date-time — Date of the last message sent
            - `member_count` integer — Number of members in the channel
            - `members` ChannelMemberResponse[] — List of channel members (max 100)
              - …
            - `message_count` integer — Number of messages in the channel
            - `mute_expires_at` string, date-time — Date of mute expiration
            - `muted` boolean — Whether this channel is muted or not
            - `own_capabilities` ChannelOwnCapability[] — List of channel capabilities of authenticated user
            - `team` string — Team the channel belongs to (multi-tenant only)
            - `truncated_at` string, date-time — Date of the latest truncation of the channel
            - `truncated_by` UserResponse — User response object
              - …
            - `type` string, required — Type of the channel
            - `updated_at` string, date-time, required — Date/time of the last update
          - `channel_cid` string, required
          - `created_at` string, date-time, required
          - `message` DraftPayloadResponse, required — Contains the draft message content
            - `attachments` Attachment[] — Array of message attachments
              - …
            - `custom` object, required
            - `html` string — Contains HTML markup of the message
            - `id` string, required — Message ID is unique string identifier of the message
            - `mentioned_users` UserResponse[] — List of mentioned users
              - …
            - `mml` string — MML content of the message
            - `parent_id` string — ID of parent message (thread)
            - `poll_id` string — Identifier of the poll to include in the message
            - `quoted_message_id` string
            - `show_in_channel` boolean — Whether thread reply should be shown in the channel as well
            - `silent` boolean — Whether message is silent or not
            - `text` string, required — Text of the message
            - `type` string — Contains type of the message. One of: regular, system
          - `parent_id` string
          - `parent_message` MessageResponse — recursive
          - `quoted_message` MessageResponse — recursive
        - `html` string, required — Contains HTML markup of the message. Can only be set when using server-side API
        - `i18n` object — Object with translations. Key `language` contains the original language key. Other keys contain translations
        - `id` string, required — Message ID is unique string identifier of the message
        - `image_labels` object — Contains image moderation information
        - `latest_reactions` ReactionResponse[], required — List of 10 latest reactions to this message
          - `created_at` string, date-time, required — Date/time of creation
          - `custom` object, required — Custom data for this object
          - `message_id` string, required — Message ID
          - `score` integer, required — Score of the reaction
          - `type` string, required — Type of reaction
          - `updated_at` string, date-time, required — Date/time of the last update
          - `user` UserResponse, required — User response object
            - `avg_response_time` integer
            - `ban_expires` string, date-time — Date when ban expires
            - `banned` boolean, required — Whether a user is banned or not
            - `blocked_user_ids` string[], required
            - `bypass_moderation` boolean
            - `created_at` string, date-time, required — Date/time of creation
            - `custom` object, required — Custom data for this object
            - `deactivated_at` string, date-time — Date of deactivation
            - `deleted_at` string, date-time — Date/time of deletion
            - `devices` DeviceResponse[] — List of devices user is using
              - …
            - `id` string, required — Unique user identifier
            - `image` string
            - `invisible` boolean, required
            - `language` string, required — Preferred language of a user
            - `last_active` string, date-time — Date of last activity
            - `name` string — Optional name of user
            - `online` boolean, required — Whether a user online or not
            - `privacy_settings` PrivacySettingsResponse
              - …
            - `push_notifications` PushNotificationSettingsResponse
              - …
            - `revoke_tokens_issued_before` string, date-time — Revocation date for tokens
            - `role` string, required — Determines the set of user permissions
            - `shadow_banned` boolean, required — Whether a user is shadow banned
            - `teams` string[], required — List of teams user is a part of
            - `teams_role` object
            - `updated_at` string, date-time, required — Date/time of the last update
          - `user_id` string, required — User ID
        - `member` ChannelMemberPartialResponse
          - `channel_role` string, required — Role of the member in the channel
          - `custom` object — Channel-member custom fields projected via `member_custom_include`
          - `notifications_muted` boolean, required — Whether the user muted notifications for this channel
        - `mentioned_channel` boolean, required — Whether the message mentioned the channel tag
        - `mentioned_channel_members` object — 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
        - `mentioned_group_ids` string[] — 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
        - `mentioned_groups` UserGroupResponse[] — List of mentioned user group objects.
          - `created_at` string, date-time, required
          - `created_by` string
          - `description` string
          - `id` string, required
          - `members` UserGroupMember[]
            - `app_pk` integer, required
            - `created_at` string, date-time, required
            - `group_id` string, required
            - `is_admin` boolean, required
            - `user_id` string, required
          - `name` string, required
          - `team_id` string
          - `updated_at` string, date-time, required
        - `mentioned_here` boolean, required — Whether the message mentioned online users with @here tag
        - `mentioned_roles` string[] — 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
        - `mentioned_users` UserResponse[], required — List of mentioned users
          - `avg_response_time` integer
          - `ban_expires` string, date-time — Date when ban expires
          - `banned` boolean, required — Whether a user is banned or not
          - `blocked_user_ids` string[], required
          - `bypass_moderation` boolean
          - `created_at` string, date-time, required — Date/time of creation
          - `custom` object, required — Custom data for this object
          - `deactivated_at` string, date-time — Date of deactivation
          - `deleted_at` string, date-time — Date/time of deletion
          - `devices` DeviceResponse[] — List of devices user is using
            - `created_at` string, date-time, required — Date/time of creation
            - `disabled` boolean — Whether device is disabled or not
            - `disabled_reason` string — Reason explaining why device had been disabled
            - `hardware_id` string — Stable physical device identifier used to deduplicate pushes across push providers
            - `id` string, required — Device ID
            - `push_provider` string, required — Push provider
            - `push_provider_name` string — Push provider name
            - `user_id` string, required — User ID
            - `voip` boolean — When true the token is for Apple VoIP push notifications
          - `id` string, required — Unique user identifier
          - `image` string
          - `invisible` boolean, required
          - `language` string, required — Preferred language of a user
          - `last_active` string, date-time — Date of last activity
          - `name` string — Optional name of user
          - `online` boolean, required — Whether a user online or not
          - `privacy_settings` PrivacySettingsResponse
            - `delivery_receipts` DeliveryReceiptsResponse
              - …
            - `read_receipts` ReadReceiptsResponse
              - …
            - `typing_indicators` TypingIndicatorsResponse
              - …
          - `push_notifications` PushNotificationSettingsResponse
            - `disabled` boolean
            - `disabled_until` string, date-time
          - `revoke_tokens_issued_before` string, date-time — Revocation date for tokens
          - `role` string, required — Determines the set of user permissions
          - `shadow_banned` boolean, required — Whether a user is shadow banned
          - `teams` string[], required — List of teams user is a part of
          - `teams_role` object
          - `updated_at` string, date-time, required — Date/time of the last update
        - `message_text_updated_at` string, date-time
        - `mml` string — Should be empty if `text` is provided. Can only be set when using server-side API
        - `moderation` ModerationV2Response
          - `action` string, required
          - `blocklist_matched` string
          - `blocklists_matched` string[]
          - `image_harms` string[]
          - `original_text` string, required
          - `platform_circumvented` boolean
          - `semantic_filter_matched` string
          - `text_harms` string[]
        - `own_reactions` ReactionResponse[], required — List of 10 latest reactions of authenticated user to this message
          - `created_at` string, date-time, required — Date/time of creation
          - `custom` object, required — Custom data for this object
          - `message_id` string, required — Message ID
          - `score` integer, required — Score of the reaction
          - `type` string, required — Type of reaction
          - `updated_at` string, date-time, required — Date/time of the last update
          - `user` UserResponse, required — User response object
            - `avg_response_time` integer
            - `ban_expires` string, date-time — Date when ban expires
            - `banned` boolean, required — Whether a user is banned or not
            - `blocked_user_ids` string[], required
            - `bypass_moderation` boolean
            - `created_at` string, date-time, required — Date/time of creation
            - `custom` object, required — Custom data for this object
            - `deactivated_at` string, date-time — Date of deactivation
            - `deleted_at` string, date-time — Date/time of deletion
            - `devices` DeviceResponse[] — List of devices user is using
              - …
            - `id` string, required — Unique user identifier
            - `image` string
            - `invisible` boolean, required
            - `language` string, required — Preferred language of a user
            - `last_active` string, date-time — Date of last activity
            - `name` string — Optional name of user
            - `online` boolean, required — Whether a user online or not
            - `privacy_settings` PrivacySettingsResponse
              - …
            - `push_notifications` PushNotificationSettingsResponse
              - …
            - `revoke_tokens_issued_before` string, date-time — Revocation date for tokens
            - `role` string, required — Determines the set of user permissions
            - `shadow_banned` boolean, required — Whether a user is shadow banned
            - `teams` string[], required — List of teams user is a part of
            - `teams_role` object
            - `updated_at` string, date-time, required — Date/time of the last update
          - `user_id` string, required — User ID
        - `parent_id` string — ID of parent message (thread)
        - `pin_expires` string, date-time — Date when pinned message expires
        - `pinned` boolean, required — Whether message is pinned or not
        - `pinned_at` string, date-time — Date when message got pinned
        - `pinned_by` UserResponse — User response object
          - `avg_response_time` integer
          - `ban_expires` string, date-time — Date when ban expires
          - `banned` boolean, required — Whether a user is banned or not
          - `blocked_user_ids` string[], required
          - `bypass_moderation` boolean
          - `created_at` string, date-time, required — Date/time of creation
          - `custom` object, required — Custom data for this object
          - `deactivated_at` string, date-time — Date of deactivation
          - `deleted_at` string, date-time — Date/time of deletion
          - `devices` DeviceResponse[] — List of devices user is using
            - `created_at` string, date-time, required — Date/time of creation
            - `disabled` boolean — Whether device is disabled or not
            - `disabled_reason` string — Reason explaining why device had been disabled
            - `hardware_id` string — Stable physical device identifier used to deduplicate pushes across push providers
            - `id` string, required — Device ID
            - `push_provider` string, required — Push provider
            - `push_provider_name` string — Push provider name
            - `user_id` string, required — User ID
            - `voip` boolean — When true the token is for Apple VoIP push notifications
          - `id` string, required — Unique user identifier
          - `image` string
          - `invisible` boolean, required
          - `language` string, required — Preferred language of a user
          - `last_active` string, date-time — Date of last activity
          - `name` string — Optional name of user
          - `online` boolean, required — Whether a user online or not
          - `privacy_settings` PrivacySettingsResponse
            - `delivery_receipts` DeliveryReceiptsResponse
              - …
            - `read_receipts` ReadReceiptsResponse
              - …
            - `typing_indicators` TypingIndicatorsResponse
              - …
          - `push_notifications` PushNotificationSettingsResponse
            - `disabled` boolean
            - `disabled_until` string, date-time
          - `revoke_tokens_issued_before` string, date-time — Revocation date for tokens
          - `role` string, required — Determines the set of user permissions
          - `shadow_banned` boolean, required — Whether a user is shadow banned
          - `teams` string[], required — List of teams user is a part of
          - `teams_role` object
          - `updated_at` string, date-time, required — Date/time of the last update
        - `poll` PollResponseData
          - `allow_answers` boolean, required
          - `allow_user_suggested_options` boolean, required
          - `answers_count` integer, required
          - `created_at` string, date-time, required
          - `created_by` UserResponse — User response object
            - `avg_response_time` integer
            - `ban_expires` string, date-time — Date when ban expires
            - `banned` boolean, required — Whether a user is banned or not
            - `blocked_user_ids` string[], required
            - `bypass_moderation` boolean
            - `created_at` string, date-time, required — Date/time of creation
            - `custom` object, required — Custom data for this object
            - `deactivated_at` string, date-time — Date of deactivation
            - `deleted_at` string, date-time — Date/time of deletion
            - `devices` DeviceResponse[] — List of devices user is using
              - …
            - `id` string, required — Unique user identifier
            - `image` string
            - `invisible` boolean, required
            - `language` string, required — Preferred language of a user
            - `last_active` string, date-time — Date of last activity
            - `name` string — Optional name of user
            - `online` boolean, required — Whether a user online or not
            - `privacy_settings` PrivacySettingsResponse
              - …
            - `push_notifications` PushNotificationSettingsResponse
              - …
            - `revoke_tokens_issued_before` string, date-time — Revocation date for tokens
            - `role` string, required — Determines the set of user permissions
            - `shadow_banned` boolean, required — Whether a user is shadow banned
            - `teams` string[], required — List of teams user is a part of
            - `teams_role` object
            - `updated_at` string, date-time, required — Date/time of the last update
          - `created_by_id` string, required
          - `custom` object, required
          - `description` string, required
          - `enforce_unique_vote` boolean, required
          - `id` string, required
          - `is_closed` boolean
          - `latest_answers` PollVoteResponseData[], required
            - `answer_text` string
            - `created_at` string, date-time, required
            - `id` string, required
            - `is_answer` boolean
            - `option_id` string, required
            - `poll_id` string, required
            - `updated_at` string, date-time, required
            - `user` UserResponse — User response object
              - …
            - `user_id` string
          - `latest_votes_by_option` object, required
          - `max_votes_allowed` integer
          - `name` string, required
          - `options` PollOptionResponseData[], required
            - `custom` object, required
            - `id` string, required
            - `text` string, required
          - `own_votes` PollVoteResponseData[], required
            - `answer_text` string
            - `created_at` string, date-time, required
            - `id` string, required
            - `is_answer` boolean
            - `option_id` string, required
            - `poll_id` string, required
            - `updated_at` string, date-time, required
            - `user` UserResponse — User response object
              - …
            - `user_id` string
          - `updated_at` string, date-time, required
          - `vote_count` integer, required
          - `vote_counts_by_option` object, required
          - `voting_visibility` 'anonymous' | 'public', required — Voting visibility of the poll
        - `poll_id` string — Identifier of the poll to include in the message
        - `quoted_message` MessageResponse — recursive
        - `quoted_message_id` string
        - `reaction_counts` object, required — An object containing number of reactions of each type. Key: reaction type (string), value: number of reactions (int)
        - `reaction_groups` object
        - `reaction_scores` object, required — An object containing scores of reactions of each type. Key: reaction type (string), value: total score of reactions (int)
        - `reminder` ReminderResponseData
          - `channel` ChannelResponse — Represents channel in chat
            - `auto_translation_enabled` boolean — Whether auto translation is enabled or not
            - `auto_translation_language` string — Language (or comma-separated list of languages) to translate to when auto translation is active
            - `blocked` boolean — Whether this channel is blocked by current user or not
            - `cid` string, required — Channel CID (<type>:<id>)
            - `config` ChannelConfigWithInfo
              - …
            - `cooldown` integer — Cooldown period after sending each message
            - `created_at` string, date-time, required — Date/time of creation
            - `created_by` UserResponse — User response object
              - …
            - `custom` object, required — Custom data for this object
            - `deleted_at` string, date-time — Date/time of deletion
            - `disabled` boolean, required
            - `filter_tags` string[] — List of filter tags associated with the channel
            - `frozen` boolean, required — Whether channel is frozen or not
            - `hidden` boolean — Whether this channel is hidden by current user or not
            - `hide_messages_before` string, date-time — Date since when the message history is accessible
            - `id` string, required — Channel unique ID
            - `last_message_at` string, date-time — Date of the last message sent
            - `member_count` integer — Number of members in the channel
            - `members` ChannelMemberResponse[] — List of channel members (max 100)
              - …
            - `message_count` integer — Number of messages in the channel
            - `mute_expires_at` string, date-time — Date of mute expiration
            - `muted` boolean — Whether this channel is muted or not
            - `own_capabilities` ChannelOwnCapability[] — List of channel capabilities of authenticated user
            - `team` string — Team the channel belongs to (multi-tenant only)
            - `truncated_at` string, date-time — Date of the latest truncation of the channel
            - `truncated_by` UserResponse — User response object
              - …
            - `type` string, required — Type of the channel
            - `updated_at` string, date-time, required — Date/time of the last update
          - `channel_cid` string, required
          - `created_at` string, date-time, required
          - `message` MessageResponse — recursive
          - `message_id` string, required
          - `remind_at` string, date-time
          - `updated_at` string, date-time, required
          - `user` UserResponse — User response object
            - `avg_response_time` integer
            - `ban_expires` string, date-time — Date when ban expires
            - `banned` boolean, required — Whether a user is banned or not
            - `blocked_user_ids` string[], required
            - `bypass_moderation` boolean
            - `created_at` string, date-time, required — Date/time of creation
            - `custom` object, required — Custom data for this object
            - `deactivated_at` string, date-time — Date of deactivation
            - `deleted_at` string, date-time — Date/time of deletion
            - `devices` DeviceResponse[] — List of devices user is using
              - …
            - `id` string, required — Unique user identifier
            - `image` string
            - `invisible` boolean, required
            - `language` string, required — Preferred language of a user
            - `last_active` string, date-time — Date of last activity
            - `name` string — Optional name of user
            - `online` boolean, required — Whether a user online or not
            - `privacy_settings` PrivacySettingsResponse
              - …
            - `push_notifications` PushNotificationSettingsResponse
              - …
            - `revoke_tokens_issued_before` string, date-time — Revocation date for tokens
            - `role` string, required — Determines the set of user permissions
            - `shadow_banned` boolean, required — Whether a user is shadow banned
            - `teams` string[], required — List of teams user is a part of
            - `teams_role` object
            - `updated_at` string, date-time, required — Date/time of the last update
          - `user_id` string, required
        - `reply_count` integer, required — Number of replies to this message
        - `restricted_visibility` string[], required — 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
        - `shadowed` boolean, required — Whether the message was shadowed or not
        - `shared_location` SharedLocationResponseData
          - `channel` ChannelResponse — Represents channel in chat
            - `auto_translation_enabled` boolean — Whether auto translation is enabled or not
            - `auto_translation_language` string — Language (or comma-separated list of languages) to translate to when auto translation is active
            - `blocked` boolean — Whether this channel is blocked by current user or not
            - `cid` string, required — Channel CID (<type>:<id>)
            - `config` ChannelConfigWithInfo
              - …
            - `cooldown` integer — Cooldown period after sending each message
            - `created_at` string, date-time, required — Date/time of creation
            - `created_by` UserResponse — User response object
              - …
            - `custom` object, required — Custom data for this object
            - `deleted_at` string, date-time — Date/time of deletion
            - `disabled` boolean, required
            - `filter_tags` string[] — List of filter tags associated with the channel
            - `frozen` boolean, required — Whether channel is frozen or not
            - `hidden` boolean — Whether this channel is hidden by current user or not
            - `hide_messages_before` string, date-time — Date since when the message history is accessible
            - `id` string, required — Channel unique ID
            - `last_message_at` string, date-time — Date of the last message sent
            - `member_count` integer — Number of members in the channel
            - `members` ChannelMemberResponse[] — List of channel members (max 100)
              - …
            - `message_count` integer — Number of messages in the channel
            - `mute_expires_at` string, date-time — Date of mute expiration
            - `muted` boolean — Whether this channel is muted or not
            - `own_capabilities` ChannelOwnCapability[] — List of channel capabilities of authenticated user
            - `team` string — Team the channel belongs to (multi-tenant only)
            - `truncated_at` string, date-time — Date of the latest truncation of the channel
            - `truncated_by` UserResponse — User response object
              - …
            - `type` string, required — Type of the channel
            - `updated_at` string, date-time, required — Date/time of the last update
          - `channel_cid` string, required
          - `created_at` string, date-time, required
          - `created_by_device_id` string, required
          - `end_at` string, date-time
          - `latitude` number, double, required
          - `longitude` number, double, required
          - `message` MessageResponse — recursive
          - `message_id` string, required
          - `updated_at` string, date-time, required
          - `user_id` string, required
        - `show_in_channel` boolean — Whether thread reply should be shown in the channel as well
        - `silent` boolean, required — Whether message is silent or not
        - `text` string, required — Text of the message. Should be empty if `mml` is provided
        - `thread_participants` UserResponse[] — List of users who participate in thread
          - `avg_response_time` integer
          - `ban_expires` string, date-time — Date when ban expires
          - `banned` boolean, required — Whether a user is banned or not
          - `blocked_user_ids` string[], required
          - `bypass_moderation` boolean
          - `created_at` string, date-time, required — Date/time of creation
          - `custom` object, required — Custom data for this object
          - `deactivated_at` string, date-time — Date of deactivation
          - `deleted_at` string, date-time — Date/time of deletion
          - `devices` DeviceResponse[] — List of devices user is using
            - `created_at` string, date-time, required — Date/time of creation
            - `disabled` boolean — Whether device is disabled or not
            - `disabled_reason` string — Reason explaining why device had been disabled
            - `hardware_id` string — Stable physical device identifier used to deduplicate pushes across push providers
            - `id` string, required — Device ID
            - `push_provider` string, required — Push provider
            - `push_provider_name` string — Push provider name
            - `user_id` string, required — User ID
            - `voip` boolean — When true the token is for Apple VoIP push notifications
          - `id` string, required — Unique user identifier
          - `image` string
          - `invisible` boolean, required
          - `language` string, required — Preferred language of a user
          - `last_active` string, date-time — Date of last activity
          - `name` string — Optional name of user
          - `online` boolean, required — Whether a user online or not
          - `privacy_settings` PrivacySettingsResponse
            - `delivery_receipts` DeliveryReceiptsResponse
              - …
            - `read_receipts` ReadReceiptsResponse
              - …
            - `typing_indicators` TypingIndicatorsResponse
              - …
          - `push_notifications` PushNotificationSettingsResponse
            - `disabled` boolean
            - `disabled_until` string, date-time
          - `revoke_tokens_issued_before` string, date-time — Revocation date for tokens
          - `role` string, required — Determines the set of user permissions
          - `shadow_banned` boolean, required — Whether a user is shadow banned
          - `teams` string[], required — List of teams user is a part of
          - `teams_role` object
          - `updated_at` string, date-time, required — Date/time of the last update
        - `type` string, required — Contains type of the message. One of: regular, ephemeral, error, reply, system, deleted
        - `updated_at` string, date-time, required — Date/time of the last update
        - `user` UserResponse, required — User response object
          - `avg_response_time` integer
          - `ban_expires` string, date-time — Date when ban expires
          - `banned` boolean, required — Whether a user is banned or not
          - `blocked_user_ids` string[], required
          - `bypass_moderation` boolean
          - `created_at` string, date-time, required — Date/time of creation
          - `custom` object, required — Custom data for this object
          - `deactivated_at` string, date-time — Date of deactivation
          - `deleted_at` string, date-time — Date/time of deletion
          - `devices` DeviceResponse[] — List of devices user is using
            - `created_at` string, date-time, required — Date/time of creation
            - `disabled` boolean — Whether device is disabled or not
            - `disabled_reason` string — Reason explaining why device had been disabled
            - `hardware_id` string — Stable physical device identifier used to deduplicate pushes across push providers
            - `id` string, required — Device ID
            - `push_provider` string, required — Push provider
            - `push_provider_name` string — Push provider name
            - `user_id` string, required — User ID
            - `voip` boolean — When true the token is for Apple VoIP push notifications
          - `id` string, required — Unique user identifier
          - `image` string
          - `invisible` boolean, required
          - `language` string, required — Preferred language of a user
          - `last_active` string, date-time — Date of last activity
          - `name` string — Optional name of user
          - `online` boolean, required — Whether a user online or not
          - `privacy_settings` PrivacySettingsResponse
            - `delivery_receipts` DeliveryReceiptsResponse
              - …
            - `read_receipts` ReadReceiptsResponse
              - …
            - `typing_indicators` TypingIndicatorsResponse
              - …
          - `push_notifications` PushNotificationSettingsResponse
            - `disabled` boolean
            - `disabled_until` string, date-time
          - `revoke_tokens_issued_before` string, date-time — Revocation date for tokens
          - `role` string, required — Determines the set of user permissions
          - `shadow_banned` boolean, required — Whether a user is shadow banned
          - `teams` string[], required — List of teams user is a part of
          - `teams_role` object
          - `updated_at` string, date-time, required — Date/time of the last update
      - `parent_message_id` string, required — Parent Message ID
      - `participant_count` integer, required — Participant Count
      - `reply_count` integer, required — Reply Count
      - `thread_participants` ThreadParticipant[] — Thread Participants
        - `channel_cid` string, required
        - `created_at` string, date-time, required — Date/time of creation
        - `custom` object, required
        - `last_read_at` string, date-time, required
        - `last_thread_message_at` string, date-time
        - `left_thread_at` string, date-time — Left Thread At is the time when the user left the thread
        - `thread_id` string — Thead ID is unique string identifier of the thread
        - `user` UserResponse — User response object
          - `avg_response_time` integer
          - `ban_expires` string, date-time — Date when ban expires
          - `banned` boolean, required — Whether a user is banned or not
          - `blocked_user_ids` string[], required
          - `bypass_moderation` boolean
          - `created_at` string, date-time, required — Date/time of creation
          - `custom` object, required — Custom data for this object
          - `deactivated_at` string, date-time — Date of deactivation
          - `deleted_at` string, date-time — Date/time of deletion
          - `devices` DeviceResponse[] — List of devices user is using
            - `created_at` string, date-time, required — Date/time of creation
            - `disabled` boolean — Whether device is disabled or not
            - `disabled_reason` string — Reason explaining why device had been disabled
            - `hardware_id` string — Stable physical device identifier used to deduplicate pushes across push providers
            - `id` string, required — Device ID
            - `push_provider` string, required — Push provider
            - `push_provider_name` string — Push provider name
            - `user_id` string, required — User ID
            - `voip` boolean — When true the token is for Apple VoIP push notifications
          - `id` string, required — Unique user identifier
          - `image` string
          - `invisible` boolean, required
          - `language` string, required — Preferred language of a user
          - `last_active` string, date-time — Date of last activity
          - `name` string — Optional name of user
          - `online` boolean, required — Whether a user online or not
          - `privacy_settings` PrivacySettingsResponse
            - `delivery_receipts` DeliveryReceiptsResponse
              - …
            - `read_receipts` ReadReceiptsResponse
              - …
            - `typing_indicators` TypingIndicatorsResponse
              - …
          - `push_notifications` PushNotificationSettingsResponse
            - `disabled` boolean
            - `disabled_until` string, date-time
          - `revoke_tokens_issued_before` string, date-time — Revocation date for tokens
          - `role` string, required — Determines the set of user permissions
          - `shadow_banned` boolean, required — Whether a user is shadow banned
          - `teams` string[], required — List of teams user is a part of
          - `teams_role` object
          - `updated_at` string, date-time, required — Date/time of the last update
        - `user_id` string — User ID is unique string identifier of the user
      - `title` string, required — Title
      - `updated_at` string, date-time, required — Date/time of the last update
    - `type` string, required
    - `user` UserResponseCommonFields
      - `avg_response_time` integer
      - `banned` boolean, required
      - `blocked_user_ids` string[], required
      - `created_at` string, date-time, required
      - `custom` object, required
      - `deactivated_at` string, date-time
      - `deleted_at` string, date-time
      - `id` string, required
      - `image` string
      - `language` string, required
      - `last_active` string, date-time
      - `name` string
      - `online` boolean, required
      - `revoke_tokens_issued_before` string, date-time
      - `role` string, required
      - `teams` string[], required
      - `teams_role` object
      - `updated_at` string, date-time, required

## Other responses

- `400` — Bad request
- `429` — Too many requests

## Changes

> 108 revisions in range; 2 not diffed.

- **2026-08-26** `cb3a77dfe696` — 1 info
  - added the optional property `event/thread/parent_message/mentioned_channel_members` to the response with the `201` status
- **2026-08-25** `da8a67712d52` — 2 warning
  - added the new `anonymous` enum value to the `event/thread/parent_message/poll/voting_visibility` response property for the response status `201`
  - added the new `public` enum value to the `event/thread/parent_message/poll/voting_visibility` response property for the response status `201`
- **2026-08-20** `ff38012a3de8` — 5 info
  - added the required property `event/channel/config/message_retention` to the response with the `201` status
  - added the required property `event/thread/channel/config/message_retention` to the response with the `201` status
  - added the required property `event/thread/parent_message/draft/channel/config/message_retention` to the response with the `201` status
  - added the required property `event/thread/parent_message/reminder/channel/config/message_retention` to the response with the `201` status
  - …1 more
- **2026-08-12** `bb4f84a3469c` — 2 breaking
  - the `event/thread/parent_message/shared_location/latitude` response's property type/format changed from `number`/`float` to `number`/`double` for status `201`
  - the `event/thread/parent_message/shared_location/longitude` response's property type/format changed from `number`/`float` to `number`/`double` for status `201`
- …earlier changes not shown

[Full history](https://skmtc.dev/getstream/apis/stream-api/changes/channels/read/post.md)

---

[API](https://skmtc.dev/getstream/apis/stream-api.md) · [All operations](https://skmtc.dev/getstream/apis/stream-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/getstream/stream-api/revisions/653d3d10a523/schema)
