Query structured spec data via REST or MCP. Get exactly what your agent needs.
https://slack.com/api
/admin.apps.approved.list
List approved apps for an org or workspace.
| 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 |
GET /admin.apps.approved.list
/admin.apps.requests.list
List app requests for a team/workspace.
| 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 |
GET /admin.apps.requests.list
/admin.apps.restricted.list
List restricted apps for an org or workspace.
| 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 |
GET /admin.apps.restricted.list
/admin.conversations.getConversationPrefs
Get conversation preferences for a public or private channel.
| 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. |
GET /admin.conversations.getConversationPrefs
/admin.conversations.getTeams
Get all the workspaces a given public or private channel is connected to within this Enterprise org.
| 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. |
GET /admin.conversations.getTeams
/admin.conversations.search
Search for public or private channels in an Enterprise organization.
| 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) |
GET /admin.conversations.search
/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.
| 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. |
GET /admin.conversations.ekm.listOriginalConnectedChannelInfo
/admin.conversations.restrictAccess.listGroups
List all IDP Groups linked to a channel
| 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. |
GET /admin.conversations.restrictAccess.listGroups
/admin.emoji.list
List emoji for an Enterprise Grid organization.
| 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. |
GET /admin.emoji.list
/admin.inviteRequests.list
List all pending workspace invite requests.
| 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 |
GET /admin.inviteRequests.list
/admin.inviteRequests.approved.list
List all approved workspace invite requests.
| 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 |
GET /admin.inviteRequests.approved.list
/admin.inviteRequests.denied.list
List all denied workspace invite requests.
| 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 |
GET /admin.inviteRequests.denied.list
/admin.teams.list
List all teams on an Enterprise organization
| 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. |
GET /admin.teams.list
/admin.teams.admins.list
List all of the admins on a given workspace.
| 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 |
GET /admin.teams.admins.list
/admin.teams.owners.list
List all of the owners on a given workspace.
| 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. |
GET /admin.teams.owners.list
/admin.teams.settings.info
Fetch information about settings in a workspace
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | required | string | Authentication token. Requires scope: `admin.teams:read` |
| team_id | query | required | string |
GET /admin.teams.settings.info
/admin.usergroups.listChannels
List the channels linked to an org-level IDP group (user group).
| 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. |
GET /admin.usergroups.listChannels
/admin.users.list
List users on a workspace
| 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 |
GET /admin.users.list
/api.test
Checks API calling code.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| error | query | optional | string | Error response to return |
| foo | query | optional | string | example property to return |
GET /api.test
/apps.uninstall
Uninstalls your app from a workspace.
| 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. |
GET /apps.uninstall
/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.
| 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 |
GET /apps.event.authorizations.list
/apps.permissions.info
Returns list of permissions this app has on a team.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | query | optional | string | Authentication token. Requires scope: `none` |
GET /apps.permissions.info
/apps.permissions.request
Allows an app to request additional scopes
| 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 |
GET /apps.permissions.request
/apps.permissions.resources.list
Returns list of resource grants this app has on a team.
| 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. |
GET /apps.permissions.resources.list
/apps.permissions.scopes.list
Returns list of scopes this app has on a team.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | query | required | string | Authentication token. Requires scope: `none` |
GET /apps.permissions.scopes.list
/apps.permissions.users.list
Returns list of user grants and corresponding scopes this app has on a team.
| 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. |
GET /apps.permissions.users.list
/apps.permissions.users.request
Enables an app to trigger a permissions modal to grant an app access to a user access scope.
| 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 |
GET /apps.permissions.users.request
/auth.revoke
Revokes a token.
| 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. |
GET /auth.revoke
/auth.test
Checks authentication & identity.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | header | required | string | Authentication token. Requires scope: `none` |
GET /auth.test
/bots.info
Gets information about a bot user.
| 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 |
GET /bots.info
/calls.info
Returns information about a Call.
| 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. |
GET /calls.info
/chat.getPermalink
Retrieve a permalink URL for a specific extant message
| 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 |
GET /chat.getPermalink
/chat.scheduledMessages.list
Returns a list of scheduled messages.
| 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. |
GET /chat.scheduledMessages.list
/conversations.history
Fetches a conversation's history of messages and events.
| 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. |
GET /conversations.history
/conversations.info
Retrieve information about a conversation.
| 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` |
GET /conversations.info
/conversations.list
Lists all channels in a Slack team.
| 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. |
GET /conversations.list
/conversations.members
Retrieve members of a conversation.
| 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. |
GET /conversations.members
/conversations.replies
Retrieve a thread of messages posted to a conversation
| 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. |
GET /conversations.replies
/dialog.open
Open a dialog with a user
| 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. |
GET /dialog.open
/dnd.info
Retrieves a user's current Do Not Disturb status.
| 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) |
GET /dnd.info
/dnd.teamInfo
Retrieves the Do Not Disturb status for up to 50 users on a team.
| 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 |
GET /dnd.teamInfo
/emoji.list
Lists custom emoji for a team.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | query | required | string | Authentication token. Requires scope: `emoji:read` |
GET /emoji.list
/files.info
Gets information about a file.
| 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. |
GET /files.info
/files.list
List for a team, in a channel, or from a user with applied filters.
| 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. |
GET /files.list
/files.remote.info
Retrieve information about a remote file added to Slack
| 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. |
GET /files.remote.info
/files.remote.list
Retrieve information about a remote file added to Slack
| 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. |
GET /files.remote.list
/files.remote.share
Share a remote file into a channel.
| 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. |
GET /files.remote.share
/migration.exchange
For Enterprise Grid workspaces, map local user IDs to global user IDs
| 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`. |
GET /migration.exchange
/oauth.access
Exchanges a temporary OAuth verifier code for an access token.
| 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). |
GET /oauth.access
/oauth.token
Exchanges a temporary OAuth verifier code for a workspace token.
| 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. |
GET /oauth.token
/oauth.v2.access
Exchanges a temporary OAuth verifier code for an access token.
| 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). |
GET /oauth.v2.access
/pins.list
Lists items pinned to a channel.
| 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. |
GET /pins.list
/reactions.get
Gets reactions for an item.
| 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. |
GET /reactions.get
/reactions.list
Lists reactions made by a user.
| 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. |
GET /reactions.list
/reminders.info
Gets information about a reminder.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | query | optional | string | Authentication token. Requires scope: `reminders:read` |
| reminder | query | optional | string | The ID of the reminder |
GET /reminders.info
/reminders.list
Lists all reminders created by or for a given user.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | query | optional | string | Authentication token. Requires scope: `reminders:read` |
GET /reminders.list
/rtm.connect
Starts a Real Time Messaging session.
| 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). |
GET /rtm.connect
/search.messages
Searches for messages matching a query.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | query | required | string | Authentication token. Requires scope: `search:read` |
| count | query | optional | integer | Pass the number of results you want per "page". Maximum of `100`. |
| highlight | query | optional | boolean | Pass a value of `true` to enable query highlight markers (see below). |
| page | query | optional | integer | |
| query | query | required | string | Search query. |
| sort | query | optional | string | Return matches sorted by either `score` or `timestamp`. |
| sort_dir | query | optional | string | Change sort direction to ascending (`asc`) or descending (`desc`). |
GET /search.messages
/stars.list
Lists stars for a user.
| 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. |
GET /stars.list
/team.accessLogs
Gets the access logs for the current team.
| 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 |
GET /team.accessLogs
/team.billableInfo
Gets billable users information for the current team.
| 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. |
GET /team.billableInfo
/team.info
Gets information about the current team.
| 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 |
GET /team.info
/team.integrationLogs
Gets the integration logs for the current team.
| 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. |
GET /team.integrationLogs
/team.profile.get
Retrieve a team's profile.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | query | required | string | Authentication token. Requires scope: `users.profile:read` |
| visibility | query | optional | string | Filter by visibility. |
GET /team.profile.get
/usergroups.list
List all User Groups for a team
| 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. |
GET /usergroups.list
/usergroups.users.list
List all users in a User Group
| 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. |
GET /usergroups.users.list
/users.conversations
List conversations the calling user may access.
| 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. |
GET /users.conversations
/users.getPresence
Gets user presence information.
| 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. |
GET /users.getPresence
/users.identity
Get a user's identity.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | query | optional | string | Authentication token. Requires scope: `identity.basic` |
GET /users.identity
/users.info
Gets information about a user.
| 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 |
GET /users.info
/users.list
Lists all users in a Slack team.
| 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` |
GET /users.list
/users.lookupByEmail
Find a user with an email address.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | query | required | string | Authentication token. Requires scope: `users:read.email` |
| query | required | string | An email address belonging to a user in the workspace |
GET /users.lookupByEmail
/users.profile.get
Retrieves a user's profile information.
| 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 |
GET /users.profile.get
/views.open
Open a view for a user.
| 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. |
GET /views.open
/views.publish
Publish a static view for a User.
| 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. |
GET /views.publish
/views.push
Push a view onto the stack of a root view.
| 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. |
GET /views.push
/views.update
Update an existing view.
| 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. |
GET /views.update
/workflows.stepCompleted
Indicate that an app's step in a workflow completed execution.
| 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. |
GET /workflows.stepCompleted
/workflows.stepFailed
Indicate that an app's step in a workflow failed to execute.
| 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. |
GET /workflows.stepFailed
/workflows.updateStep
Update the configuration for a workflow extension step.
| 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. |
GET /workflows.updateStep
blocks
{
"type": "array",
"items": {
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"type": "string"
}
},
"additionalProperties": true
},
"title": "Block Kit blocks",
"description": "This is a very loose definition, in the future, we'll populate this with deeper schema in this definition namespace."
}
defs_app_id
{
"type": "string",
"title": "App ID",
"pattern": "^A[A-Z0-9]{1,}$"
}
defs_bot_id
{
"type": "string",
"title": "Bot User ID",
"pattern": "^B[A-Z0-9]{8,}$"
}
defs_channel
{
"type": "string",
"title": "Channel-like conversation ID",
"pattern": "^[CGD][A-Z0-9]{8,}$"
}
defs_channel_id
{
"type": "string",
"title": "Channel ID",
"pattern": "^[C][A-Z0-9]{2,}$"
}
defs_channel_name
{
"type": "string",
"title": "Name of a channel"
}
defs_comment_id
{
"type": "string",
"title": "File Comment ID",
"pattern": "^Fc[A-Z0-9]{8,}$"
}
defs_dm_id
{
"type": "string",
"title": "Direct Message Channel ID",
"pattern": "^[D][A-Z0-9]{8,}$"
}
defs_enterprise_id
{
"type": "string",
"title": "Enterprise ID",
"pattern": "^[E][A-Z0-9]{8,}$"
}
defs_enterprise_name
{
"type": "string",
"title": "Name of the enterprise org"
}
defs_enterprise_user_id
{
"type": "string",
"title": "Enterprise User ID",
"pattern": "^[WU][A-Z0-9]{8,}$"
}
defs_file_id
{
"type": "string",
"title": "File ID",
"pattern": "^[F][A-Z0-9]{8,}$"
}
defs_group_id
{
"type": "string",
"title": "Private Channel ID",
"pattern": "^[G][A-Z0-9]{8,}$"
}
defs_ok_false
{
"enum": [
false
],
"type": "boolean",
"title": "default failure response"
}
defs_ok_true
{
"enum": [
true
],
"type": "boolean",
"title": "default success response"
}
defs_optional_app_id
{
"type": "string",
"title": "App ID or empty string",
"pattern": "^(A[A-Z0-9]{1,})?$"
}
defs_pinned_info
{
"type": "object",
"title": "Info for a pinned item",
"additionalProperties": false
}
defs_reminder_id
{
"type": "string",
"title": "Reminder ID",
"pattern": "^Rm[A-Z0-9]{8,}$"
}
defs_subteam_id
{
"type": "string",
"title": "Subteam ID",
"pattern": "^S[A-Z0-9]{2,}$"
}
defs_team
{
"type": "string",
"title": "Team ID",
"pattern": "^[T][A-Z0-9]{2,}$"
}
defs_topic_purpose_creator
{
"type": "string",
"title": "User ID or empty string, used for topic and purpose creation",
"pattern": "^[UW][A-Z0-9]{8,}$|^$"
}
defs_ts
{
"type": "string",
"title": "Timestamp in format 0123456789.012345",
"pattern": "^\\d{10}\\.\\d{6}$"
}
defs_user_id
{
"type": "string",
"title": "User ID",
"pattern": "^[UW][A-Z0-9]{2,}$"
}
defs_workspace_id
{
"type": "string",
"title": "Team or Enterprise ID",
"pattern": "^[TE][A-Z0-9]{8,}$"
}
objs_bot_profile
{
"type": "object",
"title": "Bot Profile Object",
"required": [
"id",
"deleted",
"name",
"updated",
"app_id",
"icons",
"team_id"
],
"properties": {
"id": {
"$ref": "#/definitions/defs_bot_id"
},
"name": {
"type": "string"
},
"icons": {
"type": "object",
"required": [
"image_36",
"image_48",
"image_72"
],
"properties": {
"image_36": {
"type": "string",
"format": "uri"
},
"image_48": {
"type": "string",
"format": "uri"
},
"image_72": {
"type": "string",
"format": "uri"
}
},
"additionalProperties": false
},
"app_id": {
"$ref": "#/definitions/defs_app_id"
},
"deleted": {
"type": "boolean"
},
"team_id": {
"$ref": "#/definitions/defs_team"
},
"updated": {
"type": "integer"
}
},
"additionalProperties": false
}
objs_channel
{
"type": "object",
"title": "Channel Object",
"required": [
"id",
"name",
"created",
"creator",
"is_channel",
"is_org_shared",
"is_private",
"is_mpim",
"is_shared",
"name_normalized",
"members",
"topic",
"purpose"
],
"properties": {
"id": {
"$ref": "#/definitions/defs_channel_id"
},
"name": {
"type": "string"
},
"topic": {
"type": "object",
"required": [
"value",
"creator",
"last_set"
],
"properties": {
"value": {
"type": "string"
},
"creator": {
"$ref": "#/definitions/defs_topic_purpose_creator"
},
"last_set": {
"type": "integer"
}
},
"additionalProperties": false
},
"latest": {
"items": [
{
"$ref": "#/definitions/objs_message"
},
{
"type": "null"
}
]
},
"created": {
"type": "integer"
},
"creator": {
"$ref": "#/definitions/defs_user_id"
},
"is_mpim": {
"type": "boolean"
},
"members": {
"type": "array",
"items": {
"$ref": "#/definitions/defs_user_id"
},
"minItems": 0,
"uniqueItems": true
},
"purpose": {
"type": "object",
"required": [
"value",
"creator",
"last_set"
],
"properties": {
"value": {
"type": "string"
},
"creator": {
"$ref": "#/definitions/defs_topic_purpose_creator"
},
"last_set": {
"type": "integer"
}
},
"additionalProperties": false
},
"is_moved": {
"type": "integer"
},
"priority": {
"type": "number"
},
"unlinked": {
"type": "integer",
"title": "Field to determine whether a channel has ever been shared/disconnected in the past"
},
"is_frozen": {
"type": "boolean"
},
"is_member": {
"type": "boolean"
},
"is_shared": {
"type": "boolean"
},
"last_read": {
"$ref": "#/definitions/defs_ts"
},
"is_channel": {
"type": "boolean"
},
"is_general": {
"type": "boolean"
},
"is_private": {
"type": "boolean"
},
"is_archived": {
"type": "boolean"
},
"num_members": {
"type": "integer"
},
"is_read_only": {
"type": "boolean"
},
"unread_count": {
"type": "integer"
},
"accepted_user": {
"$ref": "#/definitions/defs_user_id"
},
"is_org_shared": {
"type": "boolean"
},
"is_thread_only": {
"type": "boolean"
},
"pending_shared": {
"type": "array",
"items": {
"$ref": "#/definitions/defs_team"
},
"minItems": 0,
"uniqueItems": true
},
"previous_names": {
"type": "array",
"items": {
"$ref": "#/definitions/defs_channel_name"
},
"minItems": 0,
"uniqueItems": true
},
"name_normalized": {
"type": "string"
},
"is_non_threadable": {
"type": "boolean"
},
"unread_count_display": {
"type": "integer"
},
"is_pending_ext_shared": {
"type": "boolean"
}
},
"additionalProperties": false
}
objs_comment
{
"type": "object",
"title": "File Comment Object",
"required": [
"id",
"created",
"timestamp",
"user",
"is_intro",
"comment"
],
"properties": {
"id": {
"$ref": "#/definitions/defs_comment_id"
},
"user": {
"$ref": "#/definitions/defs_user_id"
},
"comment": {
"type": "string"
},
"created": {
"type": "integer"
},
"is_intro": {
"type": "boolean"
},
"num_stars": {
"type": "integer"
},
"pinned_to": {
"type": "array",
"items": {
"$ref": "#/definitions/defs_channel"
}
},
"reactions": {
"type": "array",
"items": {
"$ref": "#/definitions/objs_reaction"
}
},
"timestamp": {
"type": "integer"
},
"is_starred": {
"type": "boolean"
},
"pinned_info": {
"$ref": "#/definitions/defs_pinned_info"
}
},
"additionalProperties": false
}
objs_comments
{
"type": "array",
"items": {},
"title": "file comments object"
}
objs_conversation
{
"items": [
{
"type": "object",
"title": "Conversation object",
"required": [
"id",
"name",
"created",
"creator",
"is_archived",
"is_channel",
"is_general",
"is_mpim",
"is_group",
"is_org_shared",
"is_im",
"is_shared",
"is_private",
"name_normalized",
"topic",
"purpose"
],
"properties": {
"id": {
"$ref": "#/definitions/defs_channel"
},
"name": {
"type": "string"
},
"user": {
"$ref": "#/definitions/defs_user_id"
},
"is_im": {
"type": "boolean"
},
"topic": {
"type": "object",
"required": [
"value",
"creator",
"last_set"
],
"properties": {
"value": {
"type": "string"
},
"creator": {
"$ref": "#/definitions/defs_topic_purpose_creator"
},
"last_set": {
"type": "integer"
}
},
"additionalProperties": false
},
"latest": {
"items": [
{
"$ref": "#/definitions/objs_message"
},
{
"type": "null"
}
]
},
"shares": {
"type": "array",
"items": {
"type": "object",
"required": [
"team",
"user",
"is_active"
],
"properties": {
"team": {
"$ref": "#/definitions/objs_team"
},
"user": {
"$ref": "#/definitions/defs_user_id"
},
"is_active": {
"type": "boolean"
},
"accepted_user": {
"$ref": "#/definitions/defs_user_id"
}
},
"additionalProperties": false
},
"minItems": 0,
"uniqueItems": true
},
"created": {
"type": "integer"
},
"creator": {
"$ref": "#/definitions/defs_user_id"
},
"is_mpim": {
"enum": [
false
],
"type": "boolean"
},
"is_open": {
"type": "boolean"
},
"members": {
"type": "array",
"items": {
"$ref": "#/definitions/defs_user_id"
},
"minItems": 0,
"uniqueItems": true
},
"purpose": {
"type": "object",
"required": [
"value",
"creator",
"last_set"
],
"properties": {
"value": {
"type": "string"
},
"creator": {
"$ref": "#/definitions/defs_topic_purpose_creator"
},
"last_set": {
"type": "integer"
}
},
"additionalProperties": false
},
"version": {
"type": "integer"
},
"has_pins": {
"type": "boolean"
},
"is_group": {
"type": "boolean"
},
"is_moved": {
"type": "integer"
},
"priority": {
"type": "number"
},
"unlinked": {
"type": "integer",
"title": "Field to determine whether a channel has ever been shared/disconnected in the past"
},
"use_case": {
"type": "string"
},
"is_frozen": {
"type": "boolean"
},
"is_member": {
"type": "boolean"
},
"is_shared": {
"type": "boolean"
},
"last_read": {
"$ref": "#/definitions/defs_ts"
},
"pin_count": {
"type": "integer"
},
"is_channel": {
"type": "boolean"
},
"is_general": {
"type": "boolean"
},
"is_private": {
"type": "boolean"
},
"is_starred": {
"type": "boolean"
},
"is_archived": {
"type": "boolean"
},
"num_members": {
"type": "integer"
},
"is_read_only": {
"type": "boolean"
},
"unread_count": {
"type": "integer"
},
"accepted_user": {
"$ref": "#/definitions/defs_user_id"
},
"enterprise_id": {
"$ref": "#/definitions/defs_enterprise_id"
},
"is_ext_shared": {
"type": "boolean"
},
"is_org_shared": {
"type": "boolean"
},
"display_counts": {
"type": "object",
"required": [
"display_counts",
"guest_counts"
],
"properties": {
"guest_counts": {
"type": "integer"
},
"display_counts": {
"type": "integer"
}
},
"additionalProperties": false
},
"is_org_default": {
"type": "boolean"
},
"is_thread_only": {
"type": "boolean"
},
"pending_shared": {
"type": "array",
"items": {
"$ref": "#/definitions/defs_team"
},
"minItems": 0,
"uniqueItems": true
},
"previous_names": {
"type": "array",
"items": {
"$ref": "#/definitions/defs_channel_name"
},
"minItems": 0,
"uniqueItems": true
},
"timezone_count": {
"type": "integer"
},
"name_normalized": {
"type": "string"
},
"shared_team_ids": {
"type": "array",
"items": {
"$ref": "#/definitions/defs_team"
},
"minItems": 0,
"uniqueItems": true
},
"is_global_shared": {
"type": "boolean"
},
"is_org_mandatory": {
"type": "boolean"
},
"internal_team_ids": {
"type": "array",
"items": {
"$ref": "#/definitions/defs_team"
},
"minItems": 0,
"uniqueItems": true
},
"is_non_threadable": {
"type": "boolean"
},
"connected_team_ids": {
"type": "array",
"items": {
"$ref": "#/definitions/defs_workspace_id"
},
"minItems": 0,
"uniqueItems": true
},
"parent_conversation": {
"items": [
{
"$ref": "#/definitions/defs_channel"
},
{
"type": "null"
}
]
},
"conversation_host_id": {
"$ref": "#/definitions/defs_workspace_id"
},
"unread_count_display": {
"type": "integer"
},
"is_pending_ext_shared": {
"type": "boolean"
},
"pending_connected_team_ids": {
"type": "array",
"items": {
"$ref": "#/definitions/defs_team"
},
"minItems": 0,
"uniqueItems": true
}
},
"additionalProperties": false
},
{
"type": "object",
"title": "Conversation MPIM Object",
"required": [
"id",
"name",
"created",
"creator",
"is_archived",
"is_channel",
"is_general",
"is_mpim",
"is_group",
"is_org_shared",
"is_im",
"is_shared",
"is_private",
"name_normalized",
"topic",
"purpose"
],
"properties": {
"id": {
"$ref": "#/definitions/defs_channel"
},
"name": {
"type": "string"
},
"user": {
"$ref": "#/definitions/defs_user_id"
},
"is_im": {
"type": "boolean"
},
"topic": {
"type": "object",
"required": [
"value",
"creator",
"last_set"
],
"properties": {
"value": {
"type": "string"
},
"creator": {
"$ref": "#/definitions/defs_topic_purpose_creator"
},
"last_set": {
"type": "integer"
}
},
"additionalProperties": false
},
"latest": {
"items": [
{
"$ref": "#/definitions/objs_message"
},
{
"type": "null"
}
]
},
"shares": {
"type": "array",
"items": {
"type": "object",
"required": [
"team",
"user",
"is_active"
],
"properties": {
"team": {
"$ref": "#/definitions/objs_team"
},
"user": {
"$ref": "#/definitions/defs_user_id"
},
"is_active": {
"type": "boolean"
},
"accepted_user": {
"$ref": "#/definitions/defs_user_id"
}
},
"additionalProperties": false
},
"minItems": 0,
"uniqueItems": true
},
"created": {
"type": "integer"
},
"creator": {
"$ref": "#/definitions/defs_user_id"
},
"is_mpim": {
"enum": [
true
],
"type": "boolean"
},
"is_open": {
"type": "boolean"
},
"members": {
"type": "array",
"items": {
"$ref": "#/definitions/defs_user_id"
},
"minItems": 0,
"uniqueItems": true
},
"purpose": {
"type": "object",
"required": [
"value",
"creator",
"last_set"
],
"properties": {
"value": {
"type": "string"
},
"creator": {
"$ref": "#/definitions/defs_topic_purpose_creator"
},
"last_set": {
"type": "integer"
}
},
"additionalProperties": false
},
"version": {
"type": "integer"
},
"is_group": {
"type": "boolean"
},
"is_moved": {
"type": "integer"
},
"priority": {
"type": "number"
},
"unlinked": {
"type": "integer",
"title": "Field to determine whether a channel has ever been shared/disconnected in the past"
},
"is_frozen": {
"type": "boolean"
},
"is_member": {
"type": "boolean"
},
"is_shared": {
"type": "boolean"
},
"last_read": {
"$ref": "#/definitions/defs_ts"
},
"pin_count": {
"type": "integer"
},
"is_channel": {
"type": "boolean"
},
"is_general": {
"type": "boolean"
},
"is_private": {
"type": "boolean"
},
"is_starred": {
"type": "boolean"
},
"is_archived": {
"type": "boolean"
},
"num_members": {
"type": "integer"
},
"is_read_only": {
"type": "boolean"
},
"unread_count": {
"type": "integer"
},
"accepted_user": {
"$ref": "#/definitions/defs_user_id"
},
"is_ext_shared": {
"type": "boolean"
},
"is_org_shared": {
"type": "boolean"
},
"display_counts": {
"type": "object",
"required": [
"display_counts",
"guest_counts"
],
"properties": {
"guest_counts": {
"type": "integer"
},
"display_counts": {
"type": "integer"
}
},
"additionalProperties": false
},
"is_thread_only": {
"type": "boolean"
},
"pending_shared": {
"type": "array",
"items": {
"$ref": "#/definitions/defs_team"
},
"minItems": 0,
"uniqueItems": true
},
"previous_names": {
"type": "array",
"items": {
"$ref": "#/definitions/defs_channel_name"
},
"minItems": 0,
"uniqueItems": true
},
"timezone_count": {
"type": "integer"
},
"name_normalized": {
"type": "string"
},
"shared_team_ids": {
"type": "array",
"items": {
"$ref": "#/definitions/defs_team"
},
"minItems": 0,
"uniqueItems": true
},
"internal_team_ids": {
"type": "array",
"items": {
"$ref": "#/definitions/defs_team"
},
"minItems": 0,
"uniqueItems": true
},
"is_non_threadable": {
"type": "boolean"
},
"connected_team_ids": {
"type": "array",
"items": {
"$ref": "#/definitions/defs_team"
},
"minItems": 0,
"uniqueItems": true
},
"parent_conversation": {
"items": [
{
"$ref": "#/definitions/defs_channel"
},
{
"type": "null"
}
]
},
"conversation_host_id": {
"$ref": "#/definitions/defs_workspace_id"
},
"unread_count_display": {
"type": "integer"
},
"is_pending_ext_shared": {
"type": "boolean"
},
"pending_connected_team_ids": {
"type": "array",
"items": {
"$ref": "#/definitions/defs_team"
},
"minItems": 0,
"uniqueItems": true
}
},
"additionalProperties": false
},
{
"type": "object",
"title": "Conversation IM Channel Object from conversations.* methods",
"required": [
"id",
"created",
"is_im",
"is_org_shared",
"user",
"priority"
],
"properties": {
"id": {
"$ref": "#/definitions/defs_dm_id"
},
"user": {
"$ref": "#/definitions/defs_user_id"
},
"is_im": {
"type": "boolean"
},
"latest": {
"items": [
{
"$ref": "#/definitions/objs_message"
},
{
"type": "null"
}
]
},
"shares": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"name",
"team",
"date_create",
"is_active"
],
"properties": {
"id": {
"$ref": "#/definitions/defs_team"
},
"name": {
"type": "string"
},
"team": {
"$ref": "#/definitions/objs_team"
},
"is_active": {
"type": "boolean"
},
"date_create": {
"type": "integer"
}
},
"additionalProperties": false
},
"minItems": 0,
"uniqueItems": true
},
"created": {
"type": "integer"
},
"is_open": {
"type": "boolean"
},
"version": {
"type": "integer"
},
"has_pins": {
"type": "boolean"
},
"priority": {
"type": "number"
},
"is_frozen": {
"type": "boolean"
},
"is_shared": {
"type": "boolean"
},
"last_read": {
"$ref": "#/definitions/defs_ts"
},
"pin_count": {
"type": "integer"
},
"is_starred": {
"type": "boolean"
},
"is_archived": {
"type": "boolean"
},
"unread_count": {
"type": "integer"
},
"is_ext_shared": {
"type": "boolean"
},
"is_org_shared": {
"type": "boolean"
},
"is_user_deleted": {
"type": "boolean"
},
"parent_conversation": {
"items": [
{
"$ref": "#/definitions/defs_channel"
},
{
"type": "null"
}
]
},
"unread_count_display": {
"type": "integer"
}
},
"additionalProperties": false
}
]
}
objs_enterprise_user
{
"type": "object",
"required": [
"id",
"enterprise_id",
"enterprise_name",
"is_admin",
"is_owner",
"teams"
],
"properties": {
"id": {
"$ref": "#/definitions/defs_enterprise_user_id"
},
"teams": {
"type": "array",
"items": {
"$ref": "#/definitions/defs_team"
},
"uniqueItems": true
},
"is_admin": {
"type": "boolean"
},
"is_owner": {
"type": "boolean"
},
"enterprise_id": {
"$ref": "#/definitions/defs_enterprise_id"
},
"enterprise_name": {
"$ref": "#/definitions/defs_enterprise_name"
}
},
"additionalProperties": false
}
objs_external_org_migrations
{
"type": "object",
"title": "External Org Migrations",
"required": [
"date_updated",
"current"
],
"properties": {
"current": {
"type": "array",
"items": {
"type": "object",
"required": [
"team_id",
"date_started"
],
"properties": {
"team_id": {
"type": "string"
},
"date_started": {
"type": "integer"
}
}
}
},
"date_updated": {
"type": "integer"
}
}
}
objs_file
{
"type": "object",
"title": "file object",
"properties": {
"id": {
"$ref": "#/definitions/defs_file_id"
},
"ims": {
"type": "array",
"items": {
"$ref": "#/definitions/defs_dm_id"
},
"uniqueItems": true
},
"mode": {
"type": "string"
},
"name": {
"type": "string"
},
"size": {
"type": "integer"
},
"user": {
"type": "string"
},
"state": {
"type": "string"
},
"title": {
"type": "string"
},
"editor": {
"$ref": "#/definitions/defs_user_id"
},
"groups": {
"type": "array",
"items": {
"$ref": "#/definitions/defs_group_id"
},
"uniqueItems": true
},
"shares": {
"type": "object",
"properties": {
"public": {
"additionalProperties": false
},
"private": {
"additionalProperties": false
}
},
"additionalProperties": false
},
"created": {
"type": "integer"
},
"preview": {
"type": "string"
},
"updated": {
"type": "integer"
},
"channels": {
"type": "array",
"items": {
"$ref": "#/definitions/defs_channel_id"
},
"uniqueItems": true
},
"editable": {
"type": "boolean"
},
"filetype": {
"type": "string"
},
"mimetype": {
"type": "string"
},
"thumb_64": {
"type": "string",
"format": "uri"
},
"thumb_80": {
"type": "string",
"format": "uri"
},
"username": {
"type": "string"
},
"is_public": {
"type": "boolean"
},
"num_stars": {
"type": "integer"
},
"permalink": {
"type": "string",
"format": "uri"
},
"pinned_to": {
"type": "array",
"items": {
"$ref": "#/definitions/defs_channel"
}
},
"reactions": {
"type": "array",
"items": {
"$ref": "#/definitions/objs_reaction"
}
},
"thumb_160": {
"type": "string",
"format": "uri"
},
"thumb_360": {
"type": "string",
"format": "uri"
},
"thumb_480": {
"type": "string",
"format": "uri"
},
"thumb_720": {
"type": "string",
"format": "uri"
},
"thumb_800": {
"type": "string",
"format": "uri"
},
"thumb_960": {
"type": "string",
"format": "uri"
},
"timestamp": {
"type": "integer"
},
"user_team": {
"$ref": "#/definitions/defs_team"
},
"is_starred": {
"type": "boolean"
},
"original_h": {
"type": "integer"
},
"original_w": {
"type": "integer"
},
"thumb_1024": {
"type": "string",
"format": "uri"
},
"thumb_tiny": {
"type": "string"
},
"date_delete": {
"type": "integer"
},
"external_id": {
"type": "string"
},
"is_external": {
"type": "boolean"
},
"last_editor": {
"$ref": "#/definitions/defs_user_id"
},
"pinned_info": {
"$ref": "#/definitions/defs_pinned_info"
},
"pretty_type": {
"type": "string"
},
"source_team": {
"$ref": "#/definitions/defs_team"
},
"thumb_360_h": {
"type": "integer"
},
"thumb_360_w": {
"type": "integer"
},
"thumb_480_h": {
"type": "integer"
},
"thumb_480_w": {
"type": "integer"
},
"thumb_720_h": {
"type": "integer"
},
"thumb_720_w": {
"type": "integer"
},
"thumb_800_h": {
"type": "integer"
},
"thumb_800_w": {
"type": "integer"
},
"thumb_960_h": {
"type": "integer"
},
"thumb_960_w": {
"type": "integer"
},
"url_private": {
"type": "string",
"format": "uri"
},
"external_url": {
"type": "string",
"format": "uri"
},
"thumb_1024_h": {
"type": "integer"
},
"thumb_1024_w": {
"type": "integer"
},
"external_type": {
"type": "string"
},
"is_tombstoned": {
"type": "boolean"
},
"comments_count": {
"type": "integer"
},
"display_as_bot": {
"type": "boolean"
},
"has_rich_preview": {
"type": "boolean"
},
"permalink_public": {
"type": "string",
"format": "uri"
},
"public_url_shared": {
"type": "boolean"
},
"non_owner_editable": {
"type": "boolean"
},
"image_exif_rotation": {
"type": "integer"
},
"url_private_download": {
"type": "string",
"format": "uri"
}
},
"additionalProperties": false
}
objs_icon
{
"type": "object",
"properties": {
"image_34": {
"type": "string"
},
"image_44": {
"type": "string"
},
"image_68": {
"type": "string"
},
"image_88": {
"type": "string"
},
"image_102": {
"type": "string"
},
"image_132": {
"type": "string"
},
"image_230": {
"type": "string"
},
"image_default": {
"type": "boolean"
}
}
}
objs_message
{
"type": "object",
"title": "Message object",
"required": [
"text",
"type",
"ts"
],
"properties": {
"ts": {
"$ref": "#/definitions/defs_ts"
},
"file": {
"$ref": "#/definitions/objs_file"
},
"name": {
"type": "string"
},
"team": {
"$ref": "#/definitions/defs_workspace_id"
},
"text": {
"type": "string"
},
"type": {
"type": "string"
},
"user": {
"$ref": "#/definitions/defs_user_id"
},
"files": {
"type": "array",
"items": {
"$ref": "#/definitions/objs_file"
},
"minItems": 1,
"uniqueItems": true
},
"icons": {
"type": "object",
"properties": {
"emoji": {
"type": "string"
},
"image_64": {
"type": "string",
"format": "uri"
}
},
"additionalProperties": false
},
"topic": {
"type": "string"
},
"blocks": {
"$ref": "#/definitions/blocks"
},
"bot_id": {
"items": [
{
"$ref": "#/definitions/defs_bot_id"
},
{
"type": "null",
"title": "Nil bot_id set when display_as_bot is false"
}
]
},
"upload": {
"type": "boolean"
},
"comment": {
"$ref": "#/definitions/objs_comment"
},
"inviter": {
"$ref": "#/definitions/defs_user_id"
},
"purpose": {
"type": "string"
},
"subtype": {
"type": "string"
},
"is_intro": {
"type": "boolean"
},
"old_name": {
"type": "string"
},
"username": {
"type": "string"
},
"last_read": {
"$ref": "#/definitions/defs_ts"
},
"permalink": {
"type": "string",
"format": "uri"
},
"pinned_to": {
"type": "array",
"items": {
"$ref": "#/definitions/defs_channel"
}
},
"reactions": {
"type": "array",
"items": {
"$ref": "#/definitions/objs_reaction"
}
},
"thread_ts": {
"$ref": "#/definitions/defs_ts"
},
"user_team": {
"$ref": "#/definitions/defs_workspace_id"
},
"is_starred": {
"type": "boolean"
},
"subscribed": {
"type": "boolean"
},
"attachments": {
"type": "array",
"items": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer"
},
"fallback": {
"type": "string"
},
"image_url": {
"type": "string"
},
"image_bytes": {
"type": "integer"
},
"image_width": {
"type": "integer"
},
"image_height": {
"type": "integer"
}
},
"additionalProperties": false
},
"minItems": 1,
"uniqueItems": true
},
"bot_profile": {
"$ref": "#/definitions/objs_bot_profile"
},
"reply_count": {
"type": "integer"
},
"reply_users": {
"type": "array",
"items": {
"$ref": "#/definitions/defs_user_id"
},
"minItems": 1,
"uniqueItems": true
},
"source_team": {
"$ref": "#/definitions/defs_workspace_id"
},
"latest_reply": {
"$ref": "#/definitions/defs_ts"
},
"unread_count": {
"type": "integer"
},
"user_profile": {
"$ref": "#/definitions/objs_user_profile_short"
},
"client_msg_id": {
"type": "string"
},
"display_as_bot": {
"type": "boolean"
},
"parent_user_id": {
"$ref": "#/definitions/defs_user_id"
},
"reply_users_count": {
"type": "integer"
},
"is_delayed_message": {
"type": "boolean"
}
},
"additionalProperties": false
}
objs_paging
{
"type": "object",
"title": "paging object",
"required": [
"page",
"total"
],
"properties": {
"page": {
"type": "integer"
},
"count": {
"type": "integer"
},
"pages": {
"type": "integer"
},
"spill": {
"type": "integer"
},
"total": {
"type": "integer"
},
"per_page": {
"type": "integer"
}
},
"additionalProperties": false
}
objs_primary_owner
{
"type": "object",
"required": [
"id",
"email"
],
"properties": {
"id": {
"type": "string"
},
"email": {
"type": "string"
}
}
}
objs_reaction
{
"type": "object",
"title": "Reaction object",
"required": [
"name",
"users",
"count"
],
"properties": {
"name": {
"type": "string"
},
"count": {
"type": "integer"
},
"users": {
"type": "array",
"items": {
"$ref": "#/definitions/defs_user_id"
}
}
},
"additionalProperties": true
}
objs_reminder
{
"type": "object",
"required": [
"id",
"creator",
"user",
"text",
"recurring"
],
"properties": {
"id": {
"$ref": "#/definitions/defs_reminder_id"
},
"text": {
"type": "string"
},
"time": {
"type": "integer"
},
"user": {
"$ref": "#/definitions/defs_user_id"
},
"creator": {
"$ref": "#/definitions/defs_user_id"
},
"recurring": {
"type": "boolean"
},
"complete_ts": {
"type": "integer"
}
},
"additionalProperties": false
}
objs_resources
{
"type": "object",
"title": "resources in info from apps.permissions.info",
"required": [
"ids"
],
"properties": {
"ids": {
"type": "array",
"items": {
"items": [
{
"$ref": "#/definitions/defs_channel"
},
{
"$ref": "#/definitions/defs_team"
}
]
}
},
"wildcard": {
"type": "boolean"
},
"excluded_ids": {
"type": "array",
"items": {
"items": [
{
"$ref": "#/definitions/defs_channel"
},
{
"$ref": "#/definitions/defs_team"
}
]
}
}
},
"additionalProperties": false
}
objs_response_metadata
{
"items": [
{
"type": "object",
"title": "new paging style",
"required": [
"next_cursor"
],
"properties": {
"next_cursor": {
"type": "string"
}
},
"additionalProperties": false
},
{
"type": "object",
"title": "deprecation_warning",
"required": [
"messages",
"warnings"
],
"properties": {
"messages": {
"type": "array",
"items": {
"type": "string"
}
},
"warnings": {
"type": "array",
"items": {
"enum": [
"method_deprecated"
],
"type": "string"
}
}
},
"additionalProperties": false
},
{
"type": "object",
"title": "deprecation_warning and paging style together",
"required": [
"messages",
"warnings",
"next_cursor"
],
"properties": {
"messages": {
"type": "array",
"items": {
"type": "string"
}
},
"warnings": {
"type": "array",
"items": {
"enum": [
"method_deprecated"
],
"type": "string"
}
},
"next_cursor": {
"type": "string"
}
},
"additionalProperties": false
}
]
}
objs_scopes
{
"type": "array",
"items": {
"type": "string",
"title": "Named OAuth scopes",
"x-examples": [
"chat:write",
"im:history",
"im:read"
]
}
}
objs_subteam
{
"type": "object",
"title": "Subteam/Usergroup Object",
"required": [
"id",
"team_id",
"is_usergroup",
"is_subteam",
"name",
"description",
"handle",
"is_external",
"date_create",
"date_update",
"date_delete",
"auto_type",
"auto_provision",
"enterprise_subteam_id",
"created_by",
"updated_by",
"deleted_by",
"prefs"
],
"properties": {
"id": {
"$ref": "#/definitions/defs_subteam_id"
},
"name": {
"type": "string"
},
"prefs": {
"type": "object",
"required": [
"channels",
"groups"
],
"properties": {
"groups": {
"type": "array",
"items": {
"$ref": "#/definitions/defs_group_id"
}
},
"channels": {
"type": "array",
"items": {
"$ref": "#/definitions/defs_channel_id"
}
}
},
"additionalProperties": false
},
"users": {
"type": "array",
"items": {
"$ref": "#/definitions/defs_user_id"
}
},
"handle": {
"type": "string"
},
"team_id": {
"$ref": "#/definitions/defs_team"
},
"auto_type": {
"items": [
{
"type": "null"
},
{
"enum": [
"owner",
"admin"
],
"type": "string"
}
]
},
"created_by": {
"$ref": "#/definitions/defs_user_id"
},
"deleted_by": {
"items": [
{
"type": "null"
},
{
"$ref": "#/definitions/defs_user_id"
}
]
},
"is_subteam": {
"type": "boolean"
},
"updated_by": {
"$ref": "#/definitions/defs_user_id"
},
"user_count": {
"type": "integer"
},
"date_create": {
"type": "integer"
},
"date_delete": {
"type": "integer"
},
"date_update": {
"type": "integer"
},
"description": {
"type": "string"
},
"is_external": {
"type": "boolean"
},
"is_usergroup": {
"type": "boolean"
},
"channel_count": {
"type": "integer"
},
"auto_provision": {
"type": "boolean"
},
"enterprise_subteam_id": {
"type": "string"
}
},
"additionalProperties": false
}
objs_team
{
"type": "object",
"title": "Team Object",
"required": [
"id",
"name",
"domain",
"email_domain",
"icon"
],
"properties": {
"id": {
"$ref": "#/definitions/defs_workspace_id"
},
"icon": {
"$ref": "#/definitions/objs_icon"
},
"name": {
"type": "string"
},
"plan": {
"enum": [
"",
"std",
"plus",
"compliance",
"enterprise"
],
"type": "string"
},
"domain": {
"type": "string"
},
"locale": {
"type": "string"
},
"created": {
"type": "integer"
},
"deleted": {
"type": "boolean"
},
"archived": {
"type": "boolean"
},
"limit_ts": {
"type": "integer"
},
"date_create": {
"type": "integer"
},
"description": {
"type": [
"null",
"string"
]
},
"is_assigned": {
"type": "boolean"
},
"discoverable": {
"items": [
{
"type": "null"
},
{
"type": "string"
}
]
},
"email_domain": {
"type": "string"
},
"pay_prod_cur": {
"type": "string"
},
"sso_provider": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"type": {
"type": "string"
},
"label": {
"type": "string"
}
}
},
"enterprise_id": {
"$ref": "#/definitions/defs_enterprise_id"
},
"is_enterprise": {
"type": "integer"
},
"primary_owner": {
"$ref": "#/definitions/objs_primary_owner"
},
"messages_count": {
"type": "integer"
},
"avatar_base_url": {
"type": "string",
"format": "uri"
},
"enterprise_name": {
"$ref": "#/definitions/defs_enterprise_name"
},
"over_storage_limit": {
"type": "boolean"
},
"msg_edit_window_mins": {
"type": "integer"
},
"has_compliance_export": {
"type": "boolean"
},
"is_over_storage_limit": {
"type": "boolean"
},
"external_org_migrations": {
"$ref": "#/definitions/objs_external_org_migrations"
},
"over_integrations_limit": {
"type": "boolean"
}
},
"additionalProperties": false
}
objs_team_profile_field
{
"type": "object",
"required": [
"id",
"ordering",
"label",
"hint",
"type"
],
"properties": {
"id": {
"type": "string",
"pattern": "^X[a-zA-Z0-9]{9,}$"
},
"hint": {
"type": "string"
},
"type": {
"enum": [
"text",
"date",
"link",
"mailto",
"options_list",
"user"
],
"type": "string"
},
"label": {
"type": "string"
},
"options": {
"items": [
{
"type": "null"
},
{
"$ref": "#/definitions/objs_team_profile_field_option"
}
]
},
"ordering": {
"type": "number"
},
"is_hidden": {
"type": "boolean"
},
"field_name": {
"type": [
"null",
"string"
]
},
"possible_values": {
"type": [
"null",
"array"
],
"items": {
"type": "string"
}
}
},
"additionalProperties": false
}
objs_team_profile_field_option
{
"type": "object",
"properties": {
"is_scim": {
"type": [
"null",
"boolean"
]
},
"is_custom": {
"type": [
"null",
"boolean"
]
},
"is_protected": {
"type": [
"null",
"boolean"
]
},
"is_multiple_entry": {
"type": [
"null",
"boolean"
]
}
},
"additionalProperties": false
}
objs_user
{
"items": [
{
"type": "object",
"required": [
"id",
"name",
"profile",
"is_bot",
"updated",
"is_app_user"
],
"properties": {
"id": {
"$ref": "#/definitions/defs_user_id"
},
"tz": {
"items": [
{
"type": "null"
},
{
"type": "string"
}
]
},
"name": {
"type": "string"
},
"team": {
"$ref": "#/definitions/defs_workspace_id"
},
"color": {
"type": "string",
"pattern": "^[a-fA-F0-9]{6}$"
},
"is_bot": {
"type": "boolean"
},
"locale": {
"type": "string"
},
"deleted": {
"type": "boolean"
},
"has_2fa": {
"type": "boolean"
},
"profile": {
"$ref": "#/definitions/objs_user_profile"
},
"team_id": {
"$ref": "#/definitions/defs_workspace_id"
},
"updated": {
"type": "number"
},
"is_admin": {
"type": "boolean"
},
"is_owner": {
"type": "boolean"
},
"presence": {
"type": "string"
},
"tz_label": {
"type": "string"
},
"real_name": {
"type": "string"
},
"tz_offset": {
"type": "number"
},
"is_app_user": {
"type": "boolean"
},
"is_external": {
"type": "boolean"
},
"is_stranger": {
"type": "boolean"
},
"is_forgotten": {
"type": "boolean"
},
"team_profile": {
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "array",
"items": {
"$ref": "#/definitions/objs_team_profile_field"
},
"minItems": 1,
"uniqueItems": true
}
},
"additionalProperties": false
},
"is_restricted": {
"type": "boolean"
},
"enterprise_user": {
"$ref": "#/definitions/objs_enterprise_user"
},
"is_invited_user": {
"type": "boolean"
},
"two_factor_type": {
"type": "string"
},
"is_primary_owner": {
"type": "boolean"
},
"is_ultra_restricted": {
"type": "boolean"
}
},
"description": "user object for non enterprise type",
"additionalProperties": false
},
{
"type": "object",
"required": [
"id",
"name",
"profile",
"is_bot",
"updated",
"is_app_user"
],
"properties": {
"id": {
"$ref": "#/definitions/defs_user_id"
},
"tz": {
"items": [
{
"type": "null"
},
{
"type": "string"
}
]
},
"name": {
"type": "string"
},
"color": {
"type": "string",
"pattern": "^([a-fA-F0-9]{6})?$",
"description": "refercing to bug: https://jira.tinyspeck.com/browse/EVALUE-1559"
},
"teams": {
"type": "array",
"items": {
"$ref": "#/definitions/defs_workspace_id"
},
"minItems": 1,
"uniqueItems": true
},
"is_bot": {
"type": "boolean"
},
"locale": {
"type": "string"
},
"deleted": {
"type": "boolean"
},
"has_2fa": {
"type": "boolean"
},
"profile": {
"$ref": "#/definitions/objs_user_profile"
},
"team_id": {
"$ref": "#/definitions/defs_workspace_id"
},
"updated": {
"type": "number"
},
"is_admin": {
"type": "boolean"
},
"is_owner": {
"type": "boolean"
},
"presence": {
"type": "string"
},
"tz_label": {
"type": "string"
},
"real_name": {
"type": "string"
},
"tz_offset": {
"type": "number"
},
"is_app_user": {
"type": "boolean"
},
"is_external": {
"type": "boolean"
},
"is_stranger": {
"type": "boolean"
},
"is_forgotten": {
"type": "boolean"
},
"team_profile": {
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "array",
"items": {
"$ref": "#/definitions/objs_team_profile_field"
},
"minItems": 1,
"uniqueItems": true
}
},
"additionalProperties": false
},
"is_restricted": {
"type": "boolean"
},
"enterprise_user": {
"$ref": "#/definitions/objs_enterprise_user"
},
"two_factor_type": {
"type": "string"
},
"is_primary_owner": {
"type": "boolean"
},
"is_ultra_restricted": {
"type": "boolean"
}
},
"description": "enterprise user",
"additionalProperties": false
}
]
}
objs_user_profile
{
"type": "object",
"title": "User profile object",
"required": [
"real_name",
"display_name",
"avatar_hash",
"real_name_normalized",
"display_name_normalized",
"title",
"phone",
"skype",
"status_text",
"status_emoji",
"fields"
],
"properties": {
"name": {
"type": [
"null",
"string"
]
},
"team": {
"$ref": "#/definitions/defs_workspace_id"
},
"email": {
"type": [
"null",
"string"
],
"format": "email"
},
"phone": {
"type": "string"
},
"skype": {
"type": "string"
},
"title": {
"type": "string"
},
"bot_id": {
"$ref": "#/definitions/defs_bot_id"
},
"fields": {
"type": [
"object",
"null",
"array"
],
"items": {
"type": "object"
}
},
"updated": {
"type": "integer"
},
"user_id": {
"type": "string"
},
"image_24": {
"type": [
"null",
"string"
],
"format": "uri"
},
"image_32": {
"type": [
"null",
"string"
],
"format": "uri"
},
"image_48": {
"type": [
"null",
"string"
],
"format": "uri"
},
"image_72": {
"type": [
"null",
"string"
],
"format": "uri"
},
"pronouns": {
"type": "string"
},
"username": {
"type": [
"null",
"string"
]
},
"image_192": {
"type": [
"null",
"string"
],
"format": "uri"
},
"image_512": {
"type": [
"null",
"string"
],
"format": "uri"
},
"last_name": {
"type": [
"null",
"string"
]
},
"real_name": {
"type": "string"
},
"api_app_id": {
"$ref": "#/definitions/defs_optional_app_id"
},
"first_name": {
"type": [
"null",
"string"
]
},
"image_1024": {
"type": [
"null",
"string"
],
"format": "uri"
},
"avatar_hash": {
"type": "string"
},
"is_app_user": {
"type": "boolean"
},
"status_text": {
"type": "string"
},
"display_name": {
"type": "string"
},
"status_emoji": {
"type": "string"
},
"always_active": {
"type": "boolean"
},
"is_restricted": {
"type": [
"null",
"boolean"
]
},
"image_original": {
"type": [
"null",
"string"
],
"format": "uri"
},
"is_custom_image": {
"type": "boolean"
},
"guest_invited_by": {
"type": [
"null",
"string"
]
},
"memberships_count": {
"type": "integer"
},
"status_expiration": {
"type": "integer"
},
"guest_expiration_ts": {
"type": [
"null",
"integer"
]
},
"is_ultra_restricted": {
"type": [
"null",
"boolean"
]
},
"status_default_text": {
"type": "string"
},
"real_name_normalized": {
"type": "string"
},
"status_default_emoji": {
"type": "string"
},
"status_text_canonical": {
"type": [
"null",
"string"
]
},
"last_avatar_image_hash": {
"type": "string"
},
"display_name_normalized": {
"type": "string"
},
"status_default_text_canonical": {
"type": [
"null",
"string"
]
}
},
"additionalProperties": false
}
objs_user_profile_short
{
"type": "object",
"required": [
"avatar_hash",
"image_72",
"first_name",
"real_name",
"display_name",
"team",
"name",
"is_restricted",
"is_ultra_restricted"
],
"properties": {
"name": {
"type": "string"
},
"team": {
"$ref": "#/definitions/defs_workspace_id"
},
"image_72": {
"type": "string",
"format": "uri"
},
"real_name": {
"type": "string"
},
"first_name": {
"type": [
"string",
"null"
]
},
"avatar_hash": {
"type": "string"
},
"display_name": {
"type": "string"
},
"is_restricted": {
"type": "boolean"
},
"is_ultra_restricted": {
"type": "boolean"
},
"real_name_normalized": {
"type": "string"
},
"display_name_normalized": {
"type": "string"
}
},
"additionalProperties": false
}