---
canonical_url: "https://docs.composio.dev/toolkits/zoom_chat"
markdown_url: "https://docs.composio.dev/toolkits/zoom_chat.md"
product: "platform"
version: null
last_updated: null
---

# Zoom Team Chat

Zoom Team Chat is Zoom's persistent messaging product: channels, direct messages, threads, reactions, file sharing, reminders and shared spaces, all accessible through the Zoom REST API as the connected user

- **Category:** team chat
- **Auth:** OAUTH2
- **Composio-managed OAuth available?** No
- **Tools:** 44
- **Triggers:** 0
- **Slug:** `ZOOM_CHAT`
- **Version:** 20260826_00

## Tools

### Add Shared Space Members

**Slug:** `ZOOM_CHAT_ADD_SHARED_SPACE_MEMBERS`

Add members to a Zoom Team Chat shared space by email address or Zoom user ID. Zoom processes each member independently and returns HTTP 200/201 even when every add fails, so success must be judged from successful_operations_count / unsuccessful_operations_count and each entry's operation_status - not the HTTP status.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `space_id` | string | Yes | Unique ID of the shared space to add members into. |
| `member_identifiers` | array | Yes | Email addresses or Zoom user IDs to add to the shared space (1-20 per call, must be unique). Each identifier is added independently - inspect the per-user operation_status in the response to see which adds succeeded, since Zoom returns success even when every add fails. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Archive or Unarchive Channels

**Slug:** `ZOOM_CHAT_ARCHIVE_CHANNELS`

Archive or unarchive up to 10 Zoom Team Chat channels in one call. Returns per-channel failures; success requires failed_channels to be empty.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `action` | string ("archive" | "unarchive") | Yes | Operation to perform on the channels: 'archive' or 'unarchive'. |
| `channel_ids` | array | Yes | IDs of the channels to archive or unarchive (1-10 per call, must be unique). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Bookmark or Unbookmark Message

**Slug:** `ZOOM_CHAT_BOOKMARK_MESSAGE`

Add or remove a bookmark on a Zoom Team Chat message. Identify the message by message_id plus the conversation it lives in: provide exactly one of to_channel (a channel message) or to_contact (a 1:1 message). Set action to 'add_bookmark' (default) or 'remove_bookmark'. Returns {success: true} on success; the underlying API responds with HTTP 204 and an empty body.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `action` | string ("add_bookmark" | "remove_bookmark") | No | Whether to add or remove the bookmark on the message. |
| `message_id` | string | Yes | The message ID to bookmark or unbookmark. Sent as a query parameter (the API rejects it in the body). |
| `to_channel` | string | No | Channel ID of the channel the message belongs to. Exactly one of to_channel or to_contact is required. |
| `to_contact` | string | No | Email address, user ID, or member ID of the 1:1 chat contact the message belongs to. Exactly one of to_channel or to_contact is required. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Channel

**Slug:** `ZOOM_CHAT_CREATE_CHANNEL`

Create a new Zoom Team Chat channel for the authenticated user, optionally inviting initial members by email.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Channel name (1-256 characters). |
| `type` | integer | No | Channel type: 1 = invite-only private, 2 = private (org members can be added), 3 = public within the org, 4 = new-chat/instant channel. |
| `shared_space` | object | No | Existing shared space in which to create the channel. When provided, type must be 1 or 2. |
| `member_emails` | array | No | Email addresses to invite as initial members (up to 20). External emails become pending Zoom contact invitations, not immediate members. |
| `channel_settings` | object | No | Optional channel settings (member-add, posting, history visibility and @all-mention permissions). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Message Reminder

**Slug:** `ZOOM_CHAT_CREATE_MESSAGE_REMINDER`

Set a reminder on a Zoom Team Chat message, either after a delay (delay_seconds) or at an absolute time (remind_time). Exactly one of to_channel or to_contact must identify where the message lives, and exactly one of delay_seconds or remind_time must set the timing.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `message_id` | string | Yes | The ID of the message to be reminded about. |
| `to_channel` | string | No | Channel ID the message belongs to. Exactly one of to_channel or to_contact is required. |
| `to_contact` | string | No | Email address of the 1:1 contact the message belongs to. Exactly one of to_channel or to_contact is required. |
| `remind_time` | string | No | Absolute reminder time as an RFC3339 timestamp (e.g. 2026-08-01T09:00:00Z). Provide exactly one of remind_time or delay_seconds. |
| `delay_seconds` | integer | No | Remind after this many seconds from now (300 seconds to 7,776,000 seconds / 90 days). Provide exactly one of delay_seconds or remind_time. |
| `reminder_note` | string | No | Optional note to attach to the reminder. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Shared Space

**Slug:** `ZOOM_CHAT_CREATE_SHARED_SPACE`

Create a Zoom Team Chat shared space (a container that groups related channels). A 'general' channel is auto-created with it.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `space_desc` | string | No | Description of the shared space. |
| `space_name` | string | Yes | Name of the shared space. |
| `space_members` | array | No | Initial members to add to the shared space. |
| `space_settings` | object | No | Optional shared-space settings (external-user, add-member and create-channel permissions). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Channel

**Slug:** `ZOOM_CHAT_DELETE_CHANNEL`

Delete a Zoom Team Chat channel the user owns or is a member of. Returns {success: true} on success; the underlying API responds with HTTP 204 and an empty body.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `channel_id` | string | Yes | The channel ID to delete. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Message

**Slug:** `ZOOM_CHAT_DELETE_MESSAGE`

Delete a Zoom Team Chat message the connected user sent, identified by message_id plus the conversation it lives in. Provide exactly one of to_channel (a channel message) or to_contact (a 1:1 message). Returns {success: true} on success; the underlying API responds with HTTP 204 and an empty body.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `message_id` | string | Yes | The ID of the message to delete. |
| `to_channel` | string | No | Channel ID of the channel the message belongs to. Exactly one of to_channel or to_contact is required. |
| `to_contact` | string | No | Email address, user ID, or member ID of the 1:1 chat contact the message was sent to. Exactly one of to_channel or to_contact is required. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Message Reminder

**Slug:** `ZOOM_CHAT_DELETE_MESSAGE_REMINDER`

Delete the reminder set on a Zoom Team Chat message. Reminders have no id of their own — they are identified by the message_id they belong to. Provide exactly one of to_channel (a channel message) or to_contact (a 1:1 message) to locate the message. Returns {success: true} on success; the API responds with HTTP 204 and an empty body.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `message_id` | string | Yes | The message ID whose reminder to delete (reminders have no own id). |
| `to_channel` | string | No | Channel ID of the channel the message belongs to (query param). |
| `to_contact` | string | No | Email address of the contact the message belongs to (query param). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Scheduled Message

**Slug:** `ZOOM_CHAT_DELETE_SCHEDULED_MESSAGE`

Delete a scheduled (draft) Zoom Team Chat message before it is sent, identified by draft_id plus the conversation it is addressed to. Provide exactly one of to_channel (a channel draft) or to_contact (a 1:1 draft). Returns {success: true} on success; the underlying API responds with HTTP 204 and an empty body.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `draft_id` | string | Yes | The draft ID of the scheduled message to delete (from LIST_SCHEDULED_MESSAGES). |
| `to_channel` | string | No | Channel ID of the channel the scheduled draft was addressed to. Exactly one of to_channel or to_contact is required. |
| `to_contact` | string | No | Email address, user ID, or member ID of the 1:1 chat contact the scheduled draft was addressed to. Exactly one of to_channel or to_contact is required. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Shared Space

**Slug:** `ZOOM_CHAT_DELETE_SHARED_SPACE`

Delete a Zoom Team Chat shared space. Returns {success: true} on success; the underlying API responds with HTTP 204 and an empty body. NOTE: the space's auto-created 'general' channel SURVIVES as a regular channel and must be deleted separately with DELETE_CHANNEL.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `space_id` | string | Yes | The shared space ID to delete. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Channel

**Slug:** `ZOOM_CHAT_GET_CHANNEL`

Get full information about a Zoom Team Chat channel, including its settings.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `channel_id` | string | Yes | The channel ID (from LIST_CHANNELS, SEARCH_CHANNELS, or CREATE_CHANNEL). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Chat Contact

**Slug:** `ZOOM_CHAT_GET_CONTACT`

Get a single Zoom Team Chat contact by email or user ID, optionally with live presence status.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `identifier` | string | Yes | Email address, user ID, or member ID of the contact. |
| `query_presence_status` | boolean | No | Set true to include the contact's presence_status (Available, Away, Offline, In_A_Meeting, ...). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Message

**Slug:** `ZOOM_CHAT_GET_MESSAGE`

Get a single Zoom Team Chat message by ID, including its deep-link URL.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `message_id` | string | Yes | The message ID to retrieve. |
| `to_channel` | string | No | Channel ID of the channel the message belongs to. Exactly one of to_channel or to_contact is required. |
| `to_contact` | string | No | Email, user ID, or member ID of the 1:1 chat contact the message belongs to. Exactly one of to_channel or to_contact is required. |
| `download_file_formats` | string | No | Return audio-file download URLs in MP4 format when set to 'audio/mp4'. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Message Thread

**Slug:** `ZOOM_CHAT_GET_MESSAGE_THREAD`

Retrieve a Zoom Team Chat message's thread: the parent message plus its replies since a given time.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `sort` | string ("desc" | "asc") | No | Sort order by reply time: 'desc' puts the latest reply first, 'asc' the oldest. Zoom defaults to 'desc'. |
| `limit` | integer | No | Maximum number of replies to return (1-100). Zoom defaults to 10. |
| `to_time` | string | No | End of the query window, RFC3339. Defaults to the current time when omitted. |
| `from_time` | string | Yes | Start of the query window, RFC3339 (e.g. 2026-07-23T00:00:00Z). Required in practice even though Zoom's docs mark it optional (Zoom returns 400 code 4233 'The `from` cannot be blank.' otherwise). |
| `message_id` | string | Yes | The parent (main) message ID whose thread to retrieve. |
| `need_emoji` | boolean | No | Whether to include emoji reactions on each message. Zoom defaults to false. |
| `to_channel` | string | No | Channel ID of the channel the message belongs to. Exactly one of to_channel or to_contact is required. |
| `to_contact` | string | No | Email, user ID, or member ID of the 1:1 chat contact the message belongs to. Exactly one of to_channel or to_contact is required. |
| `need_at_items` | boolean | No | Whether to include @(at) mention items on each message. |
| `need_rich_text` | boolean | No | Whether to include rich-text formatting segments on each message. |
| `need_attachment` | boolean | No | Whether to include file attachments on each message. Zoom defaults to false. |
| `need_main_message` | boolean | No | Whether to include the parent (main) message in `messages`. When false, `messages` contains replies only. Zoom defaults to true. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Shared Space

**Slug:** `ZOOM_CHAT_GET_SHARED_SPACE`

Get details of a Zoom Team Chat shared space, including its owner and settings.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `space_id` | string | Yes | The shared space ID (from LIST_SHARED_SPACES or CREATE_SHARED_SPACE). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Invite Channel Members

**Slug:** `ZOOM_CHAT_INVITE_CHANNEL_MEMBERS`

Invite members to a Zoom Team Chat channel by email address. Returns only an invitation timestamp - Zoom does not echo per-member results, and external invitees stay invisible in the member list until they accept.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `channel_id` | string | Yes | Unique ID of the channel to invite members into. |
| `member_emails` | array | Yes | Email addresses to invite (1-5 per call). External (non-org) emails become pending Zoom contact invitations and stay invisible in the member list until the invitation is accepted. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Join Channel

**Slug:** `ZOOM_CHAT_JOIN_CHANNEL`

Join a public Zoom Team Chat channel as the authenticated user. Only public (type 3 or 5) channels can be joined this way; private and invite-only channels require an invitation.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `channel_id` | string | Yes | The channel ID of a public (type 3 or 5) channel to join. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Leave Channel

**Slug:** `ZOOM_CHAT_LEAVE_CHANNEL`

Leave a Zoom Team Chat channel. WARNING: if the channel OWNER leaves an invite-only channel they cannot rejoin or delete it afterwards — the channel is orphaned. Owners should delete the channel instead. Returns {success: true} on success; the underlying API responds with HTTP 204 and an empty body.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `channel_id` | string | Yes | The channel ID to leave. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Bookmarks

**Slug:** `ZOOM_CHAT_LIST_BOOKMARKS`

List the authenticated user's bookmarked Zoom Team Chat messages, optionally filtered to one channel (to_channel) or one 1:1 contact (to_contact). Omit both filters to list bookmarks across all conversations.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page_size` | integer | No | Number of records per page (max 50). |
| `to_channel` | string | No | Optional channel ID filter. Returns only messages the user bookmarked in that channel. Omit both to_channel and to_contact to list bookmarks across all conversations. |
| `to_contact` | string | No | Optional 1:1 contact filter, given as an email address, user ID, or member ID. Returns only messages the user bookmarked in the 1:1 conversation with that contact. Omit both to_channel and to_contact to list bookmarks across all conversations. |
| `next_page_token` | string | No | Continuation token from a previous call's `next_page_token`. Omit to fetch the first page. Zoom tokens expire after 15 minutes. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Channel Members

**Slug:** `ZOOM_CHAT_LIST_CHANNEL_MEMBERS`

List the members of a Zoom Team Chat channel.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page_size` | integer | No | Number of records per page (max 100). |
| `channel_id` | string | Yes | The channel ID. |
| `next_page_token` | string | No | Continuation token from a previous call's `next_page_token`. Omit to fetch the first page. Zoom tokens expire after 15 minutes. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Channels

**Slug:** `ZOOM_CHAT_LIST_CHANNELS`

List the Zoom Team Chat channels the authenticated user is a member of.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page_size` | integer | No | Number of records per page (max 1000). |
| `next_page_token` | string | No | Continuation token from a previous call's `next_page_token`. Omit to fetch the first page. Zoom tokens expire after 15 minutes. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Chat Contacts

**Slug:** `ZOOM_CHAT_LIST_CONTACTS`

List the authenticated user's Zoom Team Chat contacts. Zoom returns company contacts by default; pass type='external' for external contacts. The user themself appears as a contact, and each contact's id can be used as a to_contact value for 1:1 messaging.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `type` | string ("company" | "external") | No | Contact type filter: 'company' for contacts from the user's own organization, 'external' for external contacts. Omitting this does NOT return all contacts — Zoom defaults to 'company'. |
| `page_size` | integer | No | Number of records per page (max 50). |
| `next_page_token` | string | No | Continuation token from a previous call's `next_page_token`. Omit to fetch the first page. Zoom tokens expire after 15 minutes. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Messages

**Slug:** `ZOOM_CHAT_LIST_MESSAGES`

List Zoom Team Chat messages exchanged in a channel or a 1:1 conversation, newest first (defaults to today). Provide exactly one of to_channel or to_contact.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `date` | string | No | Day to query, in yyyy-MM-dd format. Defaults to today when omitted. If both date and from are supplied, Zoom uses date. The queried date is echoed back in the response. |
| `to_time` | string | No | End of the query window, in yyyy-MM-ddTHH:mm:ssZ format. Defaults to the current date. |
| `from_time` | string | No | Start of the query window, in yyyy-MM-ddTHH:mm:ssZ format. Ignored when date is also provided. |
| `page_size` | integer | No | Number of records per page (max 50). |
| `search_key` | string | No | Search text (1-256 characters). Must be provided with search_type. |
| `to_channel` | string | No | Channel ID of the channel whose messages to retrieve. Returns messages the user sent and received in that channel. Provide EXACTLY ONE of to_channel or to_contact. |
| `to_contact` | string | No | Email address, user ID, or member ID of the 1:1 chat contact. Returns messages exchanged directly between the user and this contact. Provide EXACTLY ONE of to_channel or to_contact. |
| `search_type` | string ("message" | "file") | No | Search messages or files. Must be provided together with search_key. |
| `next_page_token` | string | No | Continuation token from a previous call's `next_page_token`. Omit to fetch the first page. Zoom tokens expire after 15 minutes. |
| `download_file_formats` | string | No | Return audio-file download URLs in MP4 format when set to 'audio/mp4'. |
| `exclude_child_message` | boolean | No | Exclude thread replies and return parent messages only. |
| `include_deleted_and_edited_message` | boolean | No | Include normal, edited, and deleted messages when true. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Pinned Messages

**Slug:** `ZOOM_CHAT_LIST_PINNED_MESSAGES`

List the pinned messages of a Zoom Team Chat channel. Set include_history to also return previously-pinned (now unpinned) history messages.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page_size` | integer | No | Number of records per page (max 50). Zoom defaults to 10 when omitted. |
| `channel_id` | string | Yes | Channel ID of the Zoom Team Chat channel whose pinned messages to list. |
| `include_history` | boolean | No | When true, the result also includes previously-pinned (now unpinned) history messages, not just the currently-pinned ones. Defaults to false. |
| `next_page_token` | string | No | Continuation token from a previous call's `next_page_token`. Omit to fetch the first page. Zoom tokens expire after 15 minutes. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Reminders

**Slug:** `ZOOM_CHAT_LIST_REMINDERS`

List the authenticated user's Zoom Team Chat message reminders. Optionally filter by a channel (to_channel) or a 1:1 contact (to_contact); omit both to list all reminders.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page_size` | integer | No | Number of records per page (1-20). Zoom defaults to 10. |
| `to_channel` | string | No | The ID of the Zoom channel whose reminders to query. If neither to_channel nor to_contact is passed, all reminders in channels and 1:1 chats are returned. |
| `to_contact` | string | No | The email address of the Zoom contact whose 1:1 chat reminders to query. If neither to_channel nor to_contact is passed, all reminders in channels and 1:1 chats are returned. |
| `next_page_token` | string | No | Continuation token from a previous call's `next_page_token`. Omit to fetch the first page. Zoom tokens expire after 15 minutes. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Scheduled Messages

**Slug:** `ZOOM_CHAT_LIST_SCHEDULED_MESSAGES`

List the user's scheduled (draft) Zoom Team Chat messages queued to send to a channel or a 1:1 contact. Provide exactly one of to_channel or to_contact.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page_size` | integer | No | Number of records per page (max 50). Zoom defaults to 10 when omitted. |
| `to_channel` | string | No | Channel ID of the channel the scheduled (draft) messages belong to. Returns drafts queued to send to that channel. Provide EXACTLY ONE of to_channel or to_contact. |
| `to_contact` | string | No | Email address, user ID, or member ID of the 1:1 chat contact the scheduled (draft) messages are addressed to. Provide EXACTLY ONE of to_channel or to_contact. |
| `next_page_token` | string | No | Continuation token from a previous call's `next_page_token`. Omit to fetch the first page. Zoom tokens expire after 15 minutes. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Chat Sessions

**Slug:** `ZOOM_CHAT_LIST_SESSIONS`

List the user's recent Zoom Team Chat sessions (channels and 1:1 conversations) within a time window. Defaults to today; groupchat sessions are channels and 1:1 sessions carry peer contact info.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `type` | string ("1:1" | "groupchat") | No | Filter sessions by chat type. Use '1:1' for direct conversations or 'groupchat' for channels. Omit to return both. Allowed when search_star is true, but the from_time / to_time window is not. |
| `to_time` | string | No | End of the query window, in yyyy-MM-ddTHH:mm:ssZ format. Defaults to the end of today. Not allowed together with search_star. |
| `from_time` | string | No | Start of the query window, in yyyy-MM-ddTHH:mm:ssZ format. Defaults to the start of today. Not allowed together with search_star. |
| `page_size` | integer | No | Number of records per page (max 50). |
| `search_star` | boolean | No | When true, return only starred sessions. When true, the from_time / to_time window is not allowed (Zoom returns HTTP 400). |
| `next_page_token` | string | No | Continuation token from a previous call's `next_page_token`. Omit to fetch the first page. Zoom tokens expire after 15 minutes. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Shared Space Channels

**Slug:** `ZOOM_CHAT_LIST_SHARED_SPACE_CHANNELS`

List the channels grouped inside a Zoom Team Chat shared space.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `space_id` | string | Yes | The shared space ID (from LIST_SHARED_SPACES or CREATE_SHARED_SPACE) whose channels to list. |
| `page_size` | integer | No | Number of records per page (max 50). |
| `next_page_token` | string | No | Continuation token from a previous call's `next_page_token`. Omit to fetch the first page. Zoom tokens expire after 15 minutes. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Shared Space Members

**Slug:** `ZOOM_CHAT_LIST_SHARED_SPACE_MEMBERS`

List the members and administrators of a Zoom Team Chat shared space.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `role` | string ("all" | "member" | "admin" | "owner") | No | Filter members by role: `all` (default), `member`, `admin`, or `owner`. |
| `status` | string ("all" | "active" | "inactive") | No | Filter members by status: `all` (default), `active`, or `inactive`. |
| `space_id` | string | Yes | The shared space ID. |
| `page_size` | integer | No | Number of records per page (max 50). |
| `next_page_token` | string | No | Continuation token from a previous call's `next_page_token`. Omit to fetch the first page. Zoom tokens expire after 15 minutes. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Shared Spaces

**Slug:** `ZOOM_CHAT_LIST_SHARED_SPACES`

List the Zoom Team Chat shared spaces the authenticated user belongs to.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page_size` | integer | No | Number of records per page (max 50). |
| `next_page_token` | string | No | Continuation token from a previous call's `next_page_token`. Omit to fetch the first page. Zoom tokens expire after 15 minutes. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Mark Message Read or Unread

**Slug:** `ZOOM_CHAT_MARK_MESSAGE_READ`

Mark a Zoom Team Chat message as read or unread. Identify the message by message_id plus the conversation it lives in: provide exactly one of to_channel (a channel message) or to_contact (a 1:1 message). Set action to 'read' (default) or 'unread'. Returns {success: true} on success; the underlying API responds with HTTP 204 and an empty body.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `action` | string ("read" | "unread") | No | Whether to mark the message as 'read' or 'unread'. |
| `timestamp` | integer | No | Timestamp in epoch milliseconds of the message to mark. |
| `message_id` | string | Yes | The message ID to mark as read or unread. |
| `to_channel` | string | No | Channel ID of the channel the message belongs to. Exactly one of to_channel or to_contact is required. |
| `to_contact` | string | No | Email address, user ID, or member ID of the 1:1 chat contact the message belongs to. Exactly one of to_channel or to_contact is required. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Move Channels Into/Out of Shared Space

**Slug:** `ZOOM_CHAT_MOVE_SHARED_SPACE_CHANNELS`

Move existing Zoom Team Chat channels into or out of a shared space. Returns per-channel results; success requires every channel to report is_moved=true.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `space_id` | string | Yes | The shared space's unique identifier ID. |
| `channel_ids` | array | Yes | Unique IDs of the channels to move into or out of the shared space. |
| `move_direction` | string ("move_into" | "move_out") | Yes | Direction to move the channels: 'move_into' the shared space or 'move_out' of it. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Pin or Unpin Message

**Slug:** `ZOOM_CHAT_PIN_MESSAGE`

Pin or unpin a message in a Zoom Team Chat channel. Set action to 'pin' or 'unpin', and identify the message by message_id plus the channel_id it belongs to. Returns {success: true} on success; the underlying API responds with HTTP 204 and an empty body.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `action` | string ("pin" | "unpin") | Yes | Whether to pin or unpin the message. |
| `channel_id` | string | Yes | ID of the channel the message belongs to. |
| `message_id` | string | Yes | The message ID to pin or unpin. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### React to Message

**Slug:** `ZOOM_CHAT_REACT_TO_MESSAGE`

Add or remove an emoji reaction on a Zoom Team Chat message. Identify the message by message_id plus the conversation it lives in: provide exactly one of to_channel (a channel message) or to_contact (a 1:1 message). The emoji is a Unicode codepoint string without a 'U+' prefix (e.g. '1F44D'). Returns {success: true} on success; the underlying API responds with HTTP 204 and an empty body.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `emoji` | string | No | Unicode codepoint of the emoji WITHOUT a 'U+' prefix, e.g. '1F44D' for thumbs-up. |
| `action` | string ("add" | "remove") | No | Whether to add or remove the reaction. |
| `message_id` | string | Yes | The message ID to react to. |
| `to_channel` | string | No | Channel ID of the channel the message belongs to. Exactly one of to_channel or to_contact is required. |
| `to_contact` | string | No | Email address, user ID, or member ID of the 1:1 chat contact the message belongs to. Exactly one of to_channel or to_contact is required. |
| `custom_emoji` | boolean | No | Set true to react with the custom emoji identified by custom_emoji_id. |
| `custom_emoji_id` | string | No | Custom emoji file ID. Required when custom_emoji is true. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Remove Channel Member

**Slug:** `ZOOM_CHAT_REMOVE_CHANNEL_MEMBER`

Remove a single member from a Zoom Team Chat channel. Returns {success: true} on success; the underlying API responds with HTTP 204 and an empty body. Removing someone who is not a member of the channel fails with a 404 (code 1001).

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `channel_id` | string | Yes | The channel ID. |
| `identifier` | string | Yes | Email address, user ID, or member ID of the member to remove. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Remove Shared Space Members

**Slug:** `ZOOM_CHAT_REMOVE_SHARED_SPACE_MEMBERS`

Remove members or administrators from a Zoom Team Chat shared space by user ID or member ID (the shared space owner cannot be removed). Zoom processes each identifier independently and returns HTTP 200 even when every removal fails, so success must be judged from successful_operations_count / unsuccessful_operations_count and each entry's operation_status - not the HTTP status.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `space_id` | string | Yes | Unique ID of the shared space to remove members from. |
| `member_identifiers` | array | Yes | User IDs or member IDs of the members or administrators to remove from the shared space (max 20). The shared space owner cannot be removed. Removal is processed per identifier - inspect each entry's operation_status in the response to see which removals succeeded, since Zoom returns HTTP 200 even when some or all removals fail. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Search Channels

**Slug:** `ZOOM_CHAT_SEARCH_CHANNELS`

Search Zoom Team Chat channels by name — fuzzy keywords or an exact channel name — across the channels the user has joined or the org's public channels. Returns one page of matches (max 20) plus a next_page_token cursor.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `haystack` | string ("user_joined" | "public" | "all") | No | Where to search: 'user_joined' (channels the user is a member of) or 'public' (public channels in the org). 'all' requires an account admin role and fails with 400 'No permission' for regular users. |
| `keywords` | array | No | Fuzzy-match keywords to search channel names by. Alphanumeric/unicode characters only — Zoom rejects whitespace and symbols inside a keyword. Provide keywords OR channel_name, not both. |
| `page_size` | integer | No | Number of channels per page (max 20). |
| `channel_name` | string | No | Exact channel name to match. Provide channel_name OR keywords, not both. |
| `next_page_token` | string | No | Continuation cursor from a previous page's next_page_token. Omit for the first page; pass the other search parameters again unchanged. |
| `include_archived` | boolean | No | Include archived channels in the results. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Search Company Contacts

**Slug:** `ZOOM_CHAT_SEARCH_COMPANY_CONTACTS`

Search the connected user's organization directory for contacts by keyword (first name, last name, or email address). Optionally include each contact's presence status.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page_size` | integer | No | Number of records to return per page (1-25). The tool defaults to 25 for useful directory searches; Zoom's own server default is 1. |
| `search_key` | string | Yes | Keyword to search the organization's directory by: a contact's first name, last name, or email address. Required. |
| `user_status` | string ("active" | "inactive") | No | Zoom user status filter. Only applies to contact type 1. |
| `contact_types` | integer ("1" | "2" | "3" | "4" | "5" | "6" | "7" | "8") | No | Contact type to search: 1 = Zoom user, 2 = auto receptionist, 3 = common area phone, 4 = call queue, 5 = shared line group, 6 = shared global directory, 7 = shared office contact, 8 = Zoom Room. Some phone contact types require a Zoom Phone management role with View permission. |
| `next_page_token` | string | No | Continuation token from a previous call's `next_page_token`. Omit to fetch the first page. Zoom tokens expire after 15 minutes. |
| `query_presence_status` | boolean | No | Set true to include each matching contact's presence status (e.g. Available, Away) in the response. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Send Message

**Slug:** `ZOOM_CHAT_SEND_MESSAGE`

Send a Zoom Team Chat message to a channel or a 1:1 contact, optionally as a thread reply (reply_main_message_id) or scheduled for later (scheduled_time). Exactly one of to_channel or to_contact must be provided.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `message` | string | Yes | The message text to send. |
| `at_items` | array | No | Mention metadata whose positions refer to the message string. |
| `file_ids` | array | No | File IDs to attach to the message (maximum six). |
| `rich_text` | array | No | Rich-text formatting ranges for the message. |
| `to_channel` | string | No | Channel ID to send the message to. Exactly one of to_channel or to_contact is required. |
| `to_contact` | string | No | Email address, user ID, or member ID of the contact for a 1:1 message. Exactly one of to_channel or to_contact is required. |
| `scheduled_time` | string | No | Optional UTC timestamp in yyyy-MM-ddTHH:mm:ssZ format to schedule the message instead of sending it immediately. Zoom requires it to be more than 30 minutes from now and no more than 180 days away. Scheduled drafts appear in LIST_SCHEDULED_MESSAGES. |
| `interactive_cards` | array | No | Interactive cards to send (maximum five). |
| `reply_main_message_id` | string | No | Message ID of a parent message; when set, this message is posted as a reply inside that message's thread. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Star or Unstar Conversation

**Slug:** `ZOOM_CHAT_STAR_CONVERSATION`

Star or unstar a Zoom Team Chat channel or contact for the authenticated user. Set target_type to 'channel' or 'contact' and target_id to the channel ID, contact user ID, or contact member ID. Returns {success: true} on success; the underlying API responds with HTTP 204 and an empty body.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `action` | string ("star" | "unstar") | Yes | Whether to star or unstar the target. |
| `target_id` | string | Yes | Channel ID, contact user ID, or contact member ID to star or unstar. |
| `target_type` | string ("channel" | "contact") | Yes | Type of the target: 'channel' or 'contact'. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Channel

**Slug:** `ZOOM_CHAT_UPDATE_CHANNEL`

Rename a Zoom Team Chat channel or update its type/settings.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | New display name for the channel. |
| `type` | integer ("1" | "2" | "3" | "5") | No | New channel type: 1, 2, 3, or 5 (see Zoom channel type documentation for the meaning of each value). |
| `channel_id` | string | Yes | The ID of the channel to update. |
| `channel_settings` | object | No | Channel settings to change (add-member permissions, posting permissions, @all mention permissions, ...). Only the provided settings are modified. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Message

**Slug:** `ZOOM_CHAT_UPDATE_MESSAGE`

Edit the text of an existing Zoom Team Chat message.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `message` | string | No | New message text. Omit when updating only files or interactive cards. |
| `file_ids` | array | No | File IDs to retain or add (maximum six); an empty list clears files. |
| `message_id` | string | Yes | The ID of the message to edit. |
| `to_channel` | string | No | Channel ID the message was sent to. Exactly one of to_channel or to_contact is required. Sent in the request body on this endpoint. |
| `to_contact` | string | No | Contact (email, user ID, or member ID) the message was sent to for a 1:1 chat. Exactly one of to_channel or to_contact is required. Sent in the request body on this endpoint. |
| `interactive_cards` | array | No | Interactive cards to retain or replace (maximum five); an empty list clears cards. card_id takes precedence over card_json. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Shared Space

**Slug:** `ZOOM_CHAT_UPDATE_SHARED_SPACE`

Update a Zoom Team Chat shared space's name, description, or settings.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `space_id` | string | Yes | The ID of the shared space to update. |
| `space_desc` | string | No | New description for the shared space. |
| `space_name` | string | No | New name for the shared space. |
| `space_settings` | object | No | Settings to change (external-user, add-member and create-channel permissions). Only the provided settings are modified. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |
