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

Clear filters

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 3 endpoints

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

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 1 endpoints

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

Admin.emoji 1 endpoints

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

Admin.inviterequests 1 endpoints

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 1 endpoints

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 1 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

Admin.usergroups 1 endpoints

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

Admin.users 1 endpoints

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

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 1 endpoints

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

Chat 1 endpoints

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

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 5 endpoints

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

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 2 endpoints

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
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 2 endpoints

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

Files.remote 3 endpoints

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

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 1 endpoints

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

Reactions 2 endpoints

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

Reminders 2 endpoints

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 1 endpoints

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

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 1 endpoints

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

Usergroups.users 1 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

Users 6 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
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

Users.profile 1 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

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
}