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

POST /admin.apps.approve

Approve an app for installation on a workspace.

operationId: admin_apps_approve

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `admin.apps:write`
app_id formData optional string The id of the app to approve.
request_id formData optional string The id of the request to approve.
team_id formData optional string

Responses

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

Restrict an app for installation on a workspace.

operationId: admin_apps_restrict

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `admin.apps:write`
app_id formData optional string The id of the app to restrict.
request_id formData optional string The id of the request to restrict.
team_id formData optional string

Responses

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

Admin.conversations 10 endpoints

POST /admin.conversations.archive

Archive a public or private channel.

operationId: admin_conversations_archive

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `admin.conversations:write`
channel_id formData required string The channel to archive.

Responses

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

Convert a public channel to a private channel.

operationId: admin_conversations_convertToPrivate

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `admin.conversations:write`
channel_id formData required string The channel to convert to private.

Responses

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

Create a public or private channel-based conversation.

operationId: admin_conversations_create

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `admin.conversations:write`
name formData required string Name of the public or private channel to create.
description formData optional string Description of the public or private channel to create.
is_private formData required boolean When `true`, creates a private channel instead of a public channel
org_wide formData optional boolean When `true`, the channel will be available org-wide. Note: if the channel is not `org_wide=true`, you must specify a `team_id` for this channel
team_id formData optional string The workspace to create the channel in. Note: this argument is required unless you set `org_wide=true`.

Responses

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

Delete a public or private channel.

operationId: admin_conversations_delete

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `admin.conversations:write`
channel_id formData required string The channel to delete.

Responses

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

Disconnect a connected channel from one or more workspaces.

operationId: admin_conversations_disconnectShared

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `admin.conversations:write`
channel_id formData required string The channel to be disconnected from some workspaces.
leaving_team_ids formData optional string The team to be removed from the channel. Currently only a single team id can be specified.

Responses

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

Invite a user to a public or private channel.

operationId: admin_conversations_invite

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `admin.conversations:write`
user_ids formData required string The users to invite.
channel_id formData required string The channel that the users will be invited to.

Responses

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

Rename a public or private channel.

operationId: admin_conversations_rename

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `admin.conversations:write`
channel_id formData required string The channel to rename.
name formData required string

Responses

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

Set the posting permissions for a public or private channel.

operationId: admin_conversations_setConversationPrefs

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `admin.conversations:write`
channel_id formData required string The channel to set the prefs for
prefs formData required string The prefs for this channel in a stringified JSON format.

Responses

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

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

operationId: admin_conversations_setTeams

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `admin.conversations:write`
channel_id formData required string The encoded `channel_id` to add or remove to workspaces.
team_id formData optional string The workspace to which the channel belongs. Omit this argument if the channel is a cross-workspace shared channel.
target_team_ids formData optional string A comma-separated list of workspaces to which the channel should be shared. Not required if the channel is being shared org-wide.
org_channel formData optional boolean True if channel has to be converted to an org channel

Responses

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

Unarchive a public or private channel.

operationId: admin_conversations_unarchive

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `admin.conversations:write`
channel_id formData required string The channel to unarchive.

Responses

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

Admin.conversations.restrictaccess 2 endpoints

POST /admin.conversations.restrictAccess.addGroup

Add an allowlist of IDP groups for accessing a channel

operationId: admin_conversations_restrictAccess_addGroup

Parameters

Name In Required Type Description
token formData required string Authentication token. Requires scope: `admin.conversations:write`
team_id formData optional string The workspace where the channel exists. This argument is required for channels only tied to one workspace, and optional for channels that are shared across an organization.
group_id formData required string The [IDP Group](https://slack.com/help/articles/115001435788-Connect-identity-provider-groups-to-your-Enterprise-Grid-org) ID to be an allowlist for the private channel.
channel_id formData required string The channel to link this group to.

Responses

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

Remove a linked IDP group linked from a private channel

operationId: admin_conversations_restrictAccess_removeGroup

Parameters

Name In Required Type Description
token formData required string Authentication token. Requires scope: `admin.conversations:write`
team_id formData required string The workspace where the channel exists. This argument is required for channels only tied to one workspace, and optional for channels that are shared across an organization.
group_id formData required string The [IDP Group](https://slack.com/help/articles/115001435788-Connect-identity-provider-groups-to-your-Enterprise-Grid-org) ID to remove from the private channel.
channel_id formData required string The channel to remove the linked group from.

Responses

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

Admin.emoji 4 endpoints

POST /admin.emoji.add

Add an emoji.

operationId: admin_emoji_add

Parameters

Name In Required Type Description
token formData required string Authentication token. Requires scope: `admin.teams:write`
name formData required string The name of the emoji to be removed. Colons (`:myemoji:`) around the value are not required, although they may be included.
url formData required string The URL of a file to use as an image for the emoji. Square images under 128KB and with transparent backgrounds work best.

Responses

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

Add an emoji alias.

operationId: admin_emoji_addAlias

Parameters

Name In Required Type Description
token formData required string Authentication token. Requires scope: `admin.teams:write`
name formData required string The name of the emoji to be aliased. Colons (`:myemoji:`) around the value are not required, although they may be included.
alias_for formData required string The alias of the emoji.

Responses

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

Remove an emoji across an Enterprise Grid organization

operationId: admin_emoji_remove

Parameters

Name In Required Type Description
token formData required string Authentication token. Requires scope: `admin.teams:write`
name formData required string The name of the emoji to be removed. Colons (`:myemoji:`) around the value are not required, although they may be included.

Responses

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

Rename an emoji.

operationId: admin_emoji_rename

Parameters

Name In Required Type Description
token formData required string Authentication token. Requires scope: `admin.teams:write`
name formData required string The name of the emoji to be renamed. Colons (`:myemoji:`) around the value are not required, although they may be included.
new_name formData required string The new name of the emoji.

Responses

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

Admin.inviterequests 2 endpoints

POST /admin.inviteRequests.approve

Approve a workspace invite request.

operationId: admin_inviteRequests_approve

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `admin.invites:write`
team_id formData optional string ID for the workspace where the invite request was made.
invite_request_id formData required string ID of the request to invite.

Responses

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

Deny a workspace invite request.

operationId: admin_inviteRequests_deny

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `admin.invites:write`
team_id formData optional string ID for the workspace where the invite request was made.
invite_request_id formData required string ID of the request to invite.

Responses

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

Admin.teams 1 endpoints

POST /admin.teams.create

Create an Enterprise team.

operationId: admin_teams_create

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `admin.teams:write`
team_domain formData required string Team domain (for example, slacksoftballteam).
team_name formData required string Team name (for example, Slack Softball Team).
team_description formData optional string Description for the team.
team_discoverability formData optional string Who can join the team. A team's discoverability can be `open`, `closed`, `invite_only`, or `unlisted`.

Responses

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

Admin.teams.settings 5 endpoints

POST /admin.teams.settings.setDefaultChannels

Set the default channels of a workspace.

operationId: admin_teams_settings_setDefaultChannels

Parameters

Name In Required Type Description
token formData required string Authentication token. Requires scope: `admin.teams:write`
team_id formData required string ID for the workspace to set the default channel for.
channel_ids formData required string An array of channel IDs.

Responses

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

Set the description of a given workspace.

operationId: admin_teams_settings_setDescription

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `admin.teams:write`
team_id formData required string ID for the workspace to set the description for.
description formData required string The new description for the workspace.

Responses

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

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

operationId: admin_teams_settings_setDiscoverability

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `admin.teams:write`
team_id formData required string The ID of the workspace to set discoverability on.
discoverability formData required string This workspace's discovery setting. It must be set to one of `open`, `invite_only`, `closed`, or `unlisted`.

Responses

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

Sets the icon of a workspace.

operationId: admin_teams_settings_setIcon

Parameters

Name In Required Type Description
token formData required string Authentication token. Requires scope: `admin.teams:write`
image_url formData required string Image URL for the icon
team_id formData required string ID for the workspace to set the icon for.

Responses

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

Set the name of a given workspace.

operationId: admin_teams_settings_setName

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `admin.teams:write`
team_id formData required string ID for the workspace to set the name for.
name formData required string The new name of the workspace.

Responses

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

Admin.usergroups 3 endpoints

POST /admin.usergroups.addChannels

Add one or more default channels to an IDP group.

operationId: admin_usergroups_addChannels

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `admin.usergroups:write`
usergroup_id formData required string ID of the IDP group to add default channels for.
team_id formData optional string The workspace to add default channels in.
channel_ids formData required string Comma separated string of channel IDs.

Responses

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

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

operationId: admin_usergroups_addTeams

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `admin.teams:write`
usergroup_id formData required string An encoded usergroup (IDP Group) ID.
team_ids formData required string A comma separated list of encoded team (workspace) IDs. Each workspace *MUST* belong to the organization associated with the token.
auto_provision formData optional boolean When `true`, this method automatically creates new workspace accounts for the IDP group members.

Responses

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

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

operationId: admin_usergroups_removeChannels

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `admin.usergroups:write`
usergroup_id formData required string ID of the IDP Group
channel_ids formData required string Comma-separated string of channel IDs

Responses

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

Admin.users 7 endpoints

POST /admin.users.assign

Add an Enterprise user to a workspace.

operationId: admin_users_assign

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `admin.users:write`
team_id formData required string The ID (`T1234`) of the workspace.
user_id formData required string The ID of the user to add to the workspace.
is_restricted formData optional boolean True if user should be added to the workspace as a guest.
is_ultra_restricted formData optional boolean True if user should be added to the workspace as a single-channel guest.
channel_ids formData optional string Comma separated values of channel IDs to add user in the new workspace.

Responses

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

Invite a user to a workspace.

operationId: admin_users_invite

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `admin.users:write`
team_id formData required string The ID (`T1234`) of the workspace.
email formData required string The email address of the person to invite.
channel_ids formData required string A comma-separated list of `channel_id`s for this user to join. At least one channel is required.
custom_message formData optional string An optional message to send to the user in the invite email.
real_name formData optional string Full name of the user.
resend formData optional boolean Allow this invite to be resent in the future if a user has not signed up yet. (default: false)
is_restricted formData optional boolean Is this user a multi-channel guest user? (default: false)
is_ultra_restricted formData optional boolean Is this user a single channel guest user? (default: false)
guest_expiration_ts formData optional string Timestamp when guest account should be disabled. Only include this timestamp if you are inviting a guest user and you want their account to expire on a certain date.

Responses

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

Remove a user from a workspace.

operationId: admin_users_remove

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `admin.users:write`
team_id formData required string The ID (`T1234`) of the workspace.
user_id formData required string The ID of the user to remove.

Responses

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

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

operationId: admin_users_setAdmin

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `admin.users:write`
team_id formData required string The ID (`T1234`) of the workspace.
user_id formData required string The ID of the user to designate as an admin.

Responses

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

Set an expiration for a guest user

operationId: admin_users_setExpiration

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `admin.users:write`
team_id formData required string The ID (`T1234`) of the workspace.
user_id formData required string The ID of the user to set an expiration for.
expiration_ts formData required integer Timestamp when guest account should be disabled.

Responses

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

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

operationId: admin_users_setOwner

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `admin.users:write`
team_id formData required string The ID (`T1234`) of the workspace.
user_id formData required string Id of the user to promote to owner.

Responses

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

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

operationId: admin_users_setRegular

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `admin.users:write`
team_id formData required string The ID (`T1234`) of the workspace.
user_id formData required string The ID of the user to designate as a regular user.

Responses

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

Admin.users.session 2 endpoints

POST /admin.users.session.invalidate

Invalidate a single session for a user by session_id

operationId: admin_users_session_invalidate

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `admin.users:write`
team_id formData required string ID of the team that the session belongs to
session_id formData required integer

Responses

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

Wipes all valid sessions on all devices for a given user

operationId: admin_users_session_reset

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `admin.users:write`
user_id formData required string The ID of the user to wipe sessions for
mobile_only formData optional boolean Only expire mobile sessions (default: false)
web_only formData optional boolean Only expire web sessions (default: false)

Responses

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

Calls 3 endpoints

POST /calls.add

Registers a new Call.

operationId: calls_add

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `calls:write`
external_unique_id formData required string An ID supplied by the 3rd-party Call provider. It must be unique across all Calls from that service.
external_display_id formData optional string An optional, human-readable ID supplied by the 3rd-party Call provider. If supplied, this ID will be displayed in the Call object.
join_url formData required string The URL required for a client to join the Call.
desktop_app_join_url formData optional string When supplied, available Slack clients will attempt to directly launch the 3rd-party Call with this URL.
date_start formData optional integer Call start time in UTC UNIX timestamp format
title formData optional string The name of the Call.
created_by formData optional string The valid Slack user ID of the user who created this Call. When this method is called with a user token, the `created_by` field is optional and defaults to the authed user of the token. Otherwise, the field is required.
users formData optional string The list of users to register as participants in the Call. [Read more on how to specify users here](/apis/calls#users).

Responses

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

Ends a Call.

operationId: calls_end

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `calls:write`
id formData required string `id` returned when registering the call using the [`calls.add`](/methods/calls.add) method.
duration formData optional integer Call duration in seconds

Responses

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

Updates information about a Call.

operationId: calls_update

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `calls:write`
id formData required string `id` returned by the [`calls.add`](/methods/calls.add) method.
title formData optional string The name of the Call.
join_url formData optional string The URL required for a client to join the Call.
desktop_app_join_url formData optional string When supplied, available Slack clients will attempt to directly launch the 3rd-party Call with this URL.

Responses

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

Calls.participants 2 endpoints

POST /calls.participants.add

Registers new participants added to a Call.

operationId: calls_participants_add

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `calls:write`
id formData required string `id` returned by the [`calls.add`](/methods/calls.add) method.
users formData required string The list of users to add as participants in the Call. [Read more on how to specify users here](/apis/calls#users).

Responses

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

Registers participants removed from a Call.

operationId: calls_participants_remove

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `calls:write`
id formData required string `id` returned by the [`calls.add`](/methods/calls.add) method.
users formData required string The list of users to remove as participants in the Call. [Read more on how to specify users here](/apis/calls#users).

Responses

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

Chat 8 endpoints

POST /chat.delete

Deletes a message.

operationId: chat_delete

Parameters

Name In Required Type Description
token header optional string Authentication token. Requires scope: `chat:write`
ts formData optional number Timestamp of the message to be deleted.
channel formData optional string Channel containing the message to be deleted.
as_user formData optional boolean Pass true to delete the message as the authed user with `chat:write:user` scope. [Bot users](/bot-users) in this context are considered authed users. If unused or false, the message will be deleted with `chat:write:bot` scope.

Responses

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

Deletes a pending scheduled message from the queue.

operationId: chat_deleteScheduledMessage

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `chat:write`
as_user formData optional boolean Pass true to delete the message as the authed user with `chat:write:user` scope. [Bot users](/bot-users) in this context are considered authed users. If unused or false, the message will be deleted with `chat:write:bot` scope.
channel formData required string The channel the scheduled_message is posting to
scheduled_message_id formData required string `scheduled_message_id` returned from call to chat.scheduleMessage

Responses

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

Share a me message into a channel.

operationId: chat_meMessage

Parameters

Name In Required Type Description
token header optional string Authentication token. Requires scope: `chat:write`
channel formData optional string Channel to send message to. Can be a public channel, private group or IM channel. Can be an encoded ID, or a name.
text formData optional string Text of the message to send.

Responses

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

Sends an ephemeral message to a user in a channel.

operationId: chat_postEphemeral

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `chat:write`
as_user formData optional boolean Pass true to post the message as the authed user. Defaults to true if the chat:write:bot scope is not included. Otherwise, defaults to false.
attachments formData optional string A JSON-based array of structured attachments, presented as a URL-encoded string.
blocks formData optional string A JSON-based array of structured blocks, presented as a URL-encoded string.
channel formData required string Channel, private group, or IM channel to send message to. Can be an encoded ID, or a name.
icon_emoji formData optional string Emoji to use as the icon for this message. Overrides `icon_url`. Must be used in conjunction with `as_user` set to `false`, otherwise ignored. See [authorship](#authorship) below.
icon_url formData optional string URL to an image to use as the icon for this message. Must be used in conjunction with `as_user` set to false, otherwise ignored. See [authorship](#authorship) below.
link_names formData optional boolean Find and link channel names and usernames.
parse formData optional string Change how messages are treated. Defaults to `none`. See [below](#formatting).
text formData optional string How this field works and whether it is required depends on other fields you use in your API call. [See below](#text_usage) for more detail.
thread_ts formData optional string Provide another message's `ts` value to post this message in a thread. Avoid using a reply's `ts` value; use its parent's value instead. Ephemeral messages in threads are only shown if there is already an active thread.
user formData required string `id` of the user who will receive the ephemeral message. The user should be in the channel specified by the `channel` argument.
username formData optional string Set your bot's user name. Must be used in conjunction with `as_user` set to false, otherwise ignored. See [authorship](#authorship) below.

Responses

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

Sends a message to a channel.

operationId: chat_postMessage

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `chat:write`
as_user formData optional string Pass true to post the message as the authed user, instead of as a bot. Defaults to false. See [authorship](#authorship) below.
attachments formData optional string A JSON-based array of structured attachments, presented as a URL-encoded string.
blocks formData optional string A JSON-based array of structured blocks, presented as a URL-encoded string.
channel formData required string Channel, private group, or IM channel to send message to. Can be an encoded ID, or a name. See [below](#channels) for more details.
icon_emoji formData optional string Emoji to use as the icon for this message. Overrides `icon_url`. Must be used in conjunction with `as_user` set to `false`, otherwise ignored. See [authorship](#authorship) below.
icon_url formData optional string URL to an image to use as the icon for this message. Must be used in conjunction with `as_user` set to false, otherwise ignored. See [authorship](#authorship) below.
link_names formData optional boolean Find and link channel names and usernames.
mrkdwn formData optional boolean Disable Slack markup parsing by setting to `false`. Enabled by default.
parse formData optional string Change how messages are treated. Defaults to `none`. See [below](#formatting).
reply_broadcast formData optional boolean Used in conjunction with `thread_ts` and indicates whether reply should be made visible to everyone in the channel or conversation. Defaults to `false`.
text formData optional string How this field works and whether it is required depends on other fields you use in your API call. [See below](#text_usage) for more detail.
thread_ts formData optional string Provide another message's `ts` value to make this message a reply. Avoid using a reply's `ts` value; use its parent instead.
unfurl_links formData optional boolean Pass true to enable unfurling of primarily text-based content.
unfurl_media formData optional boolean Pass false to disable unfurling of media content.
username formData optional string Set your bot's user name. Must be used in conjunction with `as_user` set to false, otherwise ignored. See [authorship](#authorship) below.

Responses

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

Schedules a message to be sent to a channel.

operationId: chat_scheduleMessage

Parameters

Name In Required Type Description
token header optional string Authentication token. Requires scope: `chat:write`
channel formData optional string Channel, private group, or DM channel to send message to. Can be an encoded ID, or a name. See [below](#channels) for more details.
text formData optional string How this field works and whether it is required depends on other fields you use in your API call. [See below](#text_usage) for more detail.
post_at formData optional string Unix EPOCH timestamp of time in future to send the message.
parse formData optional string Change how messages are treated. Defaults to `none`. See [chat.postMessage](chat.postMessage#formatting).
as_user formData optional boolean Pass true to post the message as the authed user, instead of as a bot. Defaults to false. See [chat.postMessage](chat.postMessage#authorship).
link_names formData optional boolean Find and link channel names and usernames.
attachments formData optional string A JSON-based array of structured attachments, presented as a URL-encoded string.
blocks formData optional string A JSON-based array of structured blocks, presented as a URL-encoded string.
unfurl_links formData optional boolean Pass true to enable unfurling of primarily text-based content.
unfurl_media formData optional boolean Pass false to disable unfurling of media content.
thread_ts formData optional number Provide another message's `ts` value to make this message a reply. Avoid using a reply's `ts` value; use its parent instead.
reply_broadcast formData optional boolean Used in conjunction with `thread_ts` and indicates whether reply should be made visible to everyone in the channel or conversation. Defaults to `false`.

Responses

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

Provide custom unfurl behavior for user-posted URLs

operationId: chat_unfurl

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `links:write`
channel formData required string Channel ID of the message
ts formData required string Timestamp of the message to add unfurl behavior to.
unfurls formData optional string URL-encoded JSON map with keys set to URLs featured in the the message, pointing to their unfurl blocks or message attachments.
user_auth_message formData optional string Provide a simply-formatted string to send as an ephemeral message to the user as invitation to authenticate further and enable full unfurling behavior
user_auth_required formData optional boolean Set to `true` or `1` to indicate the user must install your Slack app to trigger unfurls for this domain
user_auth_url formData optional string Send users to this custom URL where they will complete authentication in your app to fully trigger unfurling. Value should be properly URL-encoded.

Responses

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

Updates a message.

operationId: chat_update

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `chat:write`
as_user formData optional string Pass true to update the message as the authed user. [Bot users](/bot-users) in this context are considered authed users.
attachments formData optional string A JSON-based array of structured attachments, presented as a URL-encoded string. This field is required when not presenting `text`. If you don't include this field, the message's previous `attachments` will be retained. To remove previous `attachments`, include an empty array for this field.
blocks formData optional string A JSON-based array of [structured blocks](/block-kit/building), presented as a URL-encoded string. If you don't include this field, the message's previous `blocks` will be retained. To remove previous `blocks`, include an empty array for this field.
channel formData required string Channel containing the message to be updated.
link_names formData optional string Find and link channel names and usernames. Defaults to `none`. If you do not specify a value for this field, the original value set for the message will be overwritten with the default, `none`.
parse formData optional string Change how messages are treated. Defaults to `client`, unlike `chat.postMessage`. Accepts either `none` or `full`. If you do not specify a value for this field, the original value set for the message will be overwritten with the default, `client`.
text formData optional string New text for the message, using the [default formatting rules](/reference/surfaces/formatting). It's not required when presenting `blocks` or `attachments`.
ts formData required string Timestamp of the message to be updated.

Responses

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

Conversations 13 endpoints

POST /conversations.archive

Archives a conversation.

operationId: conversations_archive

Parameters

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

Responses

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

Closes a direct message or multi-person direct message.

operationId: conversations_close

Parameters

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

Responses

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

Initiates a public or private channel-based conversation

operationId: conversations_create

Parameters

Name In Required Type Description
token header optional string Authentication token. Requires scope: `conversations:write`
name formData optional string Name of the public or private channel to create
is_private formData optional boolean Create a private channel instead of a public one

Responses

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

Invites users to a channel.

operationId: conversations_invite

Parameters

Name In Required Type Description
token header optional string Authentication token. Requires scope: `conversations:write`
channel formData optional string The ID of the public or private channel to invite user(s) to.
users formData optional string A comma separated list of user IDs. Up to 1000 users may be listed.

Responses

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

Joins an existing conversation.

operationId: conversations_join

Parameters

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

Responses

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

Removes a user from a conversation.

operationId: conversations_kick

Parameters

Name In Required Type Description
token header optional string Authentication token. Requires scope: `conversations:write`
channel formData optional string ID of conversation to remove user from.
user formData optional string User ID to be removed.

Responses

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

Leaves a conversation.

operationId: conversations_leave

Parameters

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

Responses

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

Sets the read cursor in a channel.

operationId: conversations_mark

Parameters

Name In Required Type Description
token header optional string Authentication token. Requires scope: `conversations:write`
channel formData optional string Channel or conversation to set the read cursor for.
ts formData optional number Unique identifier of message you want marked as most recently seen in this conversation.

Responses

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

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

operationId: conversations_open

Parameters

Name In Required Type Description
token header optional string Authentication token. Requires scope: `conversations:write`
channel formData optional string Resume a conversation by supplying an `im` or `mpim`'s ID. Or provide the `users` field instead.
users formData optional string Comma separated lists of users. If only one user is included, this creates a 1:1 DM. The ordering of the users is preserved whenever a multi-person direct message is returned. Supply a `channel` when not supplying `users`.
return_im formData optional boolean Boolean, indicates you want the full IM channel definition in the response.

Responses

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

Renames a conversation.

operationId: conversations_rename

Parameters

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

Responses

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

Sets the purpose for a conversation.

operationId: conversations_setPurpose

Parameters

Name In Required Type Description
token header optional string Authentication token. Requires scope: `conversations:write`
channel formData optional string Conversation to set the purpose of
purpose formData optional string A new, specialer purpose

Responses

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

Sets the topic for a conversation.

operationId: conversations_setTopic

Parameters

Name In Required Type Description
token header optional string Authentication token. Requires scope: `conversations:write`
channel formData optional string Conversation to set the topic of
topic formData optional string The new topic string. Does not support formatting or linkification.

Responses

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

Reverses conversation archival.

operationId: conversations_unarchive

Parameters

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

Responses

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

Dnd 3 endpoints

POST /dnd.endDnd

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

operationId: dnd_endDnd

Parameters

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

Responses

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

Ends the current user's snooze mode immediately.

operationId: dnd_endSnooze

Parameters

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

Responses

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

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

operationId: dnd_setSnooze

Parameters

Name In Required Type Description
token formData required string Authentication token. Requires scope: `dnd:write`
num_minutes formData required string Number of minutes, from now, to snooze until.

Responses

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

Files 4 endpoints

POST /files.delete

Deletes a file.

operationId: files_delete

Parameters

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

Responses

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

Revokes public/external sharing access for a file

operationId: files_revokePublicURL

Parameters

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

Responses

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

Enables a file for public/external sharing.

operationId: files_sharedPublicURL

Parameters

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

Responses

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

Uploads or creates a file.

operationId: files_upload

Parameters

Name In Required Type Description
token formData optional string Authentication token. Requires scope: `files:write:user`
file formData optional string File contents via `multipart/form-data`. If omitting this parameter, you must submit `content`.
content formData optional string File contents via a POST variable. If omitting this parameter, you must provide a `file`.
filetype formData optional string A [file type](/types/file#file_types) identifier.
filename formData optional string Filename of file.
title formData optional string Title of file.
initial_comment formData optional string The message text introducing the file in specified `channels`.
channels formData optional string Comma-separated list of channel names or IDs where the file will be shared.
thread_ts formData optional number Provide another message's `ts` value to upload this file as a reply. Never use a reply's `ts` value; use its parent instead.

Responses

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

Files.comments 1 endpoints

POST /files.comments.delete

Deletes an existing comment on a file.

operationId: files_comments_delete

Parameters

Name In Required Type Description
token header optional string Authentication token. Requires scope: `files:write:user`
file formData optional string File to delete a comment from.
id formData optional string The comment to delete.

Responses

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

Files.remote 3 endpoints

POST /files.remote.add

Adds a file from a remote service

operationId: files_remote_add

Parameters

Name In Required Type Description
token formData optional string Authentication token. Requires scope: `remote_files:write`
external_id formData optional string Creator defined GUID for the file.
title formData optional string Title of the file being shared.
filetype formData optional string type of file
external_url formData optional string URL of the remote file.
preview_image formData optional string Preview of the document via `multipart/form-data`.
indexable_file_contents formData optional string A text file (txt, pdf, doc, etc.) containing textual search terms that are used to improve discovery of the remote file.

Responses

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

Remove a remote file.

operationId: files_remote_remove

Parameters

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

Responses

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

Updates an existing remote file.

operationId: files_remote_update

Parameters

Name In Required Type Description
token formData optional string Authentication token. Requires scope: `remote_files:write`
file formData optional string Specify a file by providing its ID.
external_id formData optional string Creator defined GUID for the file.
title formData optional string Title of the file being shared.
filetype formData optional string type of file
external_url formData optional string URL of the remote file.
preview_image formData optional string Preview of the document via `multipart/form-data`.
indexable_file_contents formData optional string File containing contents that can be used to improve searchability for the remote file.

Responses

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

Pins 2 endpoints

POST /pins.add

Pins an item to a channel.

operationId: pins_add

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `pins:write`
channel formData required string Channel to pin the item in.
timestamp formData optional string Timestamp of the message to pin.

Responses

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

Un-pins an item from a channel.

operationId: pins_remove

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `pins:write`
channel formData required string Channel where the item is pinned to.
timestamp formData optional string Timestamp of the message to un-pin.

Responses

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

Reactions 2 endpoints

POST /reactions.add

Adds a reaction to an item.

operationId: reactions_add

Parameters

Name In Required Type Description
channel formData required string Channel where the message to add reaction to was posted.
name formData required string Reaction (emoji) name.
timestamp formData required string Timestamp of the message to add reaction to.
token header required string Authentication token. Requires scope: `reactions:write`

Responses

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

Removes a reaction from an item.

operationId: reactions_remove

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `reactions:write`
name formData required string Reaction (emoji) name.
file formData optional string File to remove reaction from.
file_comment formData optional string File comment to remove reaction from.
channel formData optional string Channel where the message to remove reaction from was posted.
timestamp formData optional string Timestamp of the message to remove reaction from.

Responses

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

Reminders 3 endpoints

POST /reminders.add

Creates a reminder.

operationId: reminders_add

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `reminders:write`
text formData required string The content of the reminder
time formData required string When this reminder should happen: the Unix timestamp (up to five years from now), the number of seconds until the reminder (if within 24 hours), or a natural language description (Ex. "in 15 minutes," or "every Thursday")
user formData optional string The user who will receive the reminder. If no user is specified, the reminder will go to user who created it.

Responses

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

Marks a reminder as complete.

operationId: reminders_complete

Parameters

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

Responses

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

Deletes a reminder.

operationId: reminders_delete

Parameters

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

Responses

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

Stars 2 endpoints

POST /stars.add

Adds a star to an item.

operationId: stars_add

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `stars:write`
channel formData optional string Channel to add star to, or channel where the message to add star to was posted (used with `timestamp`).
file formData optional string File to add star to.
file_comment formData optional string File comment to add star to.
timestamp formData optional string Timestamp of the message to add star to.

Responses

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

Removes a star from an item.

operationId: stars_remove

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `stars:write`
channel formData optional string Channel to remove star from, or channel where the message to remove star from was posted (used with `timestamp`).
file formData optional string File to remove star from.
file_comment formData optional string File comment to remove star from.
timestamp formData optional string Timestamp of the message to remove star from.

Responses

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

Usergroups 4 endpoints

POST /usergroups.create

Create a User Group

operationId: usergroups_create

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `usergroups:write`
channels formData optional string A comma separated string of encoded channel IDs for which the User Group uses as a default.
description formData optional string A short description of the User Group.
handle formData optional string A mention handle. Must be unique among channels, users and User Groups.
include_count formData optional boolean Include the number of users in each User Group.
name formData required string A name for the User Group. Must be unique among User Groups.

Responses

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

Disable an existing User Group

operationId: usergroups_disable

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `usergroups:write`
include_count formData optional boolean Include the number of users in the User Group.
usergroup formData required string The encoded ID of the User Group to disable.

Responses

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

Enable a User Group

operationId: usergroups_enable

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `usergroups:write`
include_count formData optional boolean Include the number of users in the User Group.
usergroup formData required string The encoded ID of the User Group to enable.

Responses

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

Update an existing User Group

operationId: usergroups_update

Parameters

Name In Required Type Description
handle formData optional string A mention handle. Must be unique among channels, users and User Groups.
description formData optional string A short description of the User Group.
channels formData optional string A comma separated string of encoded channel IDs for which the User Group uses as a default.
token header required string Authentication token. Requires scope: `usergroups:write`
include_count formData optional boolean Include the number of users in the User Group.
usergroup formData required string The encoded ID of the User Group to update.
name formData optional string A name for the User Group. Must be unique among User Groups.

Responses

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

Usergroups.users 1 endpoints

POST /usergroups.users.update

Update the list of users for a User Group

operationId: usergroups_users_update

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `usergroups:write`
include_count formData optional boolean Include the number of users in the User Group.
usergroup formData required string The encoded ID of the User Group to update.
users formData required string A comma separated string of encoded user IDs that represent the entire list of users for the User Group.

Responses

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

Users 4 endpoints

POST /users.deletePhoto

Delete the user profile photo

operationId: users_deletePhoto

Parameters

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

Responses

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

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

operationId: users_setActive

Parameters

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

Responses

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

Set the user profile photo

operationId: users_setPhoto

Parameters

Name In Required Type Description
token formData required string Authentication token. Requires scope: `users.profile:write`
crop_w formData optional string Width/height of crop box (always square)
crop_x formData optional string X coordinate of top-left corner of crop box
crop_y formData optional string Y coordinate of top-left corner of crop box
image formData optional string File contents via `multipart/form-data`.

Responses

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

Manually sets user presence.

operationId: users_setPresence

Parameters

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

Responses

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

Users.profile 1 endpoints

POST /users.profile.set

Set the profile information for a user.

operationId: users_profile_set

Parameters

Name In Required Type Description
token header required string Authentication token. Requires scope: `users.profile:write`
name formData optional string Name of a single key to set. Usable only if `profile` is not passed.
profile formData optional string Collection of key:value pairs presented as a URL-encoded JSON hash. At most 50 fields may be set. Each field name is limited to 255 characters.
user formData optional string ID of user to change. This argument may only be specified by team admins on paid teams.
value formData optional string Value to set a single key to. Usable only if `profile` is not passed.

Responses

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

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
}