Stream product:chat API

The product:chat API from Stream — 194 operation(s) for product:chat.

Operations 269

Showing the first 250 of 269. The full set is in the contract, and via get_provider_operations.

GET /app Get App Settings #
PATCH /app Update App Settings #
GET /blocklists List block lists #
POST /blocklists Create block list #
DELETE /blocklists/{name} Delete block list #
GET /blocklists/{name} Get block list #
PUT /blocklists/{name} Update block list #
POST /campaigns Create campaign #
DELETE /campaigns/{id} Delete campaign #
GET /campaigns/{id} Get campaign #
PUT /campaigns/{id} Update campaign #
POST /campaigns/{id}/start Start/schedule campaign #
POST /campaigns/{id}/stop Stop campaign #
POST /campaigns/query Query campaigns #
POST /channels Query channels #
DELETE /channels/{type}/{id} Delete channel #
PATCH /channels/{type}/{id} Partially update channel #
POST /channels/{type}/{id} Update channel #
DELETE /channels/{type}/{id}/draft Delete draft #
GET /channels/{type}/{id}/draft Get draft #
POST /channels/{type}/{id}/event Send event #
DELETE /channels/{type}/{id}/file Delete file #
POST /channels/{type}/{id}/file Upload file #
POST /channels/{type}/{id}/hide Hide channel #
DELETE /channels/{type}/{id}/image Delete image #
POST /channels/{type}/{id}/image Upload image #
PATCH /channels/{type}/{id}/member Partially channel member update #
POST /channels/{type}/{id}/message Send new message #
GET /channels/{type}/{id}/messages Get many messages #
POST /channels/{type}/{id}/query Get or create channel #
POST /channels/{type}/{id}/read Mark read #
POST /channels/{type}/{id}/show Show channel #
POST /channels/{type}/{id}/truncate Truncate channel #
POST /channels/{type}/{id}/unread Mark unread #
POST /channels/{type}/query Get or create channel #
PUT /channels/batch Update channels in batch #
POST /channels/delete Deletes channels asynchronously #
POST /channels/delivered Mark channel message delivery status #
POST /channels/grouped Grouped query channels #
POST /channels/read Mark channels as read #
GET /channeltypes List channel types #
POST /channeltypes Create channel type #
DELETE /channeltypes/{name} Delete channel type #
GET /channeltypes/{name} Get channel type #
PUT /channeltypes/{name} Update channel type #
POST /check_push Check push #
POST /check_sns Check SNS #
POST /check_sqs Check SQS #
GET /commands List commands #
POST /commands Create command #
DELETE /commands/{name} Delete command #
GET /commands/{name} Get command #
PUT /commands/{name} Update command #
DELETE /devices Delete device #
GET /devices List devices #
POST /devices Create device #
POST /drafts/query Query draft messages #
POST /export/users Export users #
POST /export_channels Export channels #
GET /external_storage List external storage #
POST /external_storage Create external storage #
DELETE /external_storage/{name} Delete external storage #
PUT /external_storage/{name} Update External Storage #
GET /external_storage/{name}/check Check External Storage #
POST /guest Create Guest #
POST /import_urls Create import URL #
GET /imports Get import #
POST /imports Create import #
GET /imports/{id} Get import #
GET /imports/v2 List import v2 tasks #
POST /imports/v2 Create import v2 task #
DELETE /imports/v2/{id} Delete import v2 task #
GET /imports/v2/{id} Get import v2 task #
DELETE /imports/v2/external-storage Delete external storage #
GET /imports/v2/external-storage Get external storage #
PUT /imports/v2/external-storage Upsert external storage #
POST /imports/v2/external-storage/validate Validate external storage #
GET /members Query members #
DELETE /messages/{id} Delete message #
GET /messages/{id} Get message #
POST /messages/{id} Update message #
PUT /messages/{id} Partially message update #
POST /messages/{id}/action Run message command action #
POST /messages/{id}/commit Commit message #
PATCH /messages/{id}/ephemeral Ephemeral message update #
POST /messages/{id}/reaction Send reaction #
DELETE /messages/{id}/reaction/{type} Delete reaction #
GET /messages/{id}/reactions Get reactions #
POST /messages/{id}/reactions #
POST /messages/{id}/translate Translate message #
POST /messages/{id}/undelete Undelete message #
POST /messages/{message_id}/polls/{poll_id}/vote Cast vote #
DELETE /messages/{message_id}/polls/{poll_id}/vote/{vote_id} Delete vote #
DELETE /messages/{message_id}/reminders Delete reminder #
PATCH /messages/{message_id}/reminders Updates Reminder #
POST /messages/{message_id}/reminders Create reminder #
GET /messages/{parent_id}/replies Get replies #
POST /messages/history Query message history #
DELETE /moderation/ban Unban user #
POST /moderation/ban Ban user #
POST /moderation/flag Flag #
GET /moderation/flags/message Query Message Flags #
POST /moderation/mute Mute user #
POST /moderation/mute/channel Mute channel #
POST /moderation/unmute Unmute user #
POST /moderation/unmute/channel Unmute channel #
GET /og Get OG #
GET /permissions List permissions #
GET /permissions/{id} Get permission #
POST /polls Create poll #
PUT /polls Update poll #
DELETE /polls/{poll_id} Delete poll #
GET /polls/{poll_id} Get poll #
PATCH /polls/{poll_id} Partial update poll #
POST /polls/{poll_id}/options Create poll option #
PUT /polls/{poll_id}/options Update poll option #
DELETE /polls/{poll_id}/options/{option_id} Delete poll option #
GET /polls/{poll_id}/options/{option_id} Get poll option #
POST /polls/{poll_id}/votes Query votes #
POST /polls/query Query polls #
POST /push_preferences Push notification preferences #
GET /push_providers List push providers #
POST /push_providers Upsert a push provider #
DELETE /push_providers/{type}/{name} Delete a push provider #
GET /push_templates Get push notification templates #
POST /push_templates Upsert a push notification template #
GET /query_banned_users Query Banned Users #
GET /query_future_channel_bans Query Future Channel Bans #
GET /rate_limits Get rate limits #
POST /reminders/query Query reminders #
GET /retention_policy Get retention policy #
POST /retention_policy Set retention policy #
POST /retention_policy/delete Delete retention policy #
POST /retention_policy/runs Get retention policy runs #
GET /roles List roles #
POST /roles Create role #
DELETE /roles/{name} Delete role #
DELETE /segments/{id} Delete segment #
GET /segments/{id} Get segment #
POST /segments/{id}/deletetargets Delete targets from a segment #
GET /segments/{id}/target/{target_id} Check whether a target exists in a segment #
POST /segments/{id}/targets/query Query segment targets #
POST /segments/query Query segments #
POST /stats/team_usage Query Team Usage Statistics #
GET /tasks/{id} Get status of a task #
POST /threads Query Threads #
GET /threads/{message_id} Get Thread #
PATCH /threads/{message_id} Partially update thread #
GET /unread Unread counts #
POST /unread_batch Batch unread counts #
DELETE /uploads/file Delete file #
POST /uploads/file Upload file #
DELETE /uploads/image Delete image #
POST /uploads/image Upload image #
GET /usergroups List user groups #
POST /usergroups Create user group #
DELETE /usergroups/{id} Delete user group #
GET /usergroups/{id} Get user group #
PUT /usergroups/{id} Update user group #
POST /usergroups/{id}/members Add user group members #
POST /usergroups/{id}/members/delete Remove user group members #
GET /usergroups/search Search user groups #
GET /users Query users #
PATCH /users Partially update user #
POST /users Upsert users #
POST /users/{user_id}/deactivate Deactivate user #
POST /users/{user_id}/event Send user event #
GET /users/{user_id}/export Export user #
POST /users/{user_id}/reactivate Reactivate user #
GET /users/block Get list of blocked Users #
POST /users/block Block user #
POST /users/deactivate Deactivate users #
POST /users/delete Delete Users #
GET /users/live_locations Get user live locations #
PUT /users/live_locations Update live location #
POST /users/reactivate Reactivate users #
POST /users/restore Restore users #
POST /users/unblock Unblock user #
POST /api/v2/chat/campaigns Create campaign #
DELETE /api/v2/chat/campaigns/{id} Delete campaign #
GET /api/v2/chat/campaigns/{id} Get campaign #
PUT /api/v2/chat/campaigns/{id} Update campaign #
POST /api/v2/chat/campaigns/{id}/start Start/schedule campaign #
POST /api/v2/chat/campaigns/{id}/stop Stop campaign #
POST /api/v2/chat/campaigns/query Query campaigns #
POST /api/v2/chat/channels Query channels #
DELETE /api/v2/chat/channels/{type}/{id} Delete channel #
PATCH /api/v2/chat/channels/{type}/{id} Partially update channel #
POST /api/v2/chat/channels/{type}/{id} Update channel #
DELETE /api/v2/chat/channels/{type}/{id}/draft Delete draft #
GET /api/v2/chat/channels/{type}/{id}/draft Get draft #
POST /api/v2/chat/channels/{type}/{id}/event Send event #
DELETE /api/v2/chat/channels/{type}/{id}/file Delete file #
POST /api/v2/chat/channels/{type}/{id}/file Upload file #
POST /api/v2/chat/channels/{type}/{id}/hide Hide channel #
DELETE /api/v2/chat/channels/{type}/{id}/image Delete image #
POST /api/v2/chat/channels/{type}/{id}/image Upload image #
PATCH /api/v2/chat/channels/{type}/{id}/member Partially channel member update #
POST /api/v2/chat/channels/{type}/{id}/message Send new message #
GET /api/v2/chat/channels/{type}/{id}/messages Get many messages #
POST /api/v2/chat/channels/{type}/{id}/query Get or create channel #
POST /api/v2/chat/channels/{type}/{id}/read Mark read #
POST /api/v2/chat/channels/{type}/{id}/show Show channel #
POST /api/v2/chat/channels/{type}/{id}/truncate Truncate channel #
POST /api/v2/chat/channels/{type}/{id}/unread Mark unread #
POST /api/v2/chat/channels/{type}/query Get or create channel #
PUT /api/v2/chat/channels/batch Update channels in batch #
POST /api/v2/chat/channels/delete Deletes channels asynchronously #
POST /api/v2/chat/channels/delivered Mark channel message delivery status #
POST /api/v2/chat/channels/grouped Grouped query channels #
POST /api/v2/chat/channels/read Mark channels as read #
GET /api/v2/chat/channeltypes List channel types #
POST /api/v2/chat/channeltypes Create channel type #
DELETE /api/v2/chat/channeltypes/{name} Delete channel type #
GET /api/v2/chat/channeltypes/{name} Get channel type #
PUT /api/v2/chat/channeltypes/{name} Update channel type #
GET /api/v2/chat/commands List commands #
POST /api/v2/chat/commands Create command #
DELETE /api/v2/chat/commands/{name} Delete command #
GET /api/v2/chat/commands/{name} Get command #
PUT /api/v2/chat/commands/{name} Update command #
POST /api/v2/chat/drafts/query Query draft messages #
POST /api/v2/chat/export_channels Export channels #
GET /api/v2/chat/members Query members #
DELETE /api/v2/chat/messages/{id} Delete message #
GET /api/v2/chat/messages/{id} Get message #
POST /api/v2/chat/messages/{id} Update message #
PUT /api/v2/chat/messages/{id} Partially message update #
POST /api/v2/chat/messages/{id}/action Run message command action #
POST /api/v2/chat/messages/{id}/commit Commit message #
PATCH /api/v2/chat/messages/{id}/ephemeral Ephemeral message update #
POST /api/v2/chat/messages/{id}/reaction Send reaction #
DELETE /api/v2/chat/messages/{id}/reaction/{type} Delete reaction #
GET /api/v2/chat/messages/{id}/reactions Get reactions #
POST /api/v2/chat/messages/{id}/reactions #
POST /api/v2/chat/messages/{id}/translate Translate message #
POST /api/v2/chat/messages/{id}/undelete Undelete message #
POST /api/v2/chat/messages/{message_id}/polls/{poll_id}/vote Cast vote #
DELETE /api/v2/chat/messages/{message_id}/polls/{poll_id}/vote/{vote_id} Delete vote #
DELETE /api/v2/chat/messages/{message_id}/reminders Delete reminder #
PATCH /api/v2/chat/messages/{message_id}/reminders Updates Reminder #
POST /api/v2/chat/messages/{message_id}/reminders Create reminder #
GET /api/v2/chat/messages/{parent_id}/replies Get replies #
POST /api/v2/chat/messages/history Query message history #
GET /api/v2/chat/moderation/flags/message Query Message Flags #
POST /api/v2/chat/moderation/mute/channel Mute channel #
POST /api/v2/chat/moderation/unmute/channel Unmute channel #
GET /api/v2/chat/query_banned_users Query Banned Users #
GET /api/v2/chat/query_future_channel_bans Query Future Channel Bans #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/stream-io-product-chat-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

stream-io-product-chat-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Stream Product:chat API
  version: v228.3.0
servers:
- description: Stream API
  url: https://chat.stream-io-api.com
security:
- JWT: []
  api_key: []
  stream-auth-type: []
- api_key: []
  stream-auth-type: []
tags:
- name: product:chat
paths:
  /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:chat
    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:chat
  /blocklists:
    get:
      description: 'Returns all available block lists

        '
      operationId: ListBlockLists
      parameters:
      - in: query
        name: team
        schema:
          type: string
          writeOnly: true
          x-stream-index: '001'
      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:chat
    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:chat
  /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'
      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:chat
    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:chat
    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: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
  /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/CampaignResponse'
          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 campaign
      tags:
      - product: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
  /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/CampaignResponse'
          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: Stop campaign
      tags:
      - product: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
  /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
  /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:
          type: boolean
          x-stream-index: '002'
      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
    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
  /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
  /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
  /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
  /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
  /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
  /channels/{type}/{id}/member:
    patch:
      description: '

        '
      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
  /channels/{type}/{id}/message:
    post:
      description: 'Sends new message to the specified channel


        Sends events:

        - message.new

        - message.updated

        '
      operationId: SendMessage
      parameters:

# --- truncated at 32 KB (837 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/getstream/refs/heads/main/openapi/stream-io-product-chat-api-openapi.yml