Query structured spec data via REST or MCP. Get exactly what your agent needs.
https://slack.com/api
/admin.apps.approve
Approve an app for installation on a workspace.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | required | string | Authentication token. Requires scope: `admin.apps:write` |
| app_id | formData | optional | string | The id of the app to approve. |
| request_id | formData | optional | string | The id of the request to approve. |
| team_id | formData | optional | string |
POST /admin.apps.approve
/admin.apps.restrict
Restrict an app for installation on a workspace.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | required | string | Authentication token. Requires scope: `admin.apps:write` |
| app_id | formData | optional | string | The id of the app to restrict. |
| request_id | formData | optional | string | The id of the request to restrict. |
| team_id | formData | optional | string |
POST /admin.apps.restrict
/admin.conversations.archive
Archive a public or private channel.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | required | string | Authentication token. Requires scope: `admin.conversations:write` |
| channel_id | formData | required | string | The channel to archive. |
POST /admin.conversations.archive
/admin.conversations.convertToPrivate
Convert a public channel to a private channel.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | required | string | Authentication token. Requires scope: `admin.conversations:write` |
| channel_id | formData | required | string | The channel to convert to private. |
POST /admin.conversations.convertToPrivate
/admin.conversations.create
Create a public or private channel-based conversation.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | required | string | Authentication token. Requires scope: `admin.conversations:write` |
| name | formData | required | string | Name of the public or private channel to create. |
| description | formData | optional | string | Description of the public or private channel to create. |
| is_private | formData | required | boolean | When `true`, creates a private channel instead of a public channel |
| org_wide | formData | optional | boolean | When `true`, the channel will be available org-wide. Note: if the channel is not `org_wide=true`, you must specify a `team_id` for this channel |
| team_id | formData | optional | string | The workspace to create the channel in. Note: this argument is required unless you set `org_wide=true`. |
POST /admin.conversations.create
/admin.conversations.delete
Delete a public or private channel.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | required | string | Authentication token. Requires scope: `admin.conversations:write` |
| channel_id | formData | required | string | The channel to delete. |
POST /admin.conversations.delete
/admin.conversations.disconnectShared
Disconnect a connected channel from one or more workspaces.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | required | string | Authentication token. Requires scope: `admin.conversations:write` |
| channel_id | formData | required | string | The channel to be disconnected from some workspaces. |
| leaving_team_ids | formData | optional | string | The team to be removed from the channel. Currently only a single team id can be specified. |
POST /admin.conversations.disconnectShared
/admin.conversations.invite
Invite a user to a public or private channel.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | required | string | Authentication token. Requires scope: `admin.conversations:write` |
| user_ids | formData | required | string | The users to invite. |
| channel_id | formData | required | string | The channel that the users will be invited to. |
POST /admin.conversations.invite
/admin.conversations.rename
Rename a public or private channel.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | required | string | Authentication token. Requires scope: `admin.conversations:write` |
| channel_id | formData | required | string | The channel to rename. |
| name | formData | required | string |
POST /admin.conversations.rename
/admin.conversations.setConversationPrefs
Set the posting permissions for a public or private channel.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | required | string | Authentication token. Requires scope: `admin.conversations:write` |
| channel_id | formData | required | string | The channel to set the prefs for |
| prefs | formData | required | string | The prefs for this channel in a stringified JSON format. |
POST /admin.conversations.setConversationPrefs
/admin.conversations.setTeams
Set the workspaces in an Enterprise grid org that connect to a public or private channel.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | required | string | Authentication token. Requires scope: `admin.conversations:write` |
| channel_id | formData | required | string | The encoded `channel_id` to add or remove to workspaces. |
| team_id | formData | optional | string | The workspace to which the channel belongs. Omit this argument if the channel is a cross-workspace shared channel. |
| target_team_ids | formData | optional | string | A comma-separated list of workspaces to which the channel should be shared. Not required if the channel is being shared org-wide. |
| org_channel | formData | optional | boolean | True if channel has to be converted to an org channel |
POST /admin.conversations.setTeams
/admin.conversations.unarchive
Unarchive a public or private channel.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | required | string | Authentication token. Requires scope: `admin.conversations:write` |
| channel_id | formData | required | string | The channel to unarchive. |
POST /admin.conversations.unarchive
/admin.conversations.restrictAccess.addGroup
Add an allowlist of IDP groups for accessing a channel
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | formData | required | string | Authentication token. Requires scope: `admin.conversations:write` |
| team_id | formData | optional | string | The workspace where the channel exists. This argument is required for channels only tied to one workspace, and optional for channels that are shared across an organization. |
| group_id | formData | required | string | The [IDP Group](https://slack.com/help/articles/115001435788-Connect-identity-provider-groups-to-your-Enterprise-Grid-org) ID to be an allowlist for the private channel. |
| channel_id | formData | required | string | The channel to link this group to. |
POST /admin.conversations.restrictAccess.addGroup
/admin.conversations.restrictAccess.removeGroup
Remove a linked IDP group linked from a private channel
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | formData | required | string | Authentication token. Requires scope: `admin.conversations:write` |
| team_id | formData | required | string | The workspace where the channel exists. This argument is required for channels only tied to one workspace, and optional for channels that are shared across an organization. |
| group_id | formData | required | string | The [IDP Group](https://slack.com/help/articles/115001435788-Connect-identity-provider-groups-to-your-Enterprise-Grid-org) ID to remove from the private channel. |
| channel_id | formData | required | string | The channel to remove the linked group from. |
POST /admin.conversations.restrictAccess.removeGroup
/admin.emoji.add
Add an emoji.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | formData | required | string | Authentication token. Requires scope: `admin.teams:write` |
| name | formData | required | string | The name of the emoji to be removed. Colons (`:myemoji:`) around the value are not required, although they may be included. |
| url | formData | required | string | The URL of a file to use as an image for the emoji. Square images under 128KB and with transparent backgrounds work best. |
POST /admin.emoji.add
/admin.emoji.addAlias
Add an emoji alias.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | formData | required | string | Authentication token. Requires scope: `admin.teams:write` |
| name | formData | required | string | The name of the emoji to be aliased. Colons (`:myemoji:`) around the value are not required, although they may be included. |
| alias_for | formData | required | string | The alias of the emoji. |
POST /admin.emoji.addAlias
/admin.emoji.remove
Remove an emoji across an Enterprise Grid organization
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | formData | required | string | Authentication token. Requires scope: `admin.teams:write` |
| name | formData | required | string | The name of the emoji to be removed. Colons (`:myemoji:`) around the value are not required, although they may be included. |
POST /admin.emoji.remove
/admin.emoji.rename
Rename an emoji.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | formData | required | string | Authentication token. Requires scope: `admin.teams:write` |
| name | formData | required | string | The name of the emoji to be renamed. Colons (`:myemoji:`) around the value are not required, although they may be included. |
| new_name | formData | required | string | The new name of the emoji. |
POST /admin.emoji.rename
/admin.inviteRequests.approve
Approve a workspace invite request.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | required | string | Authentication token. Requires scope: `admin.invites:write` |
| team_id | formData | optional | string | ID for the workspace where the invite request was made. |
| invite_request_id | formData | required | string | ID of the request to invite. |
POST /admin.inviteRequests.approve
/admin.inviteRequests.deny
Deny a workspace invite request.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | required | string | Authentication token. Requires scope: `admin.invites:write` |
| team_id | formData | optional | string | ID for the workspace where the invite request was made. |
| invite_request_id | formData | required | string | ID of the request to invite. |
POST /admin.inviteRequests.deny
/admin.teams.create
Create an Enterprise team.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | required | string | Authentication token. Requires scope: `admin.teams:write` |
| team_domain | formData | required | string | Team domain (for example, slacksoftballteam). |
| team_name | formData | required | string | Team name (for example, Slack Softball Team). |
| team_description | formData | optional | string | Description for the team. |
| team_discoverability | formData | optional | string | Who can join the team. A team's discoverability can be `open`, `closed`, `invite_only`, or `unlisted`. |
POST /admin.teams.create
/admin.teams.settings.setDefaultChannels
Set the default channels of a workspace.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | formData | required | string | Authentication token. Requires scope: `admin.teams:write` |
| team_id | formData | required | string | ID for the workspace to set the default channel for. |
| channel_ids | formData | required | string | An array of channel IDs. |
POST /admin.teams.settings.setDefaultChannels
/admin.teams.settings.setDescription
Set the description of a given workspace.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | required | string | Authentication token. Requires scope: `admin.teams:write` |
| team_id | formData | required | string | ID for the workspace to set the description for. |
| description | formData | required | string | The new description for the workspace. |
POST /admin.teams.settings.setDescription
/admin.teams.settings.setDiscoverability
An API method that allows admins to set the discoverability of a given workspace
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | required | string | Authentication token. Requires scope: `admin.teams:write` |
| team_id | formData | required | string | The ID of the workspace to set discoverability on. |
| discoverability | formData | required | string | This workspace's discovery setting. It must be set to one of `open`, `invite_only`, `closed`, or `unlisted`. |
POST /admin.teams.settings.setDiscoverability
/admin.teams.settings.setIcon
Sets the icon of a workspace.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | formData | required | string | Authentication token. Requires scope: `admin.teams:write` |
| image_url | formData | required | string | Image URL for the icon |
| team_id | formData | required | string | ID for the workspace to set the icon for. |
POST /admin.teams.settings.setIcon
/admin.teams.settings.setName
Set the name of a given workspace.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | required | string | Authentication token. Requires scope: `admin.teams:write` |
| team_id | formData | required | string | ID for the workspace to set the name for. |
| name | formData | required | string | The new name of the workspace. |
POST /admin.teams.settings.setName
/admin.usergroups.addChannels
Add one or more default channels to an IDP group.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | required | string | Authentication token. Requires scope: `admin.usergroups:write` |
| usergroup_id | formData | required | string | ID of the IDP group to add default channels for. |
| team_id | formData | optional | string | The workspace to add default channels in. |
| channel_ids | formData | required | string | Comma separated string of channel IDs. |
POST /admin.usergroups.addChannels
/admin.usergroups.addTeams
Associate one or more default workspaces with an organization-wide IDP group.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | required | string | Authentication token. Requires scope: `admin.teams:write` |
| usergroup_id | formData | required | string | An encoded usergroup (IDP Group) ID. |
| team_ids | formData | required | string | A comma separated list of encoded team (workspace) IDs. Each workspace *MUST* belong to the organization associated with the token. |
| auto_provision | formData | optional | boolean | When `true`, this method automatically creates new workspace accounts for the IDP group members. |
POST /admin.usergroups.addTeams
/admin.usergroups.removeChannels
Remove one or more default channels from an org-level IDP group (user group).
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | required | string | Authentication token. Requires scope: `admin.usergroups:write` |
| usergroup_id | formData | required | string | ID of the IDP Group |
| channel_ids | formData | required | string | Comma-separated string of channel IDs |
POST /admin.usergroups.removeChannels
/admin.users.assign
Add an Enterprise user to a workspace.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | required | string | Authentication token. Requires scope: `admin.users:write` |
| team_id | formData | required | string | The ID (`T1234`) of the workspace. |
| user_id | formData | required | string | The ID of the user to add to the workspace. |
| is_restricted | formData | optional | boolean | True if user should be added to the workspace as a guest. |
| is_ultra_restricted | formData | optional | boolean | True if user should be added to the workspace as a single-channel guest. |
| channel_ids | formData | optional | string | Comma separated values of channel IDs to add user in the new workspace. |
POST /admin.users.assign
/admin.users.invite
Invite a user to a workspace.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | required | string | Authentication token. Requires scope: `admin.users:write` |
| team_id | formData | required | string | The ID (`T1234`) of the workspace. |
| formData | required | string | The email address of the person to invite. | |
| channel_ids | formData | required | string | A comma-separated list of `channel_id`s for this user to join. At least one channel is required. |
| custom_message | formData | optional | string | An optional message to send to the user in the invite email. |
| real_name | formData | optional | string | Full name of the user. |
| resend | formData | optional | boolean | Allow this invite to be resent in the future if a user has not signed up yet. (default: false) |
| is_restricted | formData | optional | boolean | Is this user a multi-channel guest user? (default: false) |
| is_ultra_restricted | formData | optional | boolean | Is this user a single channel guest user? (default: false) |
| guest_expiration_ts | formData | optional | string | Timestamp when guest account should be disabled. Only include this timestamp if you are inviting a guest user and you want their account to expire on a certain date. |
POST /admin.users.invite
/admin.users.remove
Remove a user from a workspace.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | required | string | Authentication token. Requires scope: `admin.users:write` |
| team_id | formData | required | string | The ID (`T1234`) of the workspace. |
| user_id | formData | required | string | The ID of the user to remove. |
POST /admin.users.remove
/admin.users.setAdmin
Set an existing guest, regular user, or owner to be an admin user.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | required | string | Authentication token. Requires scope: `admin.users:write` |
| team_id | formData | required | string | The ID (`T1234`) of the workspace. |
| user_id | formData | required | string | The ID of the user to designate as an admin. |
POST /admin.users.setAdmin
/admin.users.setExpiration
Set an expiration for a guest user
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | required | string | Authentication token. Requires scope: `admin.users:write` |
| team_id | formData | required | string | The ID (`T1234`) of the workspace. |
| user_id | formData | required | string | The ID of the user to set an expiration for. |
| expiration_ts | formData | required | integer | Timestamp when guest account should be disabled. |
POST /admin.users.setExpiration
/admin.users.setOwner
Set an existing guest, regular user, or admin user to be a workspace owner.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | required | string | Authentication token. Requires scope: `admin.users:write` |
| team_id | formData | required | string | The ID (`T1234`) of the workspace. |
| user_id | formData | required | string | Id of the user to promote to owner. |
POST /admin.users.setOwner
/admin.users.setRegular
Set an existing guest user, admin user, or owner to be a regular user.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | required | string | Authentication token. Requires scope: `admin.users:write` |
| team_id | formData | required | string | The ID (`T1234`) of the workspace. |
| user_id | formData | required | string | The ID of the user to designate as a regular user. |
POST /admin.users.setRegular
/admin.users.session.invalidate
Invalidate a single session for a user by session_id
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | required | string | Authentication token. Requires scope: `admin.users:write` |
| team_id | formData | required | string | ID of the team that the session belongs to |
| session_id | formData | required | integer |
POST /admin.users.session.invalidate
/admin.users.session.reset
Wipes all valid sessions on all devices for a given user
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | required | string | Authentication token. Requires scope: `admin.users:write` |
| user_id | formData | required | string | The ID of the user to wipe sessions for |
| mobile_only | formData | optional | boolean | Only expire mobile sessions (default: false) |
| web_only | formData | optional | boolean | Only expire web sessions (default: false) |
POST /admin.users.session.reset
/calls.add
Registers a new Call.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | required | string | Authentication token. Requires scope: `calls:write` |
| external_unique_id | formData | required | string | An ID supplied by the 3rd-party Call provider. It must be unique across all Calls from that service. |
| external_display_id | formData | optional | string | An optional, human-readable ID supplied by the 3rd-party Call provider. If supplied, this ID will be displayed in the Call object. |
| join_url | formData | required | string | The URL required for a client to join the Call. |
| desktop_app_join_url | formData | optional | string | When supplied, available Slack clients will attempt to directly launch the 3rd-party Call with this URL. |
| date_start | formData | optional | integer | Call start time in UTC UNIX timestamp format |
| title | formData | optional | string | The name of the Call. |
| created_by | formData | optional | string | The valid Slack user ID of the user who created this Call. When this method is called with a user token, the `created_by` field is optional and defaults to the authed user of the token. Otherwise, the field is required. |
| users | formData | optional | string | The list of users to register as participants in the Call. [Read more on how to specify users here](/apis/calls#users). |
POST /calls.add
/calls.end
Ends a Call.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | required | string | Authentication token. Requires scope: `calls:write` |
| id | formData | required | string | `id` returned when registering the call using the [`calls.add`](/methods/calls.add) method. |
| duration | formData | optional | integer | Call duration in seconds |
POST /calls.end
/calls.update
Updates information about a Call.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | required | string | Authentication token. Requires scope: `calls:write` |
| id | formData | required | string | `id` returned by the [`calls.add`](/methods/calls.add) method. |
| title | formData | optional | string | The name of the Call. |
| join_url | formData | optional | string | The URL required for a client to join the Call. |
| desktop_app_join_url | formData | optional | string | When supplied, available Slack clients will attempt to directly launch the 3rd-party Call with this URL. |
POST /calls.update
/calls.participants.add
Registers new participants added to a Call.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | required | string | Authentication token. Requires scope: `calls:write` |
| id | formData | required | string | `id` returned by the [`calls.add`](/methods/calls.add) method. |
| users | formData | required | string | The list of users to add as participants in the Call. [Read more on how to specify users here](/apis/calls#users). |
POST /calls.participants.add
/calls.participants.remove
Registers participants removed from a Call.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | required | string | Authentication token. Requires scope: `calls:write` |
| id | formData | required | string | `id` returned by the [`calls.add`](/methods/calls.add) method. |
| users | formData | required | string | The list of users to remove as participants in the Call. [Read more on how to specify users here](/apis/calls#users). |
POST /calls.participants.remove
/chat.delete
Deletes a message.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | optional | string | Authentication token. Requires scope: `chat:write` |
| ts | formData | optional | number | Timestamp of the message to be deleted. |
| channel | formData | optional | string | Channel containing the message to be deleted. |
| as_user | formData | optional | boolean | Pass true to delete the message as the authed user with `chat:write:user` scope. [Bot users](/bot-users) in this context are considered authed users. If unused or false, the message will be deleted with `chat:write:bot` scope. |
POST /chat.delete
/chat.deleteScheduledMessage
Deletes a pending scheduled message from the queue.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | required | string | Authentication token. Requires scope: `chat:write` |
| as_user | formData | optional | boolean | Pass true to delete the message as the authed user with `chat:write:user` scope. [Bot users](/bot-users) in this context are considered authed users. If unused or false, the message will be deleted with `chat:write:bot` scope. |
| channel | formData | required | string | The channel the scheduled_message is posting to |
| scheduled_message_id | formData | required | string | `scheduled_message_id` returned from call to chat.scheduleMessage |
POST /chat.deleteScheduledMessage
/chat.meMessage
Share a me message into a channel.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | optional | string | Authentication token. Requires scope: `chat:write` |
| channel | formData | optional | string | Channel to send message to. Can be a public channel, private group or IM channel. Can be an encoded ID, or a name. |
| text | formData | optional | string | Text of the message to send. |
POST /chat.meMessage
/chat.postEphemeral
Sends an ephemeral message to a user in a channel.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | required | string | Authentication token. Requires scope: `chat:write` |
| as_user | formData | optional | boolean | Pass true to post the message as the authed user. Defaults to true if the chat:write:bot scope is not included. Otherwise, defaults to false. |
| attachments | formData | optional | string | A JSON-based array of structured attachments, presented as a URL-encoded string. |
| blocks | formData | optional | string | A JSON-based array of structured blocks, presented as a URL-encoded string. |
| channel | formData | required | string | Channel, private group, or IM channel to send message to. Can be an encoded ID, or a name. |
| icon_emoji | formData | optional | string | Emoji to use as the icon for this message. Overrides `icon_url`. Must be used in conjunction with `as_user` set to `false`, otherwise ignored. See [authorship](#authorship) below. |
| icon_url | formData | optional | string | URL to an image to use as the icon for this message. Must be used in conjunction with `as_user` set to false, otherwise ignored. See [authorship](#authorship) below. |
| link_names | formData | optional | boolean | Find and link channel names and usernames. |
| parse | formData | optional | string | Change how messages are treated. Defaults to `none`. See [below](#formatting). |
| text | formData | optional | string | How this field works and whether it is required depends on other fields you use in your API call. [See below](#text_usage) for more detail. |
| thread_ts | formData | optional | string | Provide another message's `ts` value to post this message in a thread. Avoid using a reply's `ts` value; use its parent's value instead. Ephemeral messages in threads are only shown if there is already an active thread. |
| user | formData | required | string | `id` of the user who will receive the ephemeral message. The user should be in the channel specified by the `channel` argument. |
| username | formData | optional | string | Set your bot's user name. Must be used in conjunction with `as_user` set to false, otherwise ignored. See [authorship](#authorship) below. |
POST /chat.postEphemeral
/chat.postMessage
Sends a message to a channel.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | required | string | Authentication token. Requires scope: `chat:write` |
| as_user | formData | optional | string | Pass true to post the message as the authed user, instead of as a bot. Defaults to false. See [authorship](#authorship) below. |
| attachments | formData | optional | string | A JSON-based array of structured attachments, presented as a URL-encoded string. |
| blocks | formData | optional | string | A JSON-based array of structured blocks, presented as a URL-encoded string. |
| channel | formData | required | string | Channel, private group, or IM channel to send message to. Can be an encoded ID, or a name. See [below](#channels) for more details. |
| icon_emoji | formData | optional | string | Emoji to use as the icon for this message. Overrides `icon_url`. Must be used in conjunction with `as_user` set to `false`, otherwise ignored. See [authorship](#authorship) below. |
| icon_url | formData | optional | string | URL to an image to use as the icon for this message. Must be used in conjunction with `as_user` set to false, otherwise ignored. See [authorship](#authorship) below. |
| link_names | formData | optional | boolean | Find and link channel names and usernames. |
| mrkdwn | formData | optional | boolean | Disable Slack markup parsing by setting to `false`. Enabled by default. |
| parse | formData | optional | string | Change how messages are treated. Defaults to `none`. See [below](#formatting). |
| reply_broadcast | formData | optional | boolean | Used in conjunction with `thread_ts` and indicates whether reply should be made visible to everyone in the channel or conversation. Defaults to `false`. |
| text | formData | optional | string | How this field works and whether it is required depends on other fields you use in your API call. [See below](#text_usage) for more detail. |
| thread_ts | formData | optional | string | Provide another message's `ts` value to make this message a reply. Avoid using a reply's `ts` value; use its parent instead. |
| unfurl_links | formData | optional | boolean | Pass true to enable unfurling of primarily text-based content. |
| unfurl_media | formData | optional | boolean | Pass false to disable unfurling of media content. |
| username | formData | optional | string | Set your bot's user name. Must be used in conjunction with `as_user` set to false, otherwise ignored. See [authorship](#authorship) below. |
POST /chat.postMessage
/chat.scheduleMessage
Schedules a message to be sent to a channel.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | optional | string | Authentication token. Requires scope: `chat:write` |
| channel | formData | optional | string | Channel, private group, or DM channel to send message to. Can be an encoded ID, or a name. See [below](#channels) for more details. |
| text | formData | optional | string | How this field works and whether it is required depends on other fields you use in your API call. [See below](#text_usage) for more detail. |
| post_at | formData | optional | string | Unix EPOCH timestamp of time in future to send the message. |
| parse | formData | optional | string | Change how messages are treated. Defaults to `none`. See [chat.postMessage](chat.postMessage#formatting). |
| as_user | formData | optional | boolean | Pass true to post the message as the authed user, instead of as a bot. Defaults to false. See [chat.postMessage](chat.postMessage#authorship). |
| link_names | formData | optional | boolean | Find and link channel names and usernames. |
| attachments | formData | optional | string | A JSON-based array of structured attachments, presented as a URL-encoded string. |
| blocks | formData | optional | string | A JSON-based array of structured blocks, presented as a URL-encoded string. |
| unfurl_links | formData | optional | boolean | Pass true to enable unfurling of primarily text-based content. |
| unfurl_media | formData | optional | boolean | Pass false to disable unfurling of media content. |
| thread_ts | formData | optional | number | Provide another message's `ts` value to make this message a reply. Avoid using a reply's `ts` value; use its parent instead. |
| reply_broadcast | formData | optional | boolean | Used in conjunction with `thread_ts` and indicates whether reply should be made visible to everyone in the channel or conversation. Defaults to `false`. |
POST /chat.scheduleMessage
/chat.unfurl
Provide custom unfurl behavior for user-posted URLs
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | required | string | Authentication token. Requires scope: `links:write` |
| channel | formData | required | string | Channel ID of the message |
| ts | formData | required | string | Timestamp of the message to add unfurl behavior to. |
| unfurls | formData | optional | string | URL-encoded JSON map with keys set to URLs featured in the the message, pointing to their unfurl blocks or message attachments. |
| user_auth_message | formData | optional | string | Provide a simply-formatted string to send as an ephemeral message to the user as invitation to authenticate further and enable full unfurling behavior |
| user_auth_required | formData | optional | boolean | Set to `true` or `1` to indicate the user must install your Slack app to trigger unfurls for this domain |
| user_auth_url | formData | optional | string | Send users to this custom URL where they will complete authentication in your app to fully trigger unfurling. Value should be properly URL-encoded. |
POST /chat.unfurl
/chat.update
Updates a message.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | required | string | Authentication token. Requires scope: `chat:write` |
| as_user | formData | optional | string | Pass true to update the message as the authed user. [Bot users](/bot-users) in this context are considered authed users. |
| attachments | formData | optional | string | A JSON-based array of structured attachments, presented as a URL-encoded string. This field is required when not presenting `text`. If you don't include this field, the message's previous `attachments` will be retained. To remove previous `attachments`, include an empty array for this field. |
| blocks | formData | optional | string | A JSON-based array of [structured blocks](/block-kit/building), presented as a URL-encoded string. If you don't include this field, the message's previous `blocks` will be retained. To remove previous `blocks`, include an empty array for this field. |
| channel | formData | required | string | Channel containing the message to be updated. |
| link_names | formData | optional | string | Find and link channel names and usernames. Defaults to `none`. If you do not specify a value for this field, the original value set for the message will be overwritten with the default, `none`. |
| parse | formData | optional | string | Change how messages are treated. Defaults to `client`, unlike `chat.postMessage`. Accepts either `none` or `full`. If you do not specify a value for this field, the original value set for the message will be overwritten with the default, `client`. |
| text | formData | optional | string | New text for the message, using the [default formatting rules](/reference/surfaces/formatting). It's not required when presenting `blocks` or `attachments`. |
| ts | formData | required | string | Timestamp of the message to be updated. |
POST /chat.update
/conversations.archive
Archives a conversation.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | optional | string | Authentication token. Requires scope: `conversations:write` |
| channel | formData | optional | string | ID of conversation to archive |
POST /conversations.archive
/conversations.close
Closes a direct message or multi-person direct message.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | optional | string | Authentication token. Requires scope: `conversations:write` |
| channel | formData | optional | string | Conversation to close. |
POST /conversations.close
/conversations.create
Initiates a public or private channel-based conversation
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | optional | string | Authentication token. Requires scope: `conversations:write` |
| name | formData | optional | string | Name of the public or private channel to create |
| is_private | formData | optional | boolean | Create a private channel instead of a public one |
POST /conversations.create
/conversations.invite
Invites users to a channel.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | optional | string | Authentication token. Requires scope: `conversations:write` |
| channel | formData | optional | string | The ID of the public or private channel to invite user(s) to. |
| users | formData | optional | string | A comma separated list of user IDs. Up to 1000 users may be listed. |
POST /conversations.invite
/conversations.join
Joins an existing conversation.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | optional | string | Authentication token. Requires scope: `channels:write` |
| channel | formData | optional | string | ID of conversation to join |
POST /conversations.join
/conversations.kick
Removes a user from a conversation.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | optional | string | Authentication token. Requires scope: `conversations:write` |
| channel | formData | optional | string | ID of conversation to remove user from. |
| user | formData | optional | string | User ID to be removed. |
POST /conversations.kick
/conversations.leave
Leaves a conversation.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | optional | string | Authentication token. Requires scope: `conversations:write` |
| channel | formData | optional | string | Conversation to leave |
POST /conversations.leave
/conversations.mark
Sets the read cursor in a channel.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | optional | string | Authentication token. Requires scope: `conversations:write` |
| channel | formData | optional | string | Channel or conversation to set the read cursor for. |
| ts | formData | optional | number | Unique identifier of message you want marked as most recently seen in this conversation. |
POST /conversations.mark
/conversations.open
Opens or resumes a direct message or multi-person direct message.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | optional | string | Authentication token. Requires scope: `conversations:write` |
| channel | formData | optional | string | Resume a conversation by supplying an `im` or `mpim`'s ID. Or provide the `users` field instead. |
| users | formData | optional | string | Comma separated lists of users. If only one user is included, this creates a 1:1 DM. The ordering of the users is preserved whenever a multi-person direct message is returned. Supply a `channel` when not supplying `users`. |
| return_im | formData | optional | boolean | Boolean, indicates you want the full IM channel definition in the response. |
POST /conversations.open
/conversations.rename
Renames a conversation.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | optional | string | Authentication token. Requires scope: `conversations:write` |
| channel | formData | optional | string | ID of conversation to rename |
| name | formData | optional | string | New name for conversation. |
POST /conversations.rename
/conversations.setPurpose
Sets the purpose for a conversation.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | optional | string | Authentication token. Requires scope: `conversations:write` |
| channel | formData | optional | string | Conversation to set the purpose of |
| purpose | formData | optional | string | A new, specialer purpose |
POST /conversations.setPurpose
/conversations.setTopic
Sets the topic for a conversation.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | optional | string | Authentication token. Requires scope: `conversations:write` |
| channel | formData | optional | string | Conversation to set the topic of |
| topic | formData | optional | string | The new topic string. Does not support formatting or linkification. |
POST /conversations.setTopic
/conversations.unarchive
Reverses conversation archival.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | optional | string | Authentication token. Requires scope: `conversations:write` |
| channel | formData | optional | string | ID of conversation to unarchive |
POST /conversations.unarchive
/dnd.endDnd
Ends the current user's Do Not Disturb session immediately.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | required | string | Authentication token. Requires scope: `dnd:write` |
POST /dnd.endDnd
/dnd.endSnooze
Ends the current user's snooze mode immediately.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | required | string | Authentication token. Requires scope: `dnd:write` |
POST /dnd.endSnooze
/dnd.setSnooze
Turns on Do Not Disturb mode for the current user, or changes its duration.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | formData | required | string | Authentication token. Requires scope: `dnd:write` |
| num_minutes | formData | required | string | Number of minutes, from now, to snooze until. |
POST /dnd.setSnooze
/files.delete
Deletes a file.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | optional | string | Authentication token. Requires scope: `files:write:user` |
| file | formData | optional | string | ID of file to delete. |
POST /files.delete
/files.revokePublicURL
Revokes public/external sharing access for a file
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | optional | string | Authentication token. Requires scope: `files:write:user` |
| file | formData | optional | string | File to revoke |
POST /files.revokePublicURL
/files.sharedPublicURL
Enables a file for public/external sharing.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | optional | string | Authentication token. Requires scope: `files:write:user` |
| file | formData | optional | string | File to share |
POST /files.sharedPublicURL
/files.upload
Uploads or creates a file.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | formData | optional | string | Authentication token. Requires scope: `files:write:user` |
| file | formData | optional | string | File contents via `multipart/form-data`. If omitting this parameter, you must submit `content`. |
| content | formData | optional | string | File contents via a POST variable. If omitting this parameter, you must provide a `file`. |
| filetype | formData | optional | string | A [file type](/types/file#file_types) identifier. |
| filename | formData | optional | string | Filename of file. |
| title | formData | optional | string | Title of file. |
| initial_comment | formData | optional | string | The message text introducing the file in specified `channels`. |
| channels | formData | optional | string | Comma-separated list of channel names or IDs where the file will be shared. |
| thread_ts | formData | optional | number | Provide another message's `ts` value to upload this file as a reply. Never use a reply's `ts` value; use its parent instead. |
POST /files.upload
/files.comments.delete
Deletes an existing comment on a file.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | optional | string | Authentication token. Requires scope: `files:write:user` |
| file | formData | optional | string | File to delete a comment from. |
| id | formData | optional | string | The comment to delete. |
POST /files.comments.delete
/files.remote.add
Adds a file from a remote service
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | formData | optional | string | Authentication token. Requires scope: `remote_files:write` |
| external_id | formData | optional | string | Creator defined GUID for the file. |
| title | formData | optional | string | Title of the file being shared. |
| filetype | formData | optional | string | type of file |
| external_url | formData | optional | string | URL of the remote file. |
| preview_image | formData | optional | string | Preview of the document via `multipart/form-data`. |
| indexable_file_contents | formData | optional | string | A text file (txt, pdf, doc, etc.) containing textual search terms that are used to improve discovery of the remote file. |
POST /files.remote.add
/files.remote.remove
Remove a remote file.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | formData | optional | string | Authentication token. Requires scope: `remote_files:write` |
| file | formData | optional | string | Specify a file by providing its ID. |
| external_id | formData | optional | string | Creator defined GUID for the file. |
POST /files.remote.remove
/files.remote.update
Updates an existing remote file.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | formData | optional | string | Authentication token. Requires scope: `remote_files:write` |
| file | formData | optional | string | Specify a file by providing its ID. |
| external_id | formData | optional | string | Creator defined GUID for the file. |
| title | formData | optional | string | Title of the file being shared. |
| filetype | formData | optional | string | type of file |
| external_url | formData | optional | string | URL of the remote file. |
| preview_image | formData | optional | string | Preview of the document via `multipart/form-data`. |
| indexable_file_contents | formData | optional | string | File containing contents that can be used to improve searchability for the remote file. |
POST /files.remote.update
/pins.add
Pins an item to a channel.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | required | string | Authentication token. Requires scope: `pins:write` |
| channel | formData | required | string | Channel to pin the item in. |
| timestamp | formData | optional | string | Timestamp of the message to pin. |
POST /pins.add
/pins.remove
Un-pins an item from a channel.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | required | string | Authentication token. Requires scope: `pins:write` |
| channel | formData | required | string | Channel where the item is pinned to. |
| timestamp | formData | optional | string | Timestamp of the message to un-pin. |
POST /pins.remove
/reactions.add
Adds a reaction to an item.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| channel | formData | required | string | Channel where the message to add reaction to was posted. |
| name | formData | required | string | Reaction (emoji) name. |
| timestamp | formData | required | string | Timestamp of the message to add reaction to. |
| token | header | required | string | Authentication token. Requires scope: `reactions:write` |
POST /reactions.add
/reactions.remove
Removes a reaction from an item.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | required | string | Authentication token. Requires scope: `reactions:write` |
| name | formData | required | string | Reaction (emoji) name. |
| file | formData | optional | string | File to remove reaction from. |
| file_comment | formData | optional | string | File comment to remove reaction from. |
| channel | formData | optional | string | Channel where the message to remove reaction from was posted. |
| timestamp | formData | optional | string | Timestamp of the message to remove reaction from. |
POST /reactions.remove
/reminders.add
Creates a reminder.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | required | string | Authentication token. Requires scope: `reminders:write` |
| text | formData | required | string | The content of the reminder |
| time | formData | required | string | When this reminder should happen: the Unix timestamp (up to five years from now), the number of seconds until the reminder (if within 24 hours), or a natural language description (Ex. "in 15 minutes," or "every Thursday") |
| user | formData | optional | string | The user who will receive the reminder. If no user is specified, the reminder will go to user who created it. |
POST /reminders.add
/reminders.complete
Marks a reminder as complete.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | optional | string | Authentication token. Requires scope: `reminders:write` |
| reminder | formData | optional | string | The ID of the reminder to be marked as complete |
POST /reminders.complete
/reminders.delete
Deletes a reminder.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | optional | string | Authentication token. Requires scope: `reminders:write` |
| reminder | formData | optional | string | The ID of the reminder |
POST /reminders.delete
/stars.add
Adds a star to an item.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | required | string | Authentication token. Requires scope: `stars:write` |
| channel | formData | optional | string | Channel to add star to, or channel where the message to add star to was posted (used with `timestamp`). |
| file | formData | optional | string | File to add star to. |
| file_comment | formData | optional | string | File comment to add star to. |
| timestamp | formData | optional | string | Timestamp of the message to add star to. |
POST /stars.add
/stars.remove
Removes a star from an item.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | required | string | Authentication token. Requires scope: `stars:write` |
| channel | formData | optional | string | Channel to remove star from, or channel where the message to remove star from was posted (used with `timestamp`). |
| file | formData | optional | string | File to remove star from. |
| file_comment | formData | optional | string | File comment to remove star from. |
| timestamp | formData | optional | string | Timestamp of the message to remove star from. |
POST /stars.remove
/usergroups.create
Create a User Group
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | required | string | Authentication token. Requires scope: `usergroups:write` |
| channels | formData | optional | string | A comma separated string of encoded channel IDs for which the User Group uses as a default. |
| description | formData | optional | string | A short description of the User Group. |
| handle | formData | optional | string | A mention handle. Must be unique among channels, users and User Groups. |
| include_count | formData | optional | boolean | Include the number of users in each User Group. |
| name | formData | required | string | A name for the User Group. Must be unique among User Groups. |
POST /usergroups.create
/usergroups.disable
Disable an existing User Group
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | required | string | Authentication token. Requires scope: `usergroups:write` |
| include_count | formData | optional | boolean | Include the number of users in the User Group. |
| usergroup | formData | required | string | The encoded ID of the User Group to disable. |
POST /usergroups.disable
/usergroups.enable
Enable a User Group
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | required | string | Authentication token. Requires scope: `usergroups:write` |
| include_count | formData | optional | boolean | Include the number of users in the User Group. |
| usergroup | formData | required | string | The encoded ID of the User Group to enable. |
POST /usergroups.enable
/usergroups.update
Update an existing User Group
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| handle | formData | optional | string | A mention handle. Must be unique among channels, users and User Groups. |
| description | formData | optional | string | A short description of the User Group. |
| channels | formData | optional | string | A comma separated string of encoded channel IDs for which the User Group uses as a default. |
| token | header | required | string | Authentication token. Requires scope: `usergroups:write` |
| include_count | formData | optional | boolean | Include the number of users in the User Group. |
| usergroup | formData | required | string | The encoded ID of the User Group to update. |
| name | formData | optional | string | A name for the User Group. Must be unique among User Groups. |
POST /usergroups.update
/usergroups.users.update
Update the list of users for a User Group
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | required | string | Authentication token. Requires scope: `usergroups:write` |
| include_count | formData | optional | boolean | Include the number of users in the User Group. |
| usergroup | formData | required | string | The encoded ID of the User Group to update. |
| users | formData | required | string | A comma separated string of encoded user IDs that represent the entire list of users for the User Group. |
POST /usergroups.users.update
/users.deletePhoto
Delete the user profile photo
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | formData | required | string | Authentication token. Requires scope: `users.profile:write` |
POST /users.deletePhoto
/users.setActive
Marked a user as active. Deprecated and non-functional.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | required | string | Authentication token. Requires scope: `users:write` |
POST /users.setActive
/users.setPhoto
Set the user profile photo
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | formData | required | string | Authentication token. Requires scope: `users.profile:write` |
| crop_w | formData | optional | string | Width/height of crop box (always square) |
| crop_x | formData | optional | string | X coordinate of top-left corner of crop box |
| crop_y | formData | optional | string | Y coordinate of top-left corner of crop box |
| image | formData | optional | string | File contents via `multipart/form-data`. |
POST /users.setPhoto
/users.setPresence
Manually sets user presence.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | required | string | Authentication token. Requires scope: `users:write` |
| presence | formData | required | string | Either `auto` or `away` |
POST /users.setPresence
/users.profile.set
Set the profile information for a user.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | required | string | Authentication token. Requires scope: `users.profile:write` |
| name | formData | optional | string | Name of a single key to set. Usable only if `profile` is not passed. |
| profile | formData | optional | string | Collection of key:value pairs presented as a URL-encoded JSON hash. At most 50 fields may be set. Each field name is limited to 255 characters. |
| user | formData | optional | string | ID of user to change. This argument may only be specified by team admins on paid teams. |
| value | formData | optional | string | Value to set a single key to. Usable only if `profile` is not passed. |
POST /users.profile.set
blocks
{
"type": "array",
"items": {
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"type": "string"
}
},
"additionalProperties": true
},
"title": "Block Kit blocks",
"description": "This is a very loose definition, in the future, we'll populate this with deeper schema in this definition namespace."
}
defs_app_id
{
"type": "string",
"title": "App ID",
"pattern": "^A[A-Z0-9]{1,}$"
}
defs_bot_id
{
"type": "string",
"title": "Bot User ID",
"pattern": "^B[A-Z0-9]{8,}$"
}
defs_channel
{
"type": "string",
"title": "Channel-like conversation ID",
"pattern": "^[CGD][A-Z0-9]{8,}$"
}
defs_channel_id
{
"type": "string",
"title": "Channel ID",
"pattern": "^[C][A-Z0-9]{2,}$"
}
defs_channel_name
{
"type": "string",
"title": "Name of a channel"
}
defs_comment_id
{
"type": "string",
"title": "File Comment ID",
"pattern": "^Fc[A-Z0-9]{8,}$"
}
defs_dm_id
{
"type": "string",
"title": "Direct Message Channel ID",
"pattern": "^[D][A-Z0-9]{8,}$"
}
defs_enterprise_id
{
"type": "string",
"title": "Enterprise ID",
"pattern": "^[E][A-Z0-9]{8,}$"
}
defs_enterprise_name
{
"type": "string",
"title": "Name of the enterprise org"
}
defs_enterprise_user_id
{
"type": "string",
"title": "Enterprise User ID",
"pattern": "^[WU][A-Z0-9]{8,}$"
}
defs_file_id
{
"type": "string",
"title": "File ID",
"pattern": "^[F][A-Z0-9]{8,}$"
}
defs_group_id
{
"type": "string",
"title": "Private Channel ID",
"pattern": "^[G][A-Z0-9]{8,}$"
}
defs_ok_false
{
"enum": [
false
],
"type": "boolean",
"title": "default failure response"
}
defs_ok_true
{
"enum": [
true
],
"type": "boolean",
"title": "default success response"
}
defs_optional_app_id
{
"type": "string",
"title": "App ID or empty string",
"pattern": "^(A[A-Z0-9]{1,})?$"
}
defs_pinned_info
{
"type": "object",
"title": "Info for a pinned item",
"additionalProperties": false
}
defs_reminder_id
{
"type": "string",
"title": "Reminder ID",
"pattern": "^Rm[A-Z0-9]{8,}$"
}
defs_subteam_id
{
"type": "string",
"title": "Subteam ID",
"pattern": "^S[A-Z0-9]{2,}$"
}
defs_team
{
"type": "string",
"title": "Team ID",
"pattern": "^[T][A-Z0-9]{2,}$"
}
defs_topic_purpose_creator
{
"type": "string",
"title": "User ID or empty string, used for topic and purpose creation",
"pattern": "^[UW][A-Z0-9]{8,}$|^$"
}
defs_ts
{
"type": "string",
"title": "Timestamp in format 0123456789.012345",
"pattern": "^\\d{10}\\.\\d{6}$"
}
defs_user_id
{
"type": "string",
"title": "User ID",
"pattern": "^[UW][A-Z0-9]{2,}$"
}
defs_workspace_id
{
"type": "string",
"title": "Team or Enterprise ID",
"pattern": "^[TE][A-Z0-9]{8,}$"
}
objs_bot_profile
{
"type": "object",
"title": "Bot Profile Object",
"required": [
"id",
"deleted",
"name",
"updated",
"app_id",
"icons",
"team_id"
],
"properties": {
"id": {
"$ref": "#/definitions/defs_bot_id"
},
"name": {
"type": "string"
},
"icons": {
"type": "object",
"required": [
"image_36",
"image_48",
"image_72"
],
"properties": {
"image_36": {
"type": "string",
"format": "uri"
},
"image_48": {
"type": "string",
"format": "uri"
},
"image_72": {
"type": "string",
"format": "uri"
}
},
"additionalProperties": false
},
"app_id": {
"$ref": "#/definitions/defs_app_id"
},
"deleted": {
"type": "boolean"
},
"team_id": {
"$ref": "#/definitions/defs_team"
},
"updated": {
"type": "integer"
}
},
"additionalProperties": false
}
objs_channel
{
"type": "object",
"title": "Channel Object",
"required": [
"id",
"name",
"created",
"creator",
"is_channel",
"is_org_shared",
"is_private",
"is_mpim",
"is_shared",
"name_normalized",
"members",
"topic",
"purpose"
],
"properties": {
"id": {
"$ref": "#/definitions/defs_channel_id"
},
"name": {
"type": "string"
},
"topic": {
"type": "object",
"required": [
"value",
"creator",
"last_set"
],
"properties": {
"value": {
"type": "string"
},
"creator": {
"$ref": "#/definitions/defs_topic_purpose_creator"
},
"last_set": {
"type": "integer"
}
},
"additionalProperties": false
},
"latest": {
"items": [
{
"$ref": "#/definitions/objs_message"
},
{
"type": "null"
}
]
},
"created": {
"type": "integer"
},
"creator": {
"$ref": "#/definitions/defs_user_id"
},
"is_mpim": {
"type": "boolean"
},
"members": {
"type": "array",
"items": {
"$ref": "#/definitions/defs_user_id"
},
"minItems": 0,
"uniqueItems": true
},
"purpose": {
"type": "object",
"required": [
"value",
"creator",
"last_set"
],
"properties": {
"value": {
"type": "string"
},
"creator": {
"$ref": "#/definitions/defs_topic_purpose_creator"
},
"last_set": {
"type": "integer"
}
},
"additionalProperties": false
},
"is_moved": {
"type": "integer"
},
"priority": {
"type": "number"
},
"unlinked": {
"type": "integer",
"title": "Field to determine whether a channel has ever been shared/disconnected in the past"
},
"is_frozen": {
"type": "boolean"
},
"is_member": {
"type": "boolean"
},
"is_shared": {
"type": "boolean"
},
"last_read": {
"$ref": "#/definitions/defs_ts"
},
"is_channel": {
"type": "boolean"
},
"is_general": {
"type": "boolean"
},
"is_private": {
"type": "boolean"
},
"is_archived": {
"type": "boolean"
},
"num_members": {
"type": "integer"
},
"is_read_only": {
"type": "boolean"
},
"unread_count": {
"type": "integer"
},
"accepted_user": {
"$ref": "#/definitions/defs_user_id"
},
"is_org_shared": {
"type": "boolean"
},
"is_thread_only": {
"type": "boolean"
},
"pending_shared": {
"type": "array",
"items": {
"$ref": "#/definitions/defs_team"
},
"minItems": 0,
"uniqueItems": true
},
"previous_names": {
"type": "array",
"items": {
"$ref": "#/definitions/defs_channel_name"
},
"minItems": 0,
"uniqueItems": true
},
"name_normalized": {
"type": "string"
},
"is_non_threadable": {
"type": "boolean"
},
"unread_count_display": {
"type": "integer"
},
"is_pending_ext_shared": {
"type": "boolean"
}
},
"additionalProperties": false
}
objs_comment
{
"type": "object",
"title": "File Comment Object",
"required": [
"id",
"created",
"timestamp",
"user",
"is_intro",
"comment"
],
"properties": {
"id": {
"$ref": "#/definitions/defs_comment_id"
},
"user": {
"$ref": "#/definitions/defs_user_id"
},
"comment": {
"type": "string"
},
"created": {
"type": "integer"
},
"is_intro": {
"type": "boolean"
},
"num_stars": {
"type": "integer"
},
"pinned_to": {
"type": "array",
"items": {
"$ref": "#/definitions/defs_channel"
}
},
"reactions": {
"type": "array",
"items": {
"$ref": "#/definitions/objs_reaction"
}
},
"timestamp": {
"type": "integer"
},
"is_starred": {
"type": "boolean"
},
"pinned_info": {
"$ref": "#/definitions/defs_pinned_info"
}
},
"additionalProperties": false
}
objs_comments
{
"type": "array",
"items": {},
"title": "file comments object"
}
objs_conversation
{
"items": [
{
"type": "object",
"title": "Conversation object",
"required": [
"id",
"name",
"created",
"creator",
"is_archived",
"is_channel",
"is_general",
"is_mpim",
"is_group",
"is_org_shared",
"is_im",
"is_shared",
"is_private",
"name_normalized",
"topic",
"purpose"
],
"properties": {
"id": {
"$ref": "#/definitions/defs_channel"
},
"name": {
"type": "string"
},
"user": {
"$ref": "#/definitions/defs_user_id"
},
"is_im": {
"type": "boolean"
},
"topic": {
"type": "object",
"required": [
"value",
"creator",
"last_set"
],
"properties": {
"value": {
"type": "string"
},
"creator": {
"$ref": "#/definitions/defs_topic_purpose_creator"
},
"last_set": {
"type": "integer"
}
},
"additionalProperties": false
},
"latest": {
"items": [
{
"$ref": "#/definitions/objs_message"
},
{
"type": "null"
}
]
},
"shares": {
"type": "array",
"items": {
"type": "object",
"required": [
"team",
"user",
"is_active"
],
"properties": {
"team": {
"$ref": "#/definitions/objs_team"
},
"user": {
"$ref": "#/definitions/defs_user_id"
},
"is_active": {
"type": "boolean"
},
"accepted_user": {
"$ref": "#/definitions/defs_user_id"
}
},
"additionalProperties": false
},
"minItems": 0,
"uniqueItems": true
},
"created": {
"type": "integer"
},
"creator": {
"$ref": "#/definitions/defs_user_id"
},
"is_mpim": {
"enum": [
false
],
"type": "boolean"
},
"is_open": {
"type": "boolean"
},
"members": {
"type": "array",
"items": {
"$ref": "#/definitions/defs_user_id"
},
"minItems": 0,
"uniqueItems": true
},
"purpose": {
"type": "object",
"required": [
"value",
"creator",
"last_set"
],
"properties": {
"value": {
"type": "string"
},
"creator": {
"$ref": "#/definitions/defs_topic_purpose_creator"
},
"last_set": {
"type": "integer"
}
},
"additionalProperties": false
},
"version": {
"type": "integer"
},
"has_pins": {
"type": "boolean"
},
"is_group": {
"type": "boolean"
},
"is_moved": {
"type": "integer"
},
"priority": {
"type": "number"
},
"unlinked": {
"type": "integer",
"title": "Field to determine whether a channel has ever been shared/disconnected in the past"
},
"use_case": {
"type": "string"
},
"is_frozen": {
"type": "boolean"
},
"is_member": {
"type": "boolean"
},
"is_shared": {
"type": "boolean"
},
"last_read": {
"$ref": "#/definitions/defs_ts"
},
"pin_count": {
"type": "integer"
},
"is_channel": {
"type": "boolean"
},
"is_general": {
"type": "boolean"
},
"is_private": {
"type": "boolean"
},
"is_starred": {
"type": "boolean"
},
"is_archived": {
"type": "boolean"
},
"num_members": {
"type": "integer"
},
"is_read_only": {
"type": "boolean"
},
"unread_count": {
"type": "integer"
},
"accepted_user": {
"$ref": "#/definitions/defs_user_id"
},
"enterprise_id": {
"$ref": "#/definitions/defs_enterprise_id"
},
"is_ext_shared": {
"type": "boolean"
},
"is_org_shared": {
"type": "boolean"
},
"display_counts": {
"type": "object",
"required": [
"display_counts",
"guest_counts"
],
"properties": {
"guest_counts": {
"type": "integer"
},
"display_counts": {
"type": "integer"
}
},
"additionalProperties": false
},
"is_org_default": {
"type": "boolean"
},
"is_thread_only": {
"type": "boolean"
},
"pending_shared": {
"type": "array",
"items": {
"$ref": "#/definitions/defs_team"
},
"minItems": 0,
"uniqueItems": true
},
"previous_names": {
"type": "array",
"items": {
"$ref": "#/definitions/defs_channel_name"
},
"minItems": 0,
"uniqueItems": true
},
"timezone_count": {
"type": "integer"
},
"name_normalized": {
"type": "string"
},
"shared_team_ids": {
"type": "array",
"items": {
"$ref": "#/definitions/defs_team"
},
"minItems": 0,
"uniqueItems": true
},
"is_global_shared": {
"type": "boolean"
},
"is_org_mandatory": {
"type": "boolean"
},
"internal_team_ids": {
"type": "array",
"items": {
"$ref": "#/definitions/defs_team"
},
"minItems": 0,
"uniqueItems": true
},
"is_non_threadable": {
"type": "boolean"
},
"connected_team_ids": {
"type": "array",
"items": {
"$ref": "#/definitions/defs_workspace_id"
},
"minItems": 0,
"uniqueItems": true
},
"parent_conversation": {
"items": [
{
"$ref": "#/definitions/defs_channel"
},
{
"type": "null"
}
]
},
"conversation_host_id": {
"$ref": "#/definitions/defs_workspace_id"
},
"unread_count_display": {
"type": "integer"
},
"is_pending_ext_shared": {
"type": "boolean"
},
"pending_connected_team_ids": {
"type": "array",
"items": {
"$ref": "#/definitions/defs_team"
},
"minItems": 0,
"uniqueItems": true
}
},
"additionalProperties": false
},
{
"type": "object",
"title": "Conversation MPIM Object",
"required": [
"id",
"name",
"created",
"creator",
"is_archived",
"is_channel",
"is_general",
"is_mpim",
"is_group",
"is_org_shared",
"is_im",
"is_shared",
"is_private",
"name_normalized",
"topic",
"purpose"
],
"properties": {
"id": {
"$ref": "#/definitions/defs_channel"
},
"name": {
"type": "string"
},
"user": {
"$ref": "#/definitions/defs_user_id"
},
"is_im": {
"type": "boolean"
},
"topic": {
"type": "object",
"required": [
"value",
"creator",
"last_set"
],
"properties": {
"value": {
"type": "string"
},
"creator": {
"$ref": "#/definitions/defs_topic_purpose_creator"
},
"last_set": {
"type": "integer"
}
},
"additionalProperties": false
},
"latest": {
"items": [
{
"$ref": "#/definitions/objs_message"
},
{
"type": "null"
}
]
},
"shares": {
"type": "array",
"items": {
"type": "object",
"required": [
"team",
"user",
"is_active"
],
"properties": {
"team": {
"$ref": "#/definitions/objs_team"
},
"user": {
"$ref": "#/definitions/defs_user_id"
},
"is_active": {
"type": "boolean"
},
"accepted_user": {
"$ref": "#/definitions/defs_user_id"
}
},
"additionalProperties": false
},
"minItems": 0,
"uniqueItems": true
},
"created": {
"type": "integer"
},
"creator": {
"$ref": "#/definitions/defs_user_id"
},
"is_mpim": {
"enum": [
true
],
"type": "boolean"
},
"is_open": {
"type": "boolean"
},
"members": {
"type": "array",
"items": {
"$ref": "#/definitions/defs_user_id"
},
"minItems": 0,
"uniqueItems": true
},
"purpose": {
"type": "object",
"required": [
"value",
"creator",
"last_set"
],
"properties": {
"value": {
"type": "string"
},
"creator": {
"$ref": "#/definitions/defs_topic_purpose_creator"
},
"last_set": {
"type": "integer"
}
},
"additionalProperties": false
},
"version": {
"type": "integer"
},
"is_group": {
"type": "boolean"
},
"is_moved": {
"type": "integer"
},
"priority": {
"type": "number"
},
"unlinked": {
"type": "integer",
"title": "Field to determine whether a channel has ever been shared/disconnected in the past"
},
"is_frozen": {
"type": "boolean"
},
"is_member": {
"type": "boolean"
},
"is_shared": {
"type": "boolean"
},
"last_read": {
"$ref": "#/definitions/defs_ts"
},
"pin_count": {
"type": "integer"
},
"is_channel": {
"type": "boolean"
},
"is_general": {
"type": "boolean"
},
"is_private": {
"type": "boolean"
},
"is_starred": {
"type": "boolean"
},
"is_archived": {
"type": "boolean"
},
"num_members": {
"type": "integer"
},
"is_read_only": {
"type": "boolean"
},
"unread_count": {
"type": "integer"
},
"accepted_user": {
"$ref": "#/definitions/defs_user_id"
},
"is_ext_shared": {
"type": "boolean"
},
"is_org_shared": {
"type": "boolean"
},
"display_counts": {
"type": "object",
"required": [
"display_counts",
"guest_counts"
],
"properties": {
"guest_counts": {
"type": "integer"
},
"display_counts": {
"type": "integer"
}
},
"additionalProperties": false
},
"is_thread_only": {
"type": "boolean"
},
"pending_shared": {
"type": "array",
"items": {
"$ref": "#/definitions/defs_team"
},
"minItems": 0,
"uniqueItems": true
},
"previous_names": {
"type": "array",
"items": {
"$ref": "#/definitions/defs_channel_name"
},
"minItems": 0,
"uniqueItems": true
},
"timezone_count": {
"type": "integer"
},
"name_normalized": {
"type": "string"
},
"shared_team_ids": {
"type": "array",
"items": {
"$ref": "#/definitions/defs_team"
},
"minItems": 0,
"uniqueItems": true
},
"internal_team_ids": {
"type": "array",
"items": {
"$ref": "#/definitions/defs_team"
},
"minItems": 0,
"uniqueItems": true
},
"is_non_threadable": {
"type": "boolean"
},
"connected_team_ids": {
"type": "array",
"items": {
"$ref": "#/definitions/defs_team"
},
"minItems": 0,
"uniqueItems": true
},
"parent_conversation": {
"items": [
{
"$ref": "#/definitions/defs_channel"
},
{
"type": "null"
}
]
},
"conversation_host_id": {
"$ref": "#/definitions/defs_workspace_id"
},
"unread_count_display": {
"type": "integer"
},
"is_pending_ext_shared": {
"type": "boolean"
},
"pending_connected_team_ids": {
"type": "array",
"items": {
"$ref": "#/definitions/defs_team"
},
"minItems": 0,
"uniqueItems": true
}
},
"additionalProperties": false
},
{
"type": "object",
"title": "Conversation IM Channel Object from conversations.* methods",
"required": [
"id",
"created",
"is_im",
"is_org_shared",
"user",
"priority"
],
"properties": {
"id": {
"$ref": "#/definitions/defs_dm_id"
},
"user": {
"$ref": "#/definitions/defs_user_id"
},
"is_im": {
"type": "boolean"
},
"latest": {
"items": [
{
"$ref": "#/definitions/objs_message"
},
{
"type": "null"
}
]
},
"shares": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"name",
"team",
"date_create",
"is_active"
],
"properties": {
"id": {
"$ref": "#/definitions/defs_team"
},
"name": {
"type": "string"
},
"team": {
"$ref": "#/definitions/objs_team"
},
"is_active": {
"type": "boolean"
},
"date_create": {
"type": "integer"
}
},
"additionalProperties": false
},
"minItems": 0,
"uniqueItems": true
},
"created": {
"type": "integer"
},
"is_open": {
"type": "boolean"
},
"version": {
"type": "integer"
},
"has_pins": {
"type": "boolean"
},
"priority": {
"type": "number"
},
"is_frozen": {
"type": "boolean"
},
"is_shared": {
"type": "boolean"
},
"last_read": {
"$ref": "#/definitions/defs_ts"
},
"pin_count": {
"type": "integer"
},
"is_starred": {
"type": "boolean"
},
"is_archived": {
"type": "boolean"
},
"unread_count": {
"type": "integer"
},
"is_ext_shared": {
"type": "boolean"
},
"is_org_shared": {
"type": "boolean"
},
"is_user_deleted": {
"type": "boolean"
},
"parent_conversation": {
"items": [
{
"$ref": "#/definitions/defs_channel"
},
{
"type": "null"
}
]
},
"unread_count_display": {
"type": "integer"
}
},
"additionalProperties": false
}
]
}
objs_enterprise_user
{
"type": "object",
"required": [
"id",
"enterprise_id",
"enterprise_name",
"is_admin",
"is_owner",
"teams"
],
"properties": {
"id": {
"$ref": "#/definitions/defs_enterprise_user_id"
},
"teams": {
"type": "array",
"items": {
"$ref": "#/definitions/defs_team"
},
"uniqueItems": true
},
"is_admin": {
"type": "boolean"
},
"is_owner": {
"type": "boolean"
},
"enterprise_id": {
"$ref": "#/definitions/defs_enterprise_id"
},
"enterprise_name": {
"$ref": "#/definitions/defs_enterprise_name"
}
},
"additionalProperties": false
}
objs_external_org_migrations
{
"type": "object",
"title": "External Org Migrations",
"required": [
"date_updated",
"current"
],
"properties": {
"current": {
"type": "array",
"items": {
"type": "object",
"required": [
"team_id",
"date_started"
],
"properties": {
"team_id": {
"type": "string"
},
"date_started": {
"type": "integer"
}
}
}
},
"date_updated": {
"type": "integer"
}
}
}
objs_file
{
"type": "object",
"title": "file object",
"properties": {
"id": {
"$ref": "#/definitions/defs_file_id"
},
"ims": {
"type": "array",
"items": {
"$ref": "#/definitions/defs_dm_id"
},
"uniqueItems": true
},
"mode": {
"type": "string"
},
"name": {
"type": "string"
},
"size": {
"type": "integer"
},
"user": {
"type": "string"
},
"state": {
"type": "string"
},
"title": {
"type": "string"
},
"editor": {
"$ref": "#/definitions/defs_user_id"
},
"groups": {
"type": "array",
"items": {
"$ref": "#/definitions/defs_group_id"
},
"uniqueItems": true
},
"shares": {
"type": "object",
"properties": {
"public": {
"additionalProperties": false
},
"private": {
"additionalProperties": false
}
},
"additionalProperties": false
},
"created": {
"type": "integer"
},
"preview": {
"type": "string"
},
"updated": {
"type": "integer"
},
"channels": {
"type": "array",
"items": {
"$ref": "#/definitions/defs_channel_id"
},
"uniqueItems": true
},
"editable": {
"type": "boolean"
},
"filetype": {
"type": "string"
},
"mimetype": {
"type": "string"
},
"thumb_64": {
"type": "string",
"format": "uri"
},
"thumb_80": {
"type": "string",
"format": "uri"
},
"username": {
"type": "string"
},
"is_public": {
"type": "boolean"
},
"num_stars": {
"type": "integer"
},
"permalink": {
"type": "string",
"format": "uri"
},
"pinned_to": {
"type": "array",
"items": {
"$ref": "#/definitions/defs_channel"
}
},
"reactions": {
"type": "array",
"items": {
"$ref": "#/definitions/objs_reaction"
}
},
"thumb_160": {
"type": "string",
"format": "uri"
},
"thumb_360": {
"type": "string",
"format": "uri"
},
"thumb_480": {
"type": "string",
"format": "uri"
},
"thumb_720": {
"type": "string",
"format": "uri"
},
"thumb_800": {
"type": "string",
"format": "uri"
},
"thumb_960": {
"type": "string",
"format": "uri"
},
"timestamp": {
"type": "integer"
},
"user_team": {
"$ref": "#/definitions/defs_team"
},
"is_starred": {
"type": "boolean"
},
"original_h": {
"type": "integer"
},
"original_w": {
"type": "integer"
},
"thumb_1024": {
"type": "string",
"format": "uri"
},
"thumb_tiny": {
"type": "string"
},
"date_delete": {
"type": "integer"
},
"external_id": {
"type": "string"
},
"is_external": {
"type": "boolean"
},
"last_editor": {
"$ref": "#/definitions/defs_user_id"
},
"pinned_info": {
"$ref": "#/definitions/defs_pinned_info"
},
"pretty_type": {
"type": "string"
},
"source_team": {
"$ref": "#/definitions/defs_team"
},
"thumb_360_h": {
"type": "integer"
},
"thumb_360_w": {
"type": "integer"
},
"thumb_480_h": {
"type": "integer"
},
"thumb_480_w": {
"type": "integer"
},
"thumb_720_h": {
"type": "integer"
},
"thumb_720_w": {
"type": "integer"
},
"thumb_800_h": {
"type": "integer"
},
"thumb_800_w": {
"type": "integer"
},
"thumb_960_h": {
"type": "integer"
},
"thumb_960_w": {
"type": "integer"
},
"url_private": {
"type": "string",
"format": "uri"
},
"external_url": {
"type": "string",
"format": "uri"
},
"thumb_1024_h": {
"type": "integer"
},
"thumb_1024_w": {
"type": "integer"
},
"external_type": {
"type": "string"
},
"is_tombstoned": {
"type": "boolean"
},
"comments_count": {
"type": "integer"
},
"display_as_bot": {
"type": "boolean"
},
"has_rich_preview": {
"type": "boolean"
},
"permalink_public": {
"type": "string",
"format": "uri"
},
"public_url_shared": {
"type": "boolean"
},
"non_owner_editable": {
"type": "boolean"
},
"image_exif_rotation": {
"type": "integer"
},
"url_private_download": {
"type": "string",
"format": "uri"
}
},
"additionalProperties": false
}
objs_icon
{
"type": "object",
"properties": {
"image_34": {
"type": "string"
},
"image_44": {
"type": "string"
},
"image_68": {
"type": "string"
},
"image_88": {
"type": "string"
},
"image_102": {
"type": "string"
},
"image_132": {
"type": "string"
},
"image_230": {
"type": "string"
},
"image_default": {
"type": "boolean"
}
}
}
objs_message
{
"type": "object",
"title": "Message object",
"required": [
"text",
"type",
"ts"
],
"properties": {
"ts": {
"$ref": "#/definitions/defs_ts"
},
"file": {
"$ref": "#/definitions/objs_file"
},
"name": {
"type": "string"
},
"team": {
"$ref": "#/definitions/defs_workspace_id"
},
"text": {
"type": "string"
},
"type": {
"type": "string"
},
"user": {
"$ref": "#/definitions/defs_user_id"
},
"files": {
"type": "array",
"items": {
"$ref": "#/definitions/objs_file"
},
"minItems": 1,
"uniqueItems": true
},
"icons": {
"type": "object",
"properties": {
"emoji": {
"type": "string"
},
"image_64": {
"type": "string",
"format": "uri"
}
},
"additionalProperties": false
},
"topic": {
"type": "string"
},
"blocks": {
"$ref": "#/definitions/blocks"
},
"bot_id": {
"items": [
{
"$ref": "#/definitions/defs_bot_id"
},
{
"type": "null",
"title": "Nil bot_id set when display_as_bot is false"
}
]
},
"upload": {
"type": "boolean"
},
"comment": {
"$ref": "#/definitions/objs_comment"
},
"inviter": {
"$ref": "#/definitions/defs_user_id"
},
"purpose": {
"type": "string"
},
"subtype": {
"type": "string"
},
"is_intro": {
"type": "boolean"
},
"old_name": {
"type": "string"
},
"username": {
"type": "string"
},
"last_read": {
"$ref": "#/definitions/defs_ts"
},
"permalink": {
"type": "string",
"format": "uri"
},
"pinned_to": {
"type": "array",
"items": {
"$ref": "#/definitions/defs_channel"
}
},
"reactions": {
"type": "array",
"items": {
"$ref": "#/definitions/objs_reaction"
}
},
"thread_ts": {
"$ref": "#/definitions/defs_ts"
},
"user_team": {
"$ref": "#/definitions/defs_workspace_id"
},
"is_starred": {
"type": "boolean"
},
"subscribed": {
"type": "boolean"
},
"attachments": {
"type": "array",
"items": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer"
},
"fallback": {
"type": "string"
},
"image_url": {
"type": "string"
},
"image_bytes": {
"type": "integer"
},
"image_width": {
"type": "integer"
},
"image_height": {
"type": "integer"
}
},
"additionalProperties": false
},
"minItems": 1,
"uniqueItems": true
},
"bot_profile": {
"$ref": "#/definitions/objs_bot_profile"
},
"reply_count": {
"type": "integer"
},
"reply_users": {
"type": "array",
"items": {
"$ref": "#/definitions/defs_user_id"
},
"minItems": 1,
"uniqueItems": true
},
"source_team": {
"$ref": "#/definitions/defs_workspace_id"
},
"latest_reply": {
"$ref": "#/definitions/defs_ts"
},
"unread_count": {
"type": "integer"
},
"user_profile": {
"$ref": "#/definitions/objs_user_profile_short"
},
"client_msg_id": {
"type": "string"
},
"display_as_bot": {
"type": "boolean"
},
"parent_user_id": {
"$ref": "#/definitions/defs_user_id"
},
"reply_users_count": {
"type": "integer"
},
"is_delayed_message": {
"type": "boolean"
}
},
"additionalProperties": false
}
objs_paging
{
"type": "object",
"title": "paging object",
"required": [
"page",
"total"
],
"properties": {
"page": {
"type": "integer"
},
"count": {
"type": "integer"
},
"pages": {
"type": "integer"
},
"spill": {
"type": "integer"
},
"total": {
"type": "integer"
},
"per_page": {
"type": "integer"
}
},
"additionalProperties": false
}
objs_primary_owner
{
"type": "object",
"required": [
"id",
"email"
],
"properties": {
"id": {
"type": "string"
},
"email": {
"type": "string"
}
}
}
objs_reaction
{
"type": "object",
"title": "Reaction object",
"required": [
"name",
"users",
"count"
],
"properties": {
"name": {
"type": "string"
},
"count": {
"type": "integer"
},
"users": {
"type": "array",
"items": {
"$ref": "#/definitions/defs_user_id"
}
}
},
"additionalProperties": true
}
objs_reminder
{
"type": "object",
"required": [
"id",
"creator",
"user",
"text",
"recurring"
],
"properties": {
"id": {
"$ref": "#/definitions/defs_reminder_id"
},
"text": {
"type": "string"
},
"time": {
"type": "integer"
},
"user": {
"$ref": "#/definitions/defs_user_id"
},
"creator": {
"$ref": "#/definitions/defs_user_id"
},
"recurring": {
"type": "boolean"
},
"complete_ts": {
"type": "integer"
}
},
"additionalProperties": false
}
objs_resources
{
"type": "object",
"title": "resources in info from apps.permissions.info",
"required": [
"ids"
],
"properties": {
"ids": {
"type": "array",
"items": {
"items": [
{
"$ref": "#/definitions/defs_channel"
},
{
"$ref": "#/definitions/defs_team"
}
]
}
},
"wildcard": {
"type": "boolean"
},
"excluded_ids": {
"type": "array",
"items": {
"items": [
{
"$ref": "#/definitions/defs_channel"
},
{
"$ref": "#/definitions/defs_team"
}
]
}
}
},
"additionalProperties": false
}
objs_response_metadata
{
"items": [
{
"type": "object",
"title": "new paging style",
"required": [
"next_cursor"
],
"properties": {
"next_cursor": {
"type": "string"
}
},
"additionalProperties": false
},
{
"type": "object",
"title": "deprecation_warning",
"required": [
"messages",
"warnings"
],
"properties": {
"messages": {
"type": "array",
"items": {
"type": "string"
}
},
"warnings": {
"type": "array",
"items": {
"enum": [
"method_deprecated"
],
"type": "string"
}
}
},
"additionalProperties": false
},
{
"type": "object",
"title": "deprecation_warning and paging style together",
"required": [
"messages",
"warnings",
"next_cursor"
],
"properties": {
"messages": {
"type": "array",
"items": {
"type": "string"
}
},
"warnings": {
"type": "array",
"items": {
"enum": [
"method_deprecated"
],
"type": "string"
}
},
"next_cursor": {
"type": "string"
}
},
"additionalProperties": false
}
]
}
objs_scopes
{
"type": "array",
"items": {
"type": "string",
"title": "Named OAuth scopes",
"x-examples": [
"chat:write",
"im:history",
"im:read"
]
}
}
objs_subteam
{
"type": "object",
"title": "Subteam/Usergroup Object",
"required": [
"id",
"team_id",
"is_usergroup",
"is_subteam",
"name",
"description",
"handle",
"is_external",
"date_create",
"date_update",
"date_delete",
"auto_type",
"auto_provision",
"enterprise_subteam_id",
"created_by",
"updated_by",
"deleted_by",
"prefs"
],
"properties": {
"id": {
"$ref": "#/definitions/defs_subteam_id"
},
"name": {
"type": "string"
},
"prefs": {
"type": "object",
"required": [
"channels",
"groups"
],
"properties": {
"groups": {
"type": "array",
"items": {
"$ref": "#/definitions/defs_group_id"
}
},
"channels": {
"type": "array",
"items": {
"$ref": "#/definitions/defs_channel_id"
}
}
},
"additionalProperties": false
},
"users": {
"type": "array",
"items": {
"$ref": "#/definitions/defs_user_id"
}
},
"handle": {
"type": "string"
},
"team_id": {
"$ref": "#/definitions/defs_team"
},
"auto_type": {
"items": [
{
"type": "null"
},
{
"enum": [
"owner",
"admin"
],
"type": "string"
}
]
},
"created_by": {
"$ref": "#/definitions/defs_user_id"
},
"deleted_by": {
"items": [
{
"type": "null"
},
{
"$ref": "#/definitions/defs_user_id"
}
]
},
"is_subteam": {
"type": "boolean"
},
"updated_by": {
"$ref": "#/definitions/defs_user_id"
},
"user_count": {
"type": "integer"
},
"date_create": {
"type": "integer"
},
"date_delete": {
"type": "integer"
},
"date_update": {
"type": "integer"
},
"description": {
"type": "string"
},
"is_external": {
"type": "boolean"
},
"is_usergroup": {
"type": "boolean"
},
"channel_count": {
"type": "integer"
},
"auto_provision": {
"type": "boolean"
},
"enterprise_subteam_id": {
"type": "string"
}
},
"additionalProperties": false
}
objs_team
{
"type": "object",
"title": "Team Object",
"required": [
"id",
"name",
"domain",
"email_domain",
"icon"
],
"properties": {
"id": {
"$ref": "#/definitions/defs_workspace_id"
},
"icon": {
"$ref": "#/definitions/objs_icon"
},
"name": {
"type": "string"
},
"plan": {
"enum": [
"",
"std",
"plus",
"compliance",
"enterprise"
],
"type": "string"
},
"domain": {
"type": "string"
},
"locale": {
"type": "string"
},
"created": {
"type": "integer"
},
"deleted": {
"type": "boolean"
},
"archived": {
"type": "boolean"
},
"limit_ts": {
"type": "integer"
},
"date_create": {
"type": "integer"
},
"description": {
"type": [
"null",
"string"
]
},
"is_assigned": {
"type": "boolean"
},
"discoverable": {
"items": [
{
"type": "null"
},
{
"type": "string"
}
]
},
"email_domain": {
"type": "string"
},
"pay_prod_cur": {
"type": "string"
},
"sso_provider": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"type": {
"type": "string"
},
"label": {
"type": "string"
}
}
},
"enterprise_id": {
"$ref": "#/definitions/defs_enterprise_id"
},
"is_enterprise": {
"type": "integer"
},
"primary_owner": {
"$ref": "#/definitions/objs_primary_owner"
},
"messages_count": {
"type": "integer"
},
"avatar_base_url": {
"type": "string",
"format": "uri"
},
"enterprise_name": {
"$ref": "#/definitions/defs_enterprise_name"
},
"over_storage_limit": {
"type": "boolean"
},
"msg_edit_window_mins": {
"type": "integer"
},
"has_compliance_export": {
"type": "boolean"
},
"is_over_storage_limit": {
"type": "boolean"
},
"external_org_migrations": {
"$ref": "#/definitions/objs_external_org_migrations"
},
"over_integrations_limit": {
"type": "boolean"
}
},
"additionalProperties": false
}
objs_team_profile_field
{
"type": "object",
"required": [
"id",
"ordering",
"label",
"hint",
"type"
],
"properties": {
"id": {
"type": "string",
"pattern": "^X[a-zA-Z0-9]{9,}$"
},
"hint": {
"type": "string"
},
"type": {
"enum": [
"text",
"date",
"link",
"mailto",
"options_list",
"user"
],
"type": "string"
},
"label": {
"type": "string"
},
"options": {
"items": [
{
"type": "null"
},
{
"$ref": "#/definitions/objs_team_profile_field_option"
}
]
},
"ordering": {
"type": "number"
},
"is_hidden": {
"type": "boolean"
},
"field_name": {
"type": [
"null",
"string"
]
},
"possible_values": {
"type": [
"null",
"array"
],
"items": {
"type": "string"
}
}
},
"additionalProperties": false
}
objs_team_profile_field_option
{
"type": "object",
"properties": {
"is_scim": {
"type": [
"null",
"boolean"
]
},
"is_custom": {
"type": [
"null",
"boolean"
]
},
"is_protected": {
"type": [
"null",
"boolean"
]
},
"is_multiple_entry": {
"type": [
"null",
"boolean"
]
}
},
"additionalProperties": false
}
objs_user
{
"items": [
{
"type": "object",
"required": [
"id",
"name",
"profile",
"is_bot",
"updated",
"is_app_user"
],
"properties": {
"id": {
"$ref": "#/definitions/defs_user_id"
},
"tz": {
"items": [
{
"type": "null"
},
{
"type": "string"
}
]
},
"name": {
"type": "string"
},
"team": {
"$ref": "#/definitions/defs_workspace_id"
},
"color": {
"type": "string",
"pattern": "^[a-fA-F0-9]{6}$"
},
"is_bot": {
"type": "boolean"
},
"locale": {
"type": "string"
},
"deleted": {
"type": "boolean"
},
"has_2fa": {
"type": "boolean"
},
"profile": {
"$ref": "#/definitions/objs_user_profile"
},
"team_id": {
"$ref": "#/definitions/defs_workspace_id"
},
"updated": {
"type": "number"
},
"is_admin": {
"type": "boolean"
},
"is_owner": {
"type": "boolean"
},
"presence": {
"type": "string"
},
"tz_label": {
"type": "string"
},
"real_name": {
"type": "string"
},
"tz_offset": {
"type": "number"
},
"is_app_user": {
"type": "boolean"
},
"is_external": {
"type": "boolean"
},
"is_stranger": {
"type": "boolean"
},
"is_forgotten": {
"type": "boolean"
},
"team_profile": {
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "array",
"items": {
"$ref": "#/definitions/objs_team_profile_field"
},
"minItems": 1,
"uniqueItems": true
}
},
"additionalProperties": false
},
"is_restricted": {
"type": "boolean"
},
"enterprise_user": {
"$ref": "#/definitions/objs_enterprise_user"
},
"is_invited_user": {
"type": "boolean"
},
"two_factor_type": {
"type": "string"
},
"is_primary_owner": {
"type": "boolean"
},
"is_ultra_restricted": {
"type": "boolean"
}
},
"description": "user object for non enterprise type",
"additionalProperties": false
},
{
"type": "object",
"required": [
"id",
"name",
"profile",
"is_bot",
"updated",
"is_app_user"
],
"properties": {
"id": {
"$ref": "#/definitions/defs_user_id"
},
"tz": {
"items": [
{
"type": "null"
},
{
"type": "string"
}
]
},
"name": {
"type": "string"
},
"color": {
"type": "string",
"pattern": "^([a-fA-F0-9]{6})?$",
"description": "refercing to bug: https://jira.tinyspeck.com/browse/EVALUE-1559"
},
"teams": {
"type": "array",
"items": {
"$ref": "#/definitions/defs_workspace_id"
},
"minItems": 1,
"uniqueItems": true
},
"is_bot": {
"type": "boolean"
},
"locale": {
"type": "string"
},
"deleted": {
"type": "boolean"
},
"has_2fa": {
"type": "boolean"
},
"profile": {
"$ref": "#/definitions/objs_user_profile"
},
"team_id": {
"$ref": "#/definitions/defs_workspace_id"
},
"updated": {
"type": "number"
},
"is_admin": {
"type": "boolean"
},
"is_owner": {
"type": "boolean"
},
"presence": {
"type": "string"
},
"tz_label": {
"type": "string"
},
"real_name": {
"type": "string"
},
"tz_offset": {
"type": "number"
},
"is_app_user": {
"type": "boolean"
},
"is_external": {
"type": "boolean"
},
"is_stranger": {
"type": "boolean"
},
"is_forgotten": {
"type": "boolean"
},
"team_profile": {
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "array",
"items": {
"$ref": "#/definitions/objs_team_profile_field"
},
"minItems": 1,
"uniqueItems": true
}
},
"additionalProperties": false
},
"is_restricted": {
"type": "boolean"
},
"enterprise_user": {
"$ref": "#/definitions/objs_enterprise_user"
},
"two_factor_type": {
"type": "string"
},
"is_primary_owner": {
"type": "boolean"
},
"is_ultra_restricted": {
"type": "boolean"
}
},
"description": "enterprise user",
"additionalProperties": false
}
]
}
objs_user_profile
{
"type": "object",
"title": "User profile object",
"required": [
"real_name",
"display_name",
"avatar_hash",
"real_name_normalized",
"display_name_normalized",
"title",
"phone",
"skype",
"status_text",
"status_emoji",
"fields"
],
"properties": {
"name": {
"type": [
"null",
"string"
]
},
"team": {
"$ref": "#/definitions/defs_workspace_id"
},
"email": {
"type": [
"null",
"string"
],
"format": "email"
},
"phone": {
"type": "string"
},
"skype": {
"type": "string"
},
"title": {
"type": "string"
},
"bot_id": {
"$ref": "#/definitions/defs_bot_id"
},
"fields": {
"type": [
"object",
"null",
"array"
],
"items": {
"type": "object"
}
},
"updated": {
"type": "integer"
},
"user_id": {
"type": "string"
},
"image_24": {
"type": [
"null",
"string"
],
"format": "uri"
},
"image_32": {
"type": [
"null",
"string"
],
"format": "uri"
},
"image_48": {
"type": [
"null",
"string"
],
"format": "uri"
},
"image_72": {
"type": [
"null",
"string"
],
"format": "uri"
},
"pronouns": {
"type": "string"
},
"username": {
"type": [
"null",
"string"
]
},
"image_192": {
"type": [
"null",
"string"
],
"format": "uri"
},
"image_512": {
"type": [
"null",
"string"
],
"format": "uri"
},
"last_name": {
"type": [
"null",
"string"
]
},
"real_name": {
"type": "string"
},
"api_app_id": {
"$ref": "#/definitions/defs_optional_app_id"
},
"first_name": {
"type": [
"null",
"string"
]
},
"image_1024": {
"type": [
"null",
"string"
],
"format": "uri"
},
"avatar_hash": {
"type": "string"
},
"is_app_user": {
"type": "boolean"
},
"status_text": {
"type": "string"
},
"display_name": {
"type": "string"
},
"status_emoji": {
"type": "string"
},
"always_active": {
"type": "boolean"
},
"is_restricted": {
"type": [
"null",
"boolean"
]
},
"image_original": {
"type": [
"null",
"string"
],
"format": "uri"
},
"is_custom_image": {
"type": "boolean"
},
"guest_invited_by": {
"type": [
"null",
"string"
]
},
"memberships_count": {
"type": "integer"
},
"status_expiration": {
"type": "integer"
},
"guest_expiration_ts": {
"type": [
"null",
"integer"
]
},
"is_ultra_restricted": {
"type": [
"null",
"boolean"
]
},
"status_default_text": {
"type": "string"
},
"real_name_normalized": {
"type": "string"
},
"status_default_emoji": {
"type": "string"
},
"status_text_canonical": {
"type": [
"null",
"string"
]
},
"last_avatar_image_hash": {
"type": "string"
},
"display_name_normalized": {
"type": "string"
},
"status_default_text_canonical": {
"type": [
"null",
"string"
]
}
},
"additionalProperties": false
}
objs_user_profile_short
{
"type": "object",
"required": [
"avatar_hash",
"image_72",
"first_name",
"real_name",
"display_name",
"team",
"name",
"is_restricted",
"is_ultra_restricted"
],
"properties": {
"name": {
"type": "string"
},
"team": {
"$ref": "#/definitions/defs_workspace_id"
},
"image_72": {
"type": "string",
"format": "uri"
},
"real_name": {
"type": "string"
},
"first_name": {
"type": [
"string",
"null"
]
},
"avatar_hash": {
"type": "string"
},
"display_name": {
"type": "string"
},
"is_restricted": {
"type": "boolean"
},
"is_ultra_restricted": {
"type": "boolean"
},
"real_name_normalized": {
"type": "string"
},
"display_name_normalized": {
"type": "string"
}
},
"additionalProperties": false
}