Slack

Messaging platform for teams

api.slack.com ↗
Version
1.7.0
OpenAPI
3.0.0
Endpoints
174
Schemas
48
Updated
3 days ago
Messaging messaging collaboration communication
Use this API in your AI agent

Query structured spec data via REST or MCP. Get exactly what your agent needs.

Get API Key

Server URLs

https://slack.com/api

Authentication

oauth2

Endpoints

Admin.apps 2 endpoints

POST /admin.apps.approve

Approve an app for installation on a workspace.

operationId: admin_apps_approve

Parameters

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

Responses

default Typical error response
200 Typical success response
POST /admin.apps.approve
POST /admin.apps.restrict

Restrict an app for installation on a workspace.

operationId: admin_apps_restrict

Parameters

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

Responses

default Typical error response
200 Typical success response
POST /admin.apps.restrict

Admin.apps.approved 1 endpoints

GET /admin.apps.approved.list

List approved apps for an org or workspace.

operationId: admin_apps_approved_list

Parameters

Name In Required Type Description
token query required string Authentication token. Requires scope: `admin.apps:read`
limit query optional integer The maximum number of items to return. Must be between 1 - 1000 both inclusive.
cursor query optional string Set `cursor` to `next_cursor` returned by the previous call to list items in the next page
team_id query optional string
enterprise_id query optional string

Responses

default Typical error response
200 Typical success response
GET /admin.apps.approved.list

Admin.apps.requests 1 endpoints

GET /admin.apps.requests.list

List app requests for a team/workspace.

operationId: admin_apps_requests_list

Parameters

Name In Required Type Description
token query required string Authentication token. Requires scope: `admin.apps:read`
limit query optional integer The maximum number of items to return. Must be between 1 - 1000 both inclusive.
cursor query optional string Set `cursor` to `next_cursor` returned by the previous call to list items in the next page
team_id query optional string

Responses

default Typical error response
200 Typical success response
GET /admin.apps.requests.list

Admin.apps.restricted 1 endpoints

GET /admin.apps.restricted.list

List restricted apps for an org or workspace.

operationId: admin_apps_restricted_list

Parameters

Name In Required Type Description
token query required string Authentication token. Requires scope: `admin.apps:read`
limit query optional integer The maximum number of items to return. Must be between 1 - 1000 both inclusive.
cursor query optional string Set `cursor` to `next_cursor` returned by the previous call to list items in the next page
team_id query optional string
enterprise_id query optional string

Responses

default Typical error response
200 Typical success response
GET /admin.apps.restricted.list

Admin.conversations 13 endpoints

POST /admin.conversations.archive

Archive a public or private channel.

operationId: admin_conversations_archive

Parameters

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.

Responses

default Typical error response
200 Typical success response
POST /admin.conversations.archive
POST /admin.conversations.convertToPrivate

Convert a public channel to a private channel.

operationId: admin_conversations_convertToPrivate

Parameters

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.

Responses

default Typical error response
200 Typical success response
POST /admin.conversations.convertToPrivate
POST /admin.conversations.create

Create a public or private channel-based conversation.

operationId: admin_conversations_create

Parameters

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`.

Responses

default Typical error response
200 Typical success response
POST /admin.conversations.create
POST /admin.conversations.delete

Delete a public or private channel.

operationId: admin_conversations_delete

Parameters

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.

Responses

default Typical error response
200 Typical success response
POST /admin.conversations.delete
POST /admin.conversations.disconnectShared

Disconnect a connected channel from one or more workspaces.

operationId: admin_conversations_disconnectShared

Parameters

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.

Responses

default Typical error response
200 Typical success response
POST /admin.conversations.disconnectShared
GET /admin.conversations.getConversationPrefs

Get conversation preferences for a public or private channel.

operationId: admin_conversations_getConversationPrefs

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `admin.conversations:read`
channel_id query required string The channel to get preferences for.

Responses

default Typical error response
200 Typical success response
GET /admin.conversations.getConversationPrefs
GET /admin.conversations.getTeams

Get all the workspaces a given public or private channel is connected to within this Enterprise org.

operationId: admin_conversations_getTeams

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `admin.conversations:read`
channel_id query required string The channel to determine connected workspaces within the organization for.
cursor query optional string Set `cursor` to `next_cursor` returned by the previous call to list items in the next page
limit query optional integer The maximum number of items to return. Must be between 1 - 1000 both inclusive.

Responses

default Typical error response
200 Typical success response
GET /admin.conversations.getTeams
POST /admin.conversations.invite

Invite a user to a public or private channel.

operationId: admin_conversations_invite

Parameters

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.

Responses

default Typical error response
200 Typical success response
POST /admin.conversations.invite
POST /admin.conversations.rename

Rename a public or private channel.

operationId: admin_conversations_rename

Parameters

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

Responses

default Typical error response
200 Typical success response
POST /admin.conversations.rename
GET /admin.conversations.search

Search for public or private channels in an Enterprise organization.

operationId: admin_conversations_search

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `admin.conversations:read`
team_ids query optional string Comma separated string of team IDs, signifying the workspaces to search through.
query query optional string Name of the the channel to query by.
limit query optional integer Maximum number of items to be returned. Must be between 1 - 20 both inclusive. Default is 10.
cursor query optional string Set `cursor` to `next_cursor` returned by the previous call to list items in the next page.
search_channel_types query optional string The type of channel to include or exclude in the search. For example `private` will search private channels, while `private_exclude` will exclude them. For a full list of types, check the [Types section](#types).
sort query optional string Possible values are `relevant` (search ranking based on what we think is closest), `name` (alphabetical), `member_count` (number of users in the channel), and `created` (date channel was created). You can optionally pair this with the `sort_dir` arg to change how it is sorted
sort_dir query optional string Sort direction. Possible values are `asc` for ascending order like (1, 2, 3) or (a, b, c), and `desc` for descending order like (3, 2, 1) or (c, b, a)

Responses

default Typical error response
200 Typical success response
GET /admin.conversations.search
POST /admin.conversations.setConversationPrefs

Set the posting permissions for a public or private channel.

operationId: admin_conversations_setConversationPrefs

Parameters

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.

Responses

default Typical error response
200 Typical success response
POST /admin.conversations.setConversationPrefs
POST /admin.conversations.setTeams

Set the workspaces in an Enterprise grid org that connect to a public or private channel.

operationId: admin_conversations_setTeams

Parameters

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

Responses

default Typical error response
200 Typical success response
POST /admin.conversations.setTeams
POST /admin.conversations.unarchive

Unarchive a public or private channel.

operationId: admin_conversations_unarchive

Parameters

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.

Responses

default Typical error response
200 Typical success response
POST /admin.conversations.unarchive

Admin.conversations.ekm 1 endpoints

GET /admin.conversations.ekm.listOriginalConnectedChannelInfo

List all disconnected channels—i.e., channels that were once connected to other workspaces and then disconnected—and the corresponding original channel IDs for key revocation with EKM.

operationId: admin_conversations_ekm_listOriginalConnectedChannelInfo

Parameters

Name In Required Type Description
token query required string Authentication token. Requires scope: `admin.conversations:read`
channel_ids query optional string A comma-separated list of channels to filter to.
team_ids query optional string A comma-separated list of the workspaces to which the channels you would like returned belong.
limit query optional integer The maximum number of items to return. Must be between 1 - 1000 both inclusive.
cursor query optional string Set `cursor` to `next_cursor` returned by the previous call to list items in the next page.

Responses

default Typical error response
200 Typical success response
GET /admin.conversations.ekm.listOriginalConnectedChannelInfo

Admin.conversations.restrictaccess 3 endpoints

POST /admin.conversations.restrictAccess.addGroup

Add an allowlist of IDP groups for accessing a channel

operationId: admin_conversations_restrictAccess_addGroup

Parameters

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.

Responses

default Typical error response
200 Typical success response
POST /admin.conversations.restrictAccess.addGroup
GET /admin.conversations.restrictAccess.listGroups

List all IDP Groups linked to a channel

operationId: admin_conversations_restrictAccess_listGroups

Parameters

Name In Required Type Description
token query required string Authentication token. Requires scope: `admin.conversations:read`
channel_id query required string
team_id query 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.

Responses

default Typical error response
200 Typical success response
GET /admin.conversations.restrictAccess.listGroups
POST /admin.conversations.restrictAccess.removeGroup

Remove a linked IDP group linked from a private channel

operationId: admin_conversations_restrictAccess_removeGroup

Parameters

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.

Responses

default Typical error response
200 Typical success response
POST /admin.conversations.restrictAccess.removeGroup

Admin.emoji 5 endpoints

POST /admin.emoji.add

Add an emoji.

operationId: admin_emoji_add

Parameters

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.

Responses

default Typical error response
200 Typical success response
POST /admin.emoji.add
POST /admin.emoji.addAlias

Add an emoji alias.

operationId: admin_emoji_addAlias

Parameters

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.

Responses

default Typical error response
200 Typical success response
POST /admin.emoji.addAlias
GET /admin.emoji.list

List emoji for an Enterprise Grid organization.

operationId: admin_emoji_list

Parameters

Name In Required Type Description
token query required string Authentication token. Requires scope: `admin.teams:read`
cursor query optional string Set `cursor` to `next_cursor` returned by the previous call to list items in the next page
limit query optional integer The maximum number of items to return. Must be between 1 - 1000 both inclusive.

Responses

default Typical error response
200 Typical success response
GET /admin.emoji.list
POST /admin.emoji.remove

Remove an emoji across an Enterprise Grid organization

operationId: admin_emoji_remove

Parameters

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.

Responses

default Typical error response
200 Typical success response
POST /admin.emoji.remove
POST /admin.emoji.rename

Rename an emoji.

operationId: admin_emoji_rename

Parameters

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.

Responses

default Typical error response
200 Typical success response
POST /admin.emoji.rename

Admin.inviterequests 3 endpoints

POST /admin.inviteRequests.approve

Approve a workspace invite request.

operationId: admin_inviteRequests_approve

Parameters

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.

Responses

default Typical error response
200 Typical success response
POST /admin.inviteRequests.approve
POST /admin.inviteRequests.deny

Deny a workspace invite request.

operationId: admin_inviteRequests_deny

Parameters

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.

Responses

default Typical error response
200 Typical success response
POST /admin.inviteRequests.deny
GET /admin.inviteRequests.list

List all pending workspace invite requests.

operationId: admin_inviteRequests_list

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `admin.invites:read`
team_id query optional string ID for the workspace where the invite requests were made.
cursor query optional string Value of the `next_cursor` field sent as part of the previous API response
limit query optional integer The number of results that will be returned by the API on each invocation. Must be between 1 - 1000, both inclusive

Responses

default Typical error response
200 Typical success response
GET /admin.inviteRequests.list

Admin.inviterequests.approved 1 endpoints

GET /admin.inviteRequests.approved.list

List all approved workspace invite requests.

operationId: admin_inviteRequests_approved_list

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `admin.invites:read`
team_id query optional string ID for the workspace where the invite requests were made.
cursor query optional string Value of the `next_cursor` field sent as part of the previous API response
limit query optional integer The number of results that will be returned by the API on each invocation. Must be between 1 - 1000, both inclusive

Responses

default Typical error response
200 Typical success response
GET /admin.inviteRequests.approved.list

Admin.inviterequests.denied 1 endpoints

GET /admin.inviteRequests.denied.list

List all denied workspace invite requests.

operationId: admin_inviteRequests_denied_list

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `admin.invites:read`
team_id query optional string ID for the workspace where the invite requests were made.
cursor query optional string Value of the `next_cursor` field sent as part of the previous api response
limit query optional integer The number of results that will be returned by the API on each invocation. Must be between 1 - 1000 both inclusive

Responses

default Typical error response
200 Typical success response
GET /admin.inviteRequests.denied.list

Admin.teams 2 endpoints

POST /admin.teams.create

Create an Enterprise team.

operationId: admin_teams_create

Parameters

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`.

Responses

default Typical error response
200 Typical success response
POST /admin.teams.create
GET /admin.teams.list

List all teams on an Enterprise organization

operationId: admin_teams_list

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `admin.teams:read`
limit query optional integer The maximum number of items to return. Must be between 1 - 100 both inclusive.
cursor query optional string Set `cursor` to `next_cursor` returned by the previous call to list items in the next page.

Responses

default Typical error response
200 Typical success response
GET /admin.teams.list

Admin.teams.admins 1 endpoints

GET /admin.teams.admins.list

List all of the admins on a given workspace.

operationId: admin_teams_admins_list

Parameters

Name In Required Type Description
token query required string Authentication token. Requires scope: `admin.teams:read`
limit query optional integer The maximum number of items to return.
cursor query optional string Set `cursor` to `next_cursor` returned by the previous call to list items in the next page.
team_id query required string

Responses

default Typical error response
200 Typical success response
GET /admin.teams.admins.list

Admin.teams.owners 1 endpoints

GET /admin.teams.owners.list

List all of the owners on a given workspace.

operationId: admin_teams_owners_list

Parameters

Name In Required Type Description
token query required string Authentication token. Requires scope: `admin.teams:read`
team_id query required string
limit query optional integer The maximum number of items to return. Must be between 1 - 1000 both inclusive.
cursor query optional string Set `cursor` to `next_cursor` returned by the previous call to list items in the next page.

Responses

default Typical error response
200 Typical success response
GET /admin.teams.owners.list

Admin.teams.settings 6 endpoints

GET /admin.teams.settings.info

Fetch information about settings in a workspace

operationId: admin_teams_settings_info

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `admin.teams:read`
team_id query required string

Responses

default Typical error response
200 Typical success response
GET /admin.teams.settings.info
POST /admin.teams.settings.setDefaultChannels

Set the default channels of a workspace.

operationId: admin_teams_settings_setDefaultChannels

Parameters

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.

Responses

default Typical error response
200 Typical success response
POST /admin.teams.settings.setDefaultChannels
POST /admin.teams.settings.setDescription

Set the description of a given workspace.

operationId: admin_teams_settings_setDescription

Parameters

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.

Responses

default Typical error response
200 Typical success response
POST /admin.teams.settings.setDescription
POST /admin.teams.settings.setDiscoverability

An API method that allows admins to set the discoverability of a given workspace

operationId: admin_teams_settings_setDiscoverability

Parameters

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`.

Responses

default Typical error response
200 Typical success response
POST /admin.teams.settings.setDiscoverability
POST /admin.teams.settings.setIcon

Sets the icon of a workspace.

operationId: admin_teams_settings_setIcon

Parameters

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.

Responses

default Typical error response
200 Typical success response
POST /admin.teams.settings.setIcon
POST /admin.teams.settings.setName

Set the name of a given workspace.

operationId: admin_teams_settings_setName

Parameters

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.

Responses

default Typical error response
200 Typical success response
POST /admin.teams.settings.setName

Admin.usergroups 4 endpoints

POST /admin.usergroups.addChannels

Add one or more default channels to an IDP group.

operationId: admin_usergroups_addChannels

Parameters

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.

Responses

default Typical error response if the token provided is not associated with an Org Admin or Owner
200 Typical success response
POST /admin.usergroups.addChannels
POST /admin.usergroups.addTeams

Associate one or more default workspaces with an organization-wide IDP group.

operationId: admin_usergroups_addTeams

Parameters

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.

Responses

default Typical error response
200 Typical success response
POST /admin.usergroups.addTeams
GET /admin.usergroups.listChannels

List the channels linked to an org-level IDP group (user group).

operationId: admin_usergroups_listChannels

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `admin.usergroups:read`
usergroup_id query required string ID of the IDP group to list default channels for.
team_id query optional string ID of the the workspace.
include_num_members query optional boolean Flag to include or exclude the count of members per channel.

Responses

default Typical error response if the token provided is not associated with an Org Admin or Owner
200 Typical success response
GET /admin.usergroups.listChannels
POST /admin.usergroups.removeChannels

Remove one or more default channels from an org-level IDP group (user group).

operationId: admin_usergroups_removeChannels

Parameters

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

Responses

default Typical error response if the token provided is not associated with an Org Admin or Owner
200 Typical success response
POST /admin.usergroups.removeChannels

Admin.users 8 endpoints

POST /admin.users.assign

Add an Enterprise user to a workspace.

operationId: admin_users_assign

Parameters

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.

Responses

default Typical error response
200 Typical success response
POST /admin.users.assign
POST /admin.users.invite

Invite a user to a workspace.

operationId: admin_users_invite

Parameters

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.
email 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.

Responses

default Typical error response
200 Typical success response
POST /admin.users.invite
GET /admin.users.list

List users on a workspace

operationId: admin_users_list

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `admin.users:read`
team_id query required string The ID (`T1234`) of the workspace.
cursor query optional string Set `cursor` to `next_cursor` returned by the previous call to list items in the next page.
limit query optional integer Limit for how many users to be retrieved per page

Responses

default Typical error response
200 Typical success response
GET /admin.users.list
POST /admin.users.remove

Remove a user from a workspace.

operationId: admin_users_remove

Parameters

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.

Responses

default Typical error response
200 Typical success response
POST /admin.users.remove
POST /admin.users.setAdmin

Set an existing guest, regular user, or owner to be an admin user.

operationId: admin_users_setAdmin

Parameters

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.

Responses

default Typical error response
200 Typical success response
POST /admin.users.setAdmin
POST /admin.users.setExpiration

Set an expiration for a guest user

operationId: admin_users_setExpiration

Parameters

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.

Responses

default Typical error response
200 Typical success response
POST /admin.users.setExpiration
POST /admin.users.setOwner

Set an existing guest, regular user, or admin user to be a workspace owner.

operationId: admin_users_setOwner

Parameters

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.

Responses

default Typical error response
200 Typical success response
POST /admin.users.setOwner
POST /admin.users.setRegular

Set an existing guest user, admin user, or owner to be a regular user.

operationId: admin_users_setRegular

Parameters

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.

Responses

default Typical error response
200 Typical success response
POST /admin.users.setRegular

Admin.users.session 2 endpoints

POST /admin.users.session.invalidate

Invalidate a single session for a user by session_id

operationId: admin_users_session_invalidate

Parameters

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

Responses

default Typical error response
200 Typical success response
POST /admin.users.session.invalidate
POST /admin.users.session.reset

Wipes all valid sessions on all devices for a given user

operationId: admin_users_session_reset

Parameters

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)

Responses

default Typical error response
200 Typical success response
POST /admin.users.session.reset

Api 1 endpoints

GET /api.test

Checks API calling code.

operationId: api_test

Parameters

Name In Required Type Description
error query optional string Error response to return
foo query optional string example property to return

Responses

default Artificial error response
200 Standard success response
GET /api.test

Apps 1 endpoints

GET /apps.uninstall

Uninstalls your app from a workspace.

operationId: apps_uninstall

Parameters

Name In Required Type Description
token query optional string Authentication token. Requires scope: `none`
client_id query optional string Issued when you created your application.
client_secret query optional string Issued when you created your application.

Responses

default Typical error response
200 Typical success response
GET /apps.uninstall

Apps.event.authorizations 1 endpoints

GET /apps.event.authorizations.list

Get a list of authorizations for the given event context. Each authorization represents an app installation that the event is visible to.

operationId: apps_event_authorizations_list

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `authorizations:read`
event_context query required string
cursor query optional string
limit query optional integer

Responses

default Typical error response
200 Typical success response
GET /apps.event.authorizations.list

Apps.permissions 2 endpoints

GET /apps.permissions.info

Returns list of permissions this app has on a team.

operationId: apps_permissions_info

Parameters

Name In Required Type Description
token query optional string Authentication token. Requires scope: `none`

Responses

default Standard failure response when used with an invalid token
200 Standard success response when used with a user token
GET /apps.permissions.info
GET /apps.permissions.request

Allows an app to request additional scopes

operationId: apps_permissions_request

Parameters

Name In Required Type Description
token query required string Authentication token. Requires scope: `none`
scopes query required string A comma separated list of scopes to request for
trigger_id query required string Token used to trigger the permissions API

Responses

default Standard failure response when trigger_id is invalid
200 Standard success response when used with a user token
GET /apps.permissions.request

Apps.permissions.resources 1 endpoints

GET /apps.permissions.resources.list

Returns list of resource grants this app has on a team.

operationId: apps_permissions_resources_list

Parameters

Name In Required Type Description
token query required string Authentication token. Requires scope: `none`
cursor query optional string Paginate through collections of data by setting the `cursor` parameter to a `next_cursor` attribute returned by a previous request's `response_metadata`. Default value fetches the first "page" of the collection. See [pagination](/docs/pagination) for more detail.
limit query optional integer The maximum number of items to return.

Responses

default Typical error response
200 Typical successful paginated response
GET /apps.permissions.resources.list

Apps.permissions.scopes 1 endpoints

GET /apps.permissions.scopes.list

Returns list of scopes this app has on a team.

operationId: apps_permissions_scopes_list

Parameters

Name In Required Type Description
token query required string Authentication token. Requires scope: `none`

Responses

default Typical error response
200 Typical successful paginated response
GET /apps.permissions.scopes.list

Apps.permissions.users 2 endpoints

GET /apps.permissions.users.list

Returns list of user grants and corresponding scopes this app has on a team.

operationId: apps_permissions_users_list

Parameters

Name In Required Type Description
token query required string Authentication token. Requires scope: `none`
cursor query optional string Paginate through collections of data by setting the `cursor` parameter to a `next_cursor` attribute returned by a previous request's `response_metadata`. Default value fetches the first "page" of the collection. See [pagination](/docs/pagination) for more detail.
limit query optional integer The maximum number of items to return.

Responses

default Typical error response
200 Typical successful paginated response
GET /apps.permissions.users.list
GET /apps.permissions.users.request

Enables an app to trigger a permissions modal to grant an app access to a user access scope.

operationId: apps_permissions_users_request

Parameters

Name In Required Type Description
token query required string Authentication token. Requires scope: `none`
scopes query required string A comma separated list of user scopes to request for
trigger_id query required string Token used to trigger the request
user query required string The user this scope is being requested for

Responses

default Standard failure response when trigger_id is invalid
200 Standard success response when used with a user token
GET /apps.permissions.users.request

Auth 2 endpoints

GET /auth.revoke

Revokes a token.

operationId: auth_revoke

Parameters

Name In Required Type Description
token query required string Authentication token. Requires scope: `none`
test query optional boolean Setting this parameter to `1` triggers a _testing mode_ where the specified token will not actually be revoked.

Responses

default Typical error response
200 Typical success response
GET /auth.revoke
GET /auth.test

Checks authentication & identity.

operationId: auth_test

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `none`

Responses

default Standard failure response when used with an invalid token
200 Standard success response when used with a user token
GET /auth.test

Bots 1 endpoints

GET /bots.info

Gets information about a bot user.

operationId: bots_info

Parameters

Name In Required Type Description
token query required string Authentication token. Requires scope: `users:read`
bot query optional string Bot user to get info on

Responses

default When no bot can be found, it returns an error.
200 When successful, returns bot info by bot ID.
GET /bots.info

Calls 4 endpoints

POST /calls.add

Registers a new Call.

operationId: calls_add

Parameters

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).

Responses

default Typical error response
200 Typical success response
POST /calls.add
POST /calls.end

Ends a Call.

operationId: calls_end

Parameters

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

Responses

default Typical error response
200 Typical success response
POST /calls.end
GET /calls.info

Returns information about a Call.

operationId: calls_info

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `calls:read`
id query required string `id` of the Call returned by the [`calls.add`](/methods/calls.add) method.

Responses

default Typical error response
200 Typical success response
GET /calls.info
POST /calls.update

Updates information about a Call.

operationId: calls_update

Parameters

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.

Responses

default Typical error response
200 Typical success response
POST /calls.update

Calls.participants 2 endpoints

POST /calls.participants.add

Registers new participants added to a Call.

operationId: calls_participants_add

Parameters

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).

Responses

default Typical error response
200 Typical success response
POST /calls.participants.add
POST /calls.participants.remove

Registers participants removed from a Call.

operationId: calls_participants_remove

Parameters

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).

Responses

default Typical error response
200 Typical success response
POST /calls.participants.remove

Chat 9 endpoints

POST /chat.delete

Deletes a message.

operationId: chat_delete

Parameters

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.

Responses

default Typical error response
200 Typical success response
POST /chat.delete
POST /chat.deleteScheduledMessage

Deletes a pending scheduled message from the queue.

operationId: chat_deleteScheduledMessage

Parameters

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

Responses

default Typical error response if no message is found
200 Typical success response
POST /chat.deleteScheduledMessage
GET /chat.getPermalink

Retrieve a permalink URL for a specific extant message

operationId: chat_getPermalink

Parameters

Name In Required Type Description
token query required string Authentication token. Requires scope: `none`
channel query required string The ID of the conversation or channel containing the message
message_ts query required string A message's `ts` value, uniquely identifying it within a channel

Responses

default Error response when channel cannot be found
200 Standard success response
GET /chat.getPermalink
POST /chat.meMessage

Share a me message into a channel.

operationId: chat_meMessage

Parameters

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.

Responses

default Typical error response
200 Typical success response
POST /chat.meMessage
POST /chat.postEphemeral

Sends an ephemeral message to a user in a channel.

operationId: chat_postEphemeral

Parameters

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.

Responses

default Typical error response
200 Typical success response
POST /chat.postEphemeral
POST /chat.postMessage

Sends a message to a channel.

operationId: chat_postMessage

Parameters

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.

Responses

default Typical error response if too many attachments are included
200 Typical success response
POST /chat.postMessage
POST /chat.scheduleMessage

Schedules a message to be sent to a channel.

operationId: chat_scheduleMessage

Parameters

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`.

Responses

default Typical error response if the `post_at` is invalid (ex. in the past or too far into the future)
200 Typical success response
POST /chat.scheduleMessage
POST /chat.unfurl

Provide custom unfurl behavior for user-posted URLs

operationId: chat_unfurl

Parameters

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.

Responses

default Typical error response
200 Typical, minimal success response
POST /chat.unfurl
POST /chat.update

Updates a message.

operationId: chat_update

Parameters

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.

Responses

default Typical error response
200 Typical success response
POST /chat.update

Chat.scheduledmessages 1 endpoints

GET /chat.scheduledMessages.list

Returns a list of scheduled messages.

operationId: chat_scheduledMessages_list

Parameters

Name In Required Type Description
token header optional string Authentication token. Requires scope: `none`
channel query optional string The channel of the scheduled messages
latest query optional number A UNIX timestamp of the latest value in the time range
oldest query optional number A UNIX timestamp of the oldest value in the time range
limit query optional integer Maximum number of original entries to return.
cursor query optional string For pagination purposes, this is the `cursor` value returned from a previous call to `chat.scheduledmessages.list` indicating where you want to start this call from.

Responses

default Typical error response if the channel passed is invalid
200 Typical success response
GET /chat.scheduledMessages.list

Conversations 18 endpoints

POST /conversations.archive

Archives a conversation.

operationId: conversations_archive

Parameters

Name In Required Type Description
token header optional string Authentication token. Requires scope: `conversations:write`
channel formData optional string ID of conversation to archive

Responses

default Typical error response
200 Typical success response
POST /conversations.archive
POST /conversations.close

Closes a direct message or multi-person direct message.

operationId: conversations_close

Parameters

Name In Required Type Description
token header optional string Authentication token. Requires scope: `conversations:write`
channel formData optional string Conversation to close.

Responses

default Typical error response
200 Typical success response
POST /conversations.close
POST /conversations.create

Initiates a public or private channel-based conversation

operationId: conversations_create

Parameters

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

Responses

default Typical error response when name already in use
200 If successful, the command returns a rather stark [conversation object](/types/conversation)
POST /conversations.create
GET /conversations.history

Fetches a conversation's history of messages and events.

operationId: conversations_history

Parameters

Name In Required Type Description
token query optional string Authentication token. Requires scope: `conversations:history`
channel query optional string Conversation ID to fetch history for.
latest query optional number End of time range of messages to include in results.
oldest query optional number Start of time range of messages to include in results.
inclusive query optional boolean Include messages with latest or oldest timestamp in results only when either timestamp is specified.
limit query optional integer The maximum number of items to return. Fewer than the requested number of items may be returned, even if the end of the users list hasn't been reached.
cursor query optional string Paginate through collections of data by setting the `cursor` parameter to a `next_cursor` attribute returned by a previous request's `response_metadata`. Default value fetches the first "page" of the collection. See [pagination](/docs/pagination) for more detail.

Responses

default Typical error response
200 Typical success response containing a channel's messages
GET /conversations.history
GET /conversations.info

Retrieve information about a conversation.

operationId: conversations_info

Parameters

Name In Required Type Description
token query optional string Authentication token. Requires scope: `conversations:read`
channel query optional string Conversation ID to learn more about
include_locale query optional boolean Set this to `true` to receive the locale for this conversation. Defaults to `false`
include_num_members query optional boolean Set to `true` to include the member count for the specified conversation. Defaults to `false`

Responses

default Typical error response when a channel cannot be found
200 Typical success response for a public channel. (Also, a response from a private channel and a multi-party IM is very similar to this example.)
GET /conversations.info
POST /conversations.invite

Invites users to a channel.

operationId: conversations_invite

Parameters

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.

Responses

default Typical error response when an invite is attempted on a conversation type that does not support it
200 Typical success response when an invitation is extended
POST /conversations.invite
POST /conversations.join

Joins an existing conversation.

operationId: conversations_join

Parameters

Name In Required Type Description
token header optional string Authentication token. Requires scope: `channels:write`
channel formData optional string ID of conversation to join

Responses

default Typical error response if the conversation is archived and cannot be joined
200 Typical success response
POST /conversations.join
POST /conversations.kick

Removes a user from a conversation.

operationId: conversations_kick

Parameters

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.

Responses

default Typical error response when you attempt to kick yourself from a channel
200 Typical success response
POST /conversations.kick
POST /conversations.leave

Leaves a conversation.

operationId: conversations_leave

Parameters

Name In Required Type Description
token header optional string Authentication token. Requires scope: `conversations:write`
channel formData optional string Conversation to leave

Responses

default Typical error response when attempting to leave a workspace's "general" channel
200 Typical success response
POST /conversations.leave
GET /conversations.list

Lists all channels in a Slack team.

operationId: conversations_list

Parameters

Name In Required Type Description
token query optional string Authentication token. Requires scope: `conversations:read`
exclude_archived query optional boolean Set to `true` to exclude archived channels from the list
types query optional string Mix and match channel types by providing a comma-separated list of any combination of `public_channel`, `private_channel`, `mpim`, `im`
limit query optional integer The maximum number of items to return. Fewer than the requested number of items may be returned, even if the end of the list hasn't been reached. Must be an integer no larger than 1000.
cursor query optional string Paginate through collections of data by setting the `cursor` parameter to a `next_cursor` attribute returned by a previous request's `response_metadata`. Default value fetches the first "page" of the collection. See [pagination](/docs/pagination) for more detail.

Responses

default Typical error response
200 Typical success response with only public channels
GET /conversations.list
POST /conversations.mark

Sets the read cursor in a channel.

operationId: conversations_mark

Parameters

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.

Responses

default Typical error response
200 Typical success response
POST /conversations.mark
GET /conversations.members

Retrieve members of a conversation.

operationId: conversations_members

Parameters

Name In Required Type Description
token query optional string Authentication token. Requires scope: `conversations:read`
channel query optional string ID of the conversation to retrieve members for
limit query optional integer The maximum number of items to return. Fewer than the requested number of items may be returned, even if the end of the users list hasn't been reached.
cursor query optional string Paginate through collections of data by setting the `cursor` parameter to a `next_cursor` attribute returned by a previous request's `response_metadata`. Default value fetches the first "page" of the collection. See [pagination](/docs/pagination) for more detail.

Responses

default Typical error response when an invalid cursor is provided
200 Typical paginated success response
GET /conversations.members
POST /conversations.open

Opens or resumes a direct message or multi-person direct message.

operationId: conversations_open

Parameters

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.

Responses

default Typical error response
200 Typical success response
POST /conversations.open
POST /conversations.rename

Renames a conversation.

operationId: conversations_rename

Parameters

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.

Responses

default Typical error response when the calling user is not a member of the conversation
200 Typical success response
POST /conversations.rename
GET /conversations.replies

Retrieve a thread of messages posted to a conversation

operationId: conversations_replies

Parameters

Name In Required Type Description
token query optional string Authentication token. Requires scope: `conversations:history`
channel query optional string Conversation ID to fetch thread from.
ts query optional number Unique identifier of a thread's parent message. `ts` must be the timestamp of an existing message with 0 or more replies. If there are no replies then just the single message referenced by `ts` will return - it is just an ordinary, unthreaded message.
latest query optional number End of time range of messages to include in results.
oldest query optional number Start of time range of messages to include in results.
inclusive query optional boolean Include messages with latest or oldest timestamp in results only when either timestamp is specified.
limit query optional integer The maximum number of items to return. Fewer than the requested number of items may be returned, even if the end of the users list hasn't been reached.
cursor query optional string Paginate through collections of data by setting the `cursor` parameter to a `next_cursor` attribute returned by a previous request's `response_metadata`. Default value fetches the first "page" of the collection. See [pagination](/docs/pagination) for more detail.

Responses

default Typical error response
200 Typical success response
GET /conversations.replies
POST /conversations.setPurpose

Sets the purpose for a conversation.

operationId: conversations_setPurpose

Parameters

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

Responses

default Typical error response
200 Typical success response
POST /conversations.setPurpose
POST /conversations.setTopic

Sets the topic for a conversation.

operationId: conversations_setTopic

Parameters

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.

Responses

default Typical error response
200 Typical success response
POST /conversations.setTopic
POST /conversations.unarchive

Reverses conversation archival.

operationId: conversations_unarchive

Parameters

Name In Required Type Description
token header optional string Authentication token. Requires scope: `conversations:write`
channel formData optional string ID of conversation to unarchive

Responses

default Typical error response
200 Typical success response
POST /conversations.unarchive

Dialog 1 endpoints

GET /dialog.open

Open a dialog with a user

operationId: dialog_open

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `none`
dialog query required string The dialog definition. This must be a JSON-encoded string.
trigger_id query required string Exchange a trigger to post to the user.

Responses

default Typical error response, before getting to any possible validation errors.
200 Typical success response is quite minimal.
GET /dialog.open

Dnd 5 endpoints

POST /dnd.endDnd

Ends the current user's Do Not Disturb session immediately.

operationId: dnd_endDnd

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `dnd:write`

Responses

default Typical error response
200 Typical success response
POST /dnd.endDnd
POST /dnd.endSnooze

Ends the current user's snooze mode immediately.

operationId: dnd_endSnooze

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `dnd:write`

Responses

default Typical error response
200 Typical success response
POST /dnd.endSnooze
GET /dnd.info

Retrieves a user's current Do Not Disturb status.

operationId: dnd_info

Parameters

Name In Required Type Description
token query optional string Authentication token. Requires scope: `dnd:read`
user query optional string User to fetch status for (defaults to current user)

Responses

default Typical error response
200 Typical success response
GET /dnd.info
POST /dnd.setSnooze

Turns on Do Not Disturb mode for the current user, or changes its duration.

operationId: dnd_setSnooze

Parameters

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.

Responses

default Typical error response
200 Typical success response
POST /dnd.setSnooze
GET /dnd.teamInfo

Retrieves the Do Not Disturb status for up to 50 users on a team.

operationId: dnd_teamInfo

Parameters

Name In Required Type Description
token query optional string Authentication token. Requires scope: `dnd:read`
users query optional string Comma-separated list of users to fetch Do Not Disturb status for

Responses

default Typical error response
200 Typical success response
GET /dnd.teamInfo

Emoji 1 endpoints

GET /emoji.list

Lists custom emoji for a team.

operationId: emoji_list

Parameters

Name In Required Type Description
token query required string Authentication token. Requires scope: `emoji:read`

Responses

default Typical error response
200 Typical success response
GET /emoji.list

Files 6 endpoints

POST /files.delete

Deletes a file.

operationId: files_delete

Parameters

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.

Responses

default Typical error response
200 Typical success response
POST /files.delete
GET /files.info

Gets information about a file.

operationId: files_info

Parameters

Name In Required Type Description
token query optional string Authentication token. Requires scope: `files:read`
file query optional string Specify a file by providing its ID.
count query optional string
page query optional string
limit query optional integer The maximum number of items to return. Fewer than the requested number of items may be returned, even if the end of the list hasn't been reached.
cursor query optional string Parameter for pagination. File comments are paginated for a single file. Set `cursor` equal to the `next_cursor` attribute returned by the previous request's `response_metadata`. This parameter is optional, but pagination is mandatory: the default value simply fetches the first "page" of the collection of comments. See [pagination](/docs/pagination) for more details.

Responses

default Typical error response
200 Typical success response
GET /files.info
GET /files.list

List for a team, in a channel, or from a user with applied filters.

operationId: files_list

Parameters

Name In Required Type Description
token query optional string Authentication token. Requires scope: `files:read`
user query optional string Filter files created by a single user.
channel query optional string Filter files appearing in a specific channel, indicated by its ID.
ts_from query optional number Filter files created after this timestamp (inclusive).
ts_to query optional number Filter files created before this timestamp (inclusive).
types query optional string Filter files by type ([see below](#file_types)). You can pass multiple values in the types argument, like `types=spaces,snippets`.The default value is `all`, which does not filter the list.
count query optional string
page query optional string
show_files_hidden_by_limit query optional boolean Show truncated file info for files hidden due to being too old, and the team who owns the file being over the file limit.

Responses

default Typical error response
200 Typical success response
GET /files.list
POST /files.revokePublicURL

Revokes public/external sharing access for a file

operationId: files_revokePublicURL

Parameters

Name In Required Type Description
token header optional string Authentication token. Requires scope: `files:write:user`
file formData optional string File to revoke

Responses

default Typical error response
200 Typical success response
POST /files.revokePublicURL
POST /files.sharedPublicURL

Enables a file for public/external sharing.

operationId: files_sharedPublicURL

Parameters

Name In Required Type Description
token header optional string Authentication token. Requires scope: `files:write:user`
file formData optional string File to share

Responses

default Typical error response
200 Typical success response
POST /files.sharedPublicURL
POST /files.upload

Uploads or creates a file.

operationId: files_upload

Parameters

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.

Responses

default Typical error response
200 Success response after uploading a file to a channel with an initial message
POST /files.upload

Files.comments 1 endpoints

POST /files.comments.delete

Deletes an existing comment on a file.

operationId: files_comments_delete

Parameters

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.

Responses

default Standard failure response when used with an invalid token
200 Standard success response is very simple
POST /files.comments.delete

Files.remote 6 endpoints

POST /files.remote.add

Adds a file from a remote service

operationId: files_remote_add

Parameters

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.

Responses

default Typical error response
200 Typical success response
POST /files.remote.add
GET /files.remote.info

Retrieve information about a remote file added to Slack

operationId: files_remote_info

Parameters

Name In Required Type Description
token query optional string Authentication token. Requires scope: `remote_files:read`
file query optional string Specify a file by providing its ID.
external_id query optional string Creator defined GUID for the file.

Responses

default Typical error response
200 Typical success response
GET /files.remote.info
GET /files.remote.list

Retrieve information about a remote file added to Slack

operationId: files_remote_list

Parameters

Name In Required Type Description
token query optional string Authentication token. Requires scope: `remote_files:read`
channel query optional string Filter files appearing in a specific channel, indicated by its ID.
ts_from query optional number Filter files created after this timestamp (inclusive).
ts_to query optional number Filter files created before this timestamp (inclusive).
limit query optional integer The maximum number of items to return.
cursor query optional string Paginate through collections of data by setting the `cursor` parameter to a `next_cursor` attribute returned by a previous request's `response_metadata`. Default value fetches the first "page" of the collection. See [pagination](/docs/pagination) for more detail.

Responses

default Typical error response
200 Typical success response
GET /files.remote.list
POST /files.remote.remove

Remove a remote file.

operationId: files_remote_remove

Parameters

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.

Responses

default Typical error response
200 Typical success response
POST /files.remote.remove
GET /files.remote.share

Share a remote file into a channel.

operationId: files_remote_share

Parameters

Name In Required Type Description
token query optional string Authentication token. Requires scope: `remote_files:share`
file query optional string Specify a file registered with Slack by providing its ID. Either this field or `external_id` or both are required.
external_id query optional string The globally unique identifier (GUID) for the file, as set by the app registering the file with Slack. Either this field or `file` or both are required.
channels query optional string Comma-separated list of channel IDs where the file will be shared.

Responses

default Typical error response
200 Typical success response
GET /files.remote.share
POST /files.remote.update

Updates an existing remote file.

operationId: files_remote_update

Parameters

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.

Responses

default Typical error response
200 Typical success response
POST /files.remote.update

Migration 1 endpoints

GET /migration.exchange

For Enterprise Grid workspaces, map local user IDs to global user IDs

operationId: migration_exchange

Parameters

Name In Required Type Description
token query required string Authentication token. Requires scope: `tokens.basic`
users query required string A comma-separated list of user ids, up to 400 per request
team_id query optional string Specify team_id starts with `T` in case of Org Token
to_old query optional boolean Specify `true` to convert `W` global user IDs to workspace-specific `U` IDs. Defaults to `false`.

Responses

default Typical error response when there are no mappings to provide
200 Typical success response when mappings exist for the specified user IDs
GET /migration.exchange

Oauth 2 endpoints

GET /oauth.access

Exchanges a temporary OAuth verifier code for an access token.

operationId: oauth_access

Parameters

Name In Required Type Description
client_id query optional string Issued when you created your application.
client_secret query optional string Issued when you created your application.
code query optional string The `code` param returned via the OAuth callback.
redirect_uri query optional string This must match the originally submitted URI (if one was sent).
single_channel query optional boolean Request the user to add your app only to a single channel. Only valid with a [legacy workspace app](https://api.slack.com/legacy-workspace-apps).

Responses

default Typical error response
200 Successful user token negotiation for a single scope
GET /oauth.access
GET /oauth.token

Exchanges a temporary OAuth verifier code for a workspace token.

operationId: oauth_token

Parameters

Name In Required Type Description
client_id query optional string Issued when you created your application.
client_secret query optional string Issued when you created your application.
code query optional string The `code` param returned via the OAuth callback.
redirect_uri query optional string This must match the originally submitted URI (if one was sent).
single_channel query optional boolean Request the user to add your app only to a single channel.

Responses

default Typical error response
200 Success example using a workspace app produces a very different kind of response
GET /oauth.token

Oauth.v2 1 endpoints

GET /oauth.v2.access

Exchanges a temporary OAuth verifier code for an access token.

operationId: oauth_v2_access

Parameters

Name In Required Type Description
client_id query optional string Issued when you created your application.
client_secret query optional string Issued when you created your application.
code query required string The `code` param returned via the OAuth callback.
redirect_uri query optional string This must match the originally submitted URI (if one was sent).

Responses

default Typical error response
200 Successful token request with scopes for both a bot user and a user token
GET /oauth.v2.access

Pins 3 endpoints

POST /pins.add

Pins an item to a channel.

operationId: pins_add

Parameters

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.

Responses

default Typical error response
200 Typical success response
POST /pins.add
GET /pins.list

Lists items pinned to a channel.

operationId: pins_list

Parameters

Name In Required Type Description
token query required string Authentication token. Requires scope: `pins:read`
channel query required string Channel to get pinned items for.

Responses

default Typical error response
200 Typical success response
GET /pins.list
POST /pins.remove

Un-pins an item from a channel.

operationId: pins_remove

Parameters

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.

Responses

default Typical error response
200 Typical success response
POST /pins.remove

Reactions 4 endpoints

POST /reactions.add

Adds a reaction to an item.

operationId: reactions_add

Parameters

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`

Responses

default Typical error response
200 Typical success response
POST /reactions.add
GET /reactions.get

Gets reactions for an item.

operationId: reactions_get

Parameters

Name In Required Type Description
token query required string Authentication token. Requires scope: `reactions:read`
channel query optional string Channel where the message to get reactions for was posted.
file query optional string File to get reactions for.
file_comment query optional string File comment to get reactions for.
full query optional boolean If true always return the complete reaction list.
timestamp query optional string Timestamp of the message to get reactions for.

Responses

default Typical error response
200 Typical success response
GET /reactions.get
GET /reactions.list

Lists reactions made by a user.

operationId: reactions_list

Parameters

Name In Required Type Description
token query required string Authentication token. Requires scope: `reactions:read`
user query optional string Show reactions made by this user. Defaults to the authed user.
full query optional boolean If true always return the complete reaction list.
count query optional integer
page query optional integer
cursor query optional string Parameter for pagination. Set `cursor` equal to the `next_cursor` attribute returned by the previous request's `response_metadata`. This parameter is optional, but pagination is mandatory: the default value simply fetches the first "page" of the collection. See [pagination](/docs/pagination) for more details.
limit query optional integer The maximum number of items to return. Fewer than the requested number of items may be returned, even if the end of the list hasn't been reached.

Responses

default Typical error response
200 Typical success response
GET /reactions.list
POST /reactions.remove

Removes a reaction from an item.

operationId: reactions_remove

Parameters

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.

Responses

default Typical error response
200 Typical success response
POST /reactions.remove

Reminders 5 endpoints

POST /reminders.add

Creates a reminder.

operationId: reminders_add

Parameters

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.

Responses

default Typical error response
200 Typical success response
POST /reminders.add
POST /reminders.complete

Marks a reminder as complete.

operationId: reminders_complete

Parameters

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

Responses

default Typical error response
200 Typical success response
POST /reminders.complete
POST /reminders.delete

Deletes a reminder.

operationId: reminders_delete

Parameters

Name In Required Type Description
token header optional string Authentication token. Requires scope: `reminders:write`
reminder formData optional string The ID of the reminder

Responses

default Typical error response
200 Typical success response
POST /reminders.delete
GET /reminders.info

Gets information about a reminder.

operationId: reminders_info

Parameters

Name In Required Type Description
token query optional string Authentication token. Requires scope: `reminders:read`
reminder query optional string The ID of the reminder

Responses

default Typical error response
200 Typical success response
GET /reminders.info
GET /reminders.list

Lists all reminders created by or for a given user.

operationId: reminders_list

Parameters

Name In Required Type Description
token query optional string Authentication token. Requires scope: `reminders:read`

Responses

default Typical error response
200 Typical success response
GET /reminders.list

Rtm 1 endpoints

GET /rtm.connect

Starts a Real Time Messaging session.

operationId: rtm_connect

Parameters

Name In Required Type Description
token query required string Authentication token. Requires scope: `rtm:stream`
batch_presence_aware query optional boolean Batch presence deliveries via subscription. Enabling changes the shape of `presence_change` events. See [batch presence](/docs/presence-and-status#batching).
presence_sub query optional boolean Only deliver presence events when requested by subscription. See [presence subscriptions](/docs/presence-and-status#subscriptions).

Responses

default Typical error response
200 Typical success response
GET /rtm.connect

Stars 3 endpoints

POST /stars.add

Adds a star to an item.

operationId: stars_add

Parameters

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.

Responses

default Typical error response
200 Typical success response
POST /stars.add
GET /stars.list

Lists stars for a user.

operationId: stars_list

Parameters

Name In Required Type Description
token query optional string Authentication token. Requires scope: `stars:read`
count query optional string
page query optional string
cursor query optional string Parameter for pagination. Set `cursor` equal to the `next_cursor` attribute returned by the previous request's `response_metadata`. This parameter is optional, but pagination is mandatory: the default value simply fetches the first "page" of the collection. See [pagination](/docs/pagination) for more details.
limit query optional integer The maximum number of items to return. Fewer than the requested number of items may be returned, even if the end of the list hasn't been reached.

Responses

default Typical error response
200 Typical success response
GET /stars.list
POST /stars.remove

Removes a star from an item.

operationId: stars_remove

Parameters

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.

Responses

default Typical error response
200 Typical success response
POST /stars.remove

Team 4 endpoints

GET /team.accessLogs

Gets the access logs for the current team.

operationId: team_accessLogs

Parameters

Name In Required Type Description
token query required string Authentication token. Requires scope: `admin`
before query optional string End of time range of logs to include in results (inclusive).
count query optional string
page query optional string

Responses

default A workspace must be on a paid plan to use this method, otherwise the `paid_only` error is thrown:
200 This response demonstrates pagination and two access log entries.
GET /team.accessLogs
GET /team.billableInfo

Gets billable users information for the current team.

operationId: team_billableInfo

Parameters

Name In Required Type Description
token query required string Authentication token. Requires scope: `admin`
user query optional string A user to retrieve the billable information for. Defaults to all users.

Responses

default Typical error response
200 Typical success response
GET /team.billableInfo
GET /team.info

Gets information about the current team.

operationId: team_info

Parameters

Name In Required Type Description
token query required string Authentication token. Requires scope: `team:read`
team query optional string Team to get info on, if omitted, will return information about the current team. Will only return team that the authenticated token is allowed to see through external shared channels

Responses

default Typical error response
200 Typical success response
GET /team.info
GET /team.integrationLogs

Gets the integration logs for the current team.

operationId: team_integrationLogs

Parameters

Name In Required Type Description
token query required string Authentication token. Requires scope: `admin`
app_id query optional string Filter logs to this Slack app. Defaults to all logs.
change_type query optional string Filter logs with this change type. Defaults to all logs.
count query optional string
page query optional string
service_id query optional string Filter logs to this service. Defaults to all logs.
user query optional string Filter logs generated by this user’s actions. Defaults to all logs.

Responses

default Typical error response
200 Typical success response
GET /team.integrationLogs

Team.profile 1 endpoints

GET /team.profile.get

Retrieve a team's profile.

operationId: team_profile_get

Parameters

Name In Required Type Description
token query required string Authentication token. Requires scope: `users.profile:read`
visibility query optional string Filter by visibility.

Responses

default Typical error response
200 Typical success response
GET /team.profile.get

Usergroups 5 endpoints

POST /usergroups.create

Create a User Group

operationId: usergroups_create

Parameters

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.

Responses

default Typical error response
200 Typical success response
POST /usergroups.create
POST /usergroups.disable

Disable an existing User Group

operationId: usergroups_disable

Parameters

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.

Responses

default Typical error response
200 Typical success response
POST /usergroups.disable
POST /usergroups.enable

Enable a User Group

operationId: usergroups_enable

Parameters

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.

Responses

default Typical error response
200 Typical success response
POST /usergroups.enable
GET /usergroups.list

List all User Groups for a team

operationId: usergroups_list

Parameters

Name In Required Type Description
include_users query optional boolean Include the list of users for each User Group.
token query required string Authentication token. Requires scope: `usergroups:read`
include_count query optional boolean Include the number of users in each User Group.
include_disabled query optional boolean Include disabled User Groups.

Responses

default Typical error response
200 Typical success response
GET /usergroups.list
POST /usergroups.update

Update an existing User Group

operationId: usergroups_update

Parameters

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.

Responses

default Typical error response
200 Typical success response
POST /usergroups.update

Usergroups.users 2 endpoints

GET /usergroups.users.list

List all users in a User Group

operationId: usergroups_users_list

Parameters

Name In Required Type Description
token query required string Authentication token. Requires scope: `usergroups:read`
include_disabled query optional boolean Allow results that involve disabled User Groups.
usergroup query required string The encoded ID of the User Group to update.

Responses

default Standard failure response when used with an invalid token
200 Standard success response when used with a user token
GET /usergroups.users.list
POST /usergroups.users.update

Update the list of users for a User Group

operationId: usergroups_users_update

Parameters

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.

Responses

default Typical error response
200 Typical success response
POST /usergroups.users.update

Users 10 endpoints

GET /users.conversations

List conversations the calling user may access.

operationId: users_conversations

Parameters

Name In Required Type Description
token query optional string Authentication token. Requires scope: `conversations:read`
user query optional string Browse conversations by a specific user ID's membership. Non-public channels are restricted to those where the calling user shares membership.
types query optional string Mix and match channel types by providing a comma-separated list of any combination of `public_channel`, `private_channel`, `mpim`, `im`
exclude_archived query optional boolean Set to `true` to exclude archived channels from the list
limit query optional integer The maximum number of items to return. Fewer than the requested number of items may be returned, even if the end of the list hasn't been reached. Must be an integer no larger than 1000.
cursor query optional string Paginate through collections of data by setting the `cursor` parameter to a `next_cursor` attribute returned by a previous request's `response_metadata`. Default value fetches the first "page" of the collection. See [pagination](/docs/pagination) for more detail.

Responses

default Typical error response
200 Typical success response with only public channels. Note how `num_members` and `is_member` are not returned like typical `conversations` objects.
GET /users.conversations
POST /users.deletePhoto

Delete the user profile photo

operationId: users_deletePhoto

Parameters

Name In Required Type Description
token formData required string Authentication token. Requires scope: `users.profile:write`

Responses

default Typical error response
200 Typical success response
POST /users.deletePhoto
GET /users.getPresence

Gets user presence information.

operationId: users_getPresence

Parameters

Name In Required Type Description
token query required string Authentication token. Requires scope: `users:read`
user query optional string User to get presence info on. Defaults to the authed user.

Responses

default Typical error response
200 When requesting information for a different user, this method just returns the current presence (either `active` or `away`).
GET /users.getPresence
GET /users.identity

Get a user's identity.

operationId: users_identity

Parameters

Name In Required Type Description
token query optional string Authentication token. Requires scope: `identity.basic`

Responses

default Typical error response
200 You will receive at a minimum the following information:
GET /users.identity
GET /users.info

Gets information about a user.

operationId: users_info

Parameters

Name In Required Type Description
token query required string Authentication token. Requires scope: `users:read`
include_locale query optional boolean Set this to `true` to receive the locale for this user. Defaults to `false`
user query optional string User to get info on

Responses

default Typical error response
200 Typical success response
GET /users.info
GET /users.list

Lists all users in a Slack team.

operationId: users_list

Parameters

Name In Required Type Description
token query optional string Authentication token. Requires scope: `users:read`
limit query optional integer The maximum number of items to return. Fewer than the requested number of items may be returned, even if the end of the users list hasn't been reached. Providing no `limit` value will result in Slack attempting to deliver you the entire result set. If the collection is too large you may experience `limit_required` or HTTP 500 errors.
cursor query optional string Paginate through collections of data by setting the `cursor` parameter to a `next_cursor` attribute returned by a previous request's `response_metadata`. Default value fetches the first "page" of the collection. See [pagination](/docs/pagination) for more detail.
include_locale query optional boolean Set this to `true` to receive the locale for users. Defaults to `false`

Responses

default Typical error response
200 Typical success response
GET /users.list
GET /users.lookupByEmail

Find a user with an email address.

operationId: users_lookupByEmail

Parameters

Name In Required Type Description
token query required string Authentication token. Requires scope: `users:read.email`
email query required string An email address belonging to a user in the workspace

Responses

default Typical error response
200 Typical success response
GET /users.lookupByEmail
POST /users.setActive

Marked a user as active. Deprecated and non-functional.

operationId: users_setActive

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `users:write`

Responses

default Typical error response
200 Typical success response
POST /users.setActive
POST /users.setPhoto

Set the user profile photo

operationId: users_setPhoto

Parameters

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`.

Responses

default Typical error response
200 Typical success response
POST /users.setPhoto
POST /users.setPresence

Manually sets user presence.

operationId: users_setPresence

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `users:write`
presence formData required string Either `auto` or `away`

Responses

default Typical error response
200 Typical success response
POST /users.setPresence

Users.profile 2 endpoints

GET /users.profile.get

Retrieves a user's profile information.

operationId: users_profile_get

Parameters

Name In Required Type Description
token query required string Authentication token. Requires scope: `users.profile:read`
include_labels query optional boolean Include labels for each ID in custom profile fields
user query optional string User to retrieve profile info for

Responses

default Typical error response
200 Typical success response
GET /users.profile.get
POST /users.profile.set

Set the profile information for a user.

operationId: users_profile_set

Parameters

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.

Responses

default Typical error response
200 Typical success response
POST /users.profile.set

Views 4 endpoints

GET /views.open

Open a view for a user.

operationId: views_open

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `none`
trigger_id query required string Exchange a trigger to post to the user.
view query required string A [view payload](/reference/surfaces/views). This must be a JSON-encoded string.

Responses

default Typical error response, before getting to any possible validation errors.
200 Typical success response includes the opened view payload.
GET /views.open
GET /views.publish

Publish a static view for a User.

operationId: views_publish

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `none`
user_id query required string `id` of the user you want publish a view to.
view query required string A [view payload](/reference/surfaces/views). This must be a JSON-encoded string.
hash query optional string A string that represents view state to protect against possible race conditions.

Responses

default Typical error response, before getting to any possible validation errors.
200 Typical success response includes the published view payload.
GET /views.publish
GET /views.push

Push a view onto the stack of a root view.

operationId: views_push

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `none`
trigger_id query required string Exchange a trigger to post to the user.
view query required string A [view payload](/reference/surfaces/views). This must be a JSON-encoded string.

Responses

default Typical error response.
200 Typical success response includes the pushed view payload.
GET /views.push
GET /views.update

Update an existing view.

operationId: views_update

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `none`
view_id query optional string A unique identifier of the view to be updated. Either `view_id` or `external_id` is required.
external_id query optional string A unique identifier of the view set by the developer. Must be unique for all views on a team. Max length of 255 characters. Either `view_id` or `external_id` is required.
view query optional string A [view object](/reference/surfaces/views). This must be a JSON-encoded string.
hash query optional string A string that represents view state to protect against possible race conditions.

Responses

default Typical error response.
200 Typical success response includes the updated view payload.
GET /views.update

Workflows 3 endpoints

GET /workflows.stepCompleted

Indicate that an app's step in a workflow completed execution.

operationId: workflows_stepCompleted

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `workflow.steps:execute`
workflow_step_execute_id query required string Context identifier that maps to the correct workflow step execution.
outputs query optional string Key-value object of outputs from your step. Keys of this object reflect the configured `key` properties of your [`outputs`](/reference/workflows/workflow_step#output) array from your `workflow_step` object.

Responses

default Typical error response
200 Typical success response
GET /workflows.stepCompleted
GET /workflows.stepFailed

Indicate that an app's step in a workflow failed to execute.

operationId: workflows_stepFailed

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `workflow.steps:execute`
workflow_step_execute_id query required string Context identifier that maps to the correct workflow step execution.
error query required string A JSON-based object with a `message` property that should contain a human readable error message.

Responses

default Typical error response
200 Typical success response
GET /workflows.stepFailed
GET /workflows.updateStep

Update the configuration for a workflow extension step.

operationId: workflows_updateStep

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `workflow.steps:execute`
workflow_step_edit_id query required string A context identifier provided with `view_submission` payloads used to call back to `workflows.updateStep`.
inputs query optional string A JSON key-value map of inputs required from a user during configuration. This is the data your app expects to receive when the workflow step starts. **Please note**: the embedded variable format is set and replaced by the workflow system. You cannot create custom variables that will be replaced at runtime. [Read more about variables in workflow steps here](/workflows/steps#variables).
outputs query optional string An JSON array of output objects used during step execution. This is the data your app agrees to provide when your workflow step was executed.
step_name query optional string An optional field that can be used to override the step name that is shown in the Workflow Builder.
step_image_url query optional string An optional field that can be used to override app image that is shown in the Workflow Builder.

Responses

default Typical error response
200 Typical success response
GET /workflows.updateStep

Schemas

array 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."
}
string defs_app_id
{
  "type": "string",
  "title": "App ID",
  "pattern": "^A[A-Z0-9]{1,}$"
}
string defs_bot_id
{
  "type": "string",
  "title": "Bot User ID",
  "pattern": "^B[A-Z0-9]{8,}$"
}
string defs_channel
{
  "type": "string",
  "title": "Channel-like conversation ID",
  "pattern": "^[CGD][A-Z0-9]{8,}$"
}
string defs_channel_id
{
  "type": "string",
  "title": "Channel ID",
  "pattern": "^[C][A-Z0-9]{2,}$"
}
string defs_channel_name
{
  "type": "string",
  "title": "Name of a channel"
}
string defs_comment_id
{
  "type": "string",
  "title": "File Comment ID",
  "pattern": "^Fc[A-Z0-9]{8,}$"
}
string defs_dm_id
{
  "type": "string",
  "title": "Direct Message Channel ID",
  "pattern": "^[D][A-Z0-9]{8,}$"
}
string defs_enterprise_id
{
  "type": "string",
  "title": "Enterprise ID",
  "pattern": "^[E][A-Z0-9]{8,}$"
}
string defs_enterprise_name
{
  "type": "string",
  "title": "Name of the enterprise org"
}
string defs_enterprise_user_id
{
  "type": "string",
  "title": "Enterprise User ID",
  "pattern": "^[WU][A-Z0-9]{8,}$"
}
string defs_file_id
{
  "type": "string",
  "title": "File ID",
  "pattern": "^[F][A-Z0-9]{8,}$"
}
string defs_group_id
{
  "type": "string",
  "title": "Private Channel ID",
  "pattern": "^[G][A-Z0-9]{8,}$"
}
boolean defs_ok_false
{
  "enum": [
    false
  ],
  "type": "boolean",
  "title": "default failure response"
}
boolean defs_ok_true
{
  "enum": [
    true
  ],
  "type": "boolean",
  "title": "default success response"
}
string defs_optional_app_id
{
  "type": "string",
  "title": "App ID or empty string",
  "pattern": "^(A[A-Z0-9]{1,})?$"
}
object defs_pinned_info
{
  "type": "object",
  "title": "Info for a pinned item",
  "additionalProperties": false
}
string defs_reminder_id
{
  "type": "string",
  "title": "Reminder ID",
  "pattern": "^Rm[A-Z0-9]{8,}$"
}
string defs_subteam_id
{
  "type": "string",
  "title": "Subteam ID",
  "pattern": "^S[A-Z0-9]{2,}$"
}
string defs_team
{
  "type": "string",
  "title": "Team ID",
  "pattern": "^[T][A-Z0-9]{2,}$"
}
string defs_topic_purpose_creator
{
  "type": "string",
  "title": "User ID or empty string, used for topic and purpose creation",
  "pattern": "^[UW][A-Z0-9]{8,}$|^$"
}
string defs_ts
{
  "type": "string",
  "title": "Timestamp in format 0123456789.012345",
  "pattern": "^\\d{10}\\.\\d{6}$"
}
string defs_user_id
{
  "type": "string",
  "title": "User ID",
  "pattern": "^[UW][A-Z0-9]{2,}$"
}
string defs_workspace_id
{
  "type": "string",
  "title": "Team or Enterprise ID",
  "pattern": "^[TE][A-Z0-9]{8,}$"
}
object 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
}
object 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
}
object 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
}
array objs_comments
{
  "type": "array",
  "items": {},
  "title": "file comments object"
}
array 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
    }
  ]
}
object 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
}
object 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"
    }
  }
}
object 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
}
object 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"
    }
  }
}
object 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
}
object 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
}
object objs_primary_owner
{
  "type": "object",
  "required": [
    "id",
    "email"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "email": {
      "type": "string"
    }
  }
}
object 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
}
object 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
}
object 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
}
array 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
    }
  ]
}
array objs_scopes
{
  "type": "array",
  "items": {
    "type": "string",
    "title": "Named OAuth scopes",
    "x-examples": [
      "chat:write",
      "im:history",
      "im:read"
    ]
  }
}
object 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
}
object 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
}
object 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
}
object 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
}
array 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
    }
  ]
}
object 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
}
object 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
}