{"files":{"SKILL.md":"---\nname: slack-web-api\ndescription: \"Slack Web API skill. Use when working with Slack Web for admin.apps.approve, admin.apps.approved.list, admin.apps.requests.list. Covers 174 endpoints.\"\nversion: 1.0.0\ngenerator: lapsh\n---\n\n# Slack Web API\nAPI version: 1.7.0\n\n## Auth\nOAuth2\n\n## Base URL\nhttps://slack.com/api\n\n## Setup\n1. Configure auth: OAuth2\n2. GET /admin.apps.approved.list -- list approved apps for an org or workspace.\n3. POST /admin.apps.approve -- create first admin.apps.approve\n\n## Endpoints\n174 endpoints across 174 groups. See references/api-spec.lap for full details.\n\n### Admin.apps.approve\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /admin.apps.approve | Approve an app for installation on a workspace. |\n\n### Admin.apps.approved.list\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /admin.apps.approved.list | List approved apps for an org or workspace. |\n\n### Admin.apps.requests.list\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /admin.apps.requests.list | List app requests for a team/workspace. |\n\n### Admin.apps.restrict\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /admin.apps.restrict | Restrict an app for installation on a workspace. |\n\n### Admin.apps.restricted.list\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /admin.apps.restricted.list | List restricted apps for an org or workspace. |\n\n### Admin.conversations.archive\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /admin.conversations.archive | Archive a public or private channel. |\n\n### Admin.conversations.convertToPrivate\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /admin.conversations.convertToPrivate | Convert a public channel to a private channel. |\n\n### Admin.conversations.create\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /admin.conversations.create | Create a public or private channel-based conversation. |\n\n### Admin.conversations.delete\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /admin.conversations.delete | Delete a public or private channel. |\n\n### Admin.conversations.disconnectShared\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /admin.conversations.disconnectShared | Disconnect a connected channel from one or more workspaces. |\n\n### Admin.conversations.ekm.listOriginalConnectedChannelInfo\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /admin.conversations.ekm.listOriginalConnectedChannelInfo | List all disconnected channels—i.e., channels that were once connected to other workspaces and then disconnected—and the corresponding original channel IDs for key revocation with EKM. |\n\n### Admin.conversations.getConversationPrefs\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /admin.conversations.getConversationPrefs | Get conversation preferences for a public or private channel. |\n\n### Admin.conversations.getTeams\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /admin.conversations.getTeams | Get all the workspaces a given public or private channel is connected to within this Enterprise org. |\n\n### Admin.conversations.invite\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /admin.conversations.invite | Invite a user to a public or private channel. |\n\n### Admin.conversations.rename\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /admin.conversations.rename | Rename a public or private channel. |\n\n### Admin.conversations.restrictAccess.addGroup\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /admin.conversations.restrictAccess.addGroup | Add an allowlist of IDP groups for accessing a channel |\n\n### Admin.conversations.restrictAccess.listGroups\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /admin.conversations.restrictAccess.listGroups | List all IDP Groups linked to a channel |\n\n### Admin.conversations.restrictAccess.removeGroup\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /admin.conversations.restrictAccess.removeGroup | Remove a linked IDP group linked from a private channel |\n\n### Admin.conversations.search\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /admin.conversations.search | Search for public or private channels in an Enterprise organization. |\n\n### Admin.conversations.setConversationPrefs\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /admin.conversations.setConversationPrefs | Set the posting permissions for a public or private channel. |\n\n### Admin.conversations.setTeams\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /admin.conversations.setTeams | Set the workspaces in an Enterprise grid org that connect to a public or private channel. |\n\n### Admin.conversations.unarchive\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /admin.conversations.unarchive | Unarchive a public or private channel. |\n\n### Admin.emoji.add\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /admin.emoji.add | Add an emoji. |\n\n### Admin.emoji.addAlias\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /admin.emoji.addAlias | Add an emoji alias. |\n\n### Admin.emoji.list\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /admin.emoji.list | List emoji for an Enterprise Grid organization. |\n\n### Admin.emoji.remove\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /admin.emoji.remove | Remove an emoji across an Enterprise Grid organization |\n\n### Admin.emoji.rename\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /admin.emoji.rename | Rename an emoji. |\n\n### Admin.inviteRequests.approve\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /admin.inviteRequests.approve | Approve a workspace invite request. |\n\n### Admin.inviteRequests.approved.list\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /admin.inviteRequests.approved.list | List all approved workspace invite requests. |\n\n### Admin.inviteRequests.denied.list\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /admin.inviteRequests.denied.list | List all denied workspace invite requests. |\n\n### Admin.inviteRequests.deny\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /admin.inviteRequests.deny | Deny a workspace invite request. |\n\n### Admin.inviteRequests.list\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /admin.inviteRequests.list | List all pending workspace invite requests. |\n\n### Admin.teams.admins.list\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /admin.teams.admins.list | List all of the admins on a given workspace. |\n\n### Admin.teams.create\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /admin.teams.create | Create an Enterprise team. |\n\n### Admin.teams.list\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /admin.teams.list | List all teams on an Enterprise organization |\n\n### Admin.teams.owners.list\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /admin.teams.owners.list | List all of the owners on a given workspace. |\n\n### Admin.teams.settings.info\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /admin.teams.settings.info | Fetch information about settings in a workspace |\n\n### Admin.teams.settings.setDefaultChannels\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /admin.teams.settings.setDefaultChannels | Set the default channels of a workspace. |\n\n### Admin.teams.settings.setDescription\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /admin.teams.settings.setDescription | Set the description of a given workspace. |\n\n### Admin.teams.settings.setDiscoverability\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /admin.teams.settings.setDiscoverability | An API method that allows admins to set the discoverability of a given workspace |\n\n### Admin.teams.settings.setIcon\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /admin.teams.settings.setIcon | Sets the icon of a workspace. |\n\n### Admin.teams.settings.setName\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /admin.teams.settings.setName | Set the name of a given workspace. |\n\n### Admin.usergroups.addChannels\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /admin.usergroups.addChannels | Add one or more default channels to an IDP group. |\n\n### Admin.usergroups.addTeams\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /admin.usergroups.addTeams | Associate one or more default workspaces with an organization-wide IDP group. |\n\n### Admin.usergroups.listChannels\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /admin.usergroups.listChannels | List the channels linked to an org-level IDP group (user group). |\n\n### Admin.usergroups.removeChannels\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /admin.usergroups.removeChannels | Remove one or more default channels from an org-level IDP group (user group). |\n\n### Admin.users.assign\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /admin.users.assign | Add an Enterprise user to a workspace. |\n\n### Admin.users.invite\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /admin.users.invite | Invite a user to a workspace. |\n\n### Admin.users.list\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /admin.users.list | List users on a workspace |\n\n### Admin.users.remove\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /admin.users.remove | Remove a user from a workspace. |\n\n### Admin.users.session.invalidate\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /admin.users.session.invalidate | Invalidate a single session for a user by session_id |\n\n### Admin.users.session.reset\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /admin.users.session.reset | Wipes all valid sessions on all devices for a given user |\n\n### Admin.users.setAdmin\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /admin.users.setAdmin | Set an existing guest, regular user, or owner to be an admin user. |\n\n### Admin.users.setExpiration\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /admin.users.setExpiration | Set an expiration for a guest user |\n\n### Admin.users.setOwner\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /admin.users.setOwner | Set an existing guest, regular user, or admin user to be a workspace owner. |\n\n### Admin.users.setRegular\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /admin.users.setRegular | Set an existing guest user, admin user, or owner to be a regular user. |\n\n### Api.test\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /api.test | Checks API calling code. |\n\n### Apps.event.authorizations.list\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /apps.event.authorizations.list | Get a list of authorizations for the given event context. Each authorization represents an app installation that the event is visible to. |\n\n### Apps.permissions.info\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /apps.permissions.info | Returns list of permissions this app has on a team. |\n\n### Apps.permissions.request\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /apps.permissions.request | Allows an app to request additional scopes |\n\n### Apps.permissions.resources.list\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /apps.permissions.resources.list | Returns list of resource grants this app has on a team. |\n\n### Apps.permissions.scopes.list\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /apps.permissions.scopes.list | Returns list of scopes this app has on a team. |\n\n### Apps.permissions.users.list\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /apps.permissions.users.list | Returns list of user grants and corresponding scopes this app has on a team. |\n\n### Apps.permissions.users.request\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /apps.permissions.users.request | Enables an app to trigger a permissions modal to grant an app access to a user access scope. |\n\n### Apps.uninstall\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /apps.uninstall | Uninstalls your app from a workspace. |\n\n### Auth.revoke\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /auth.revoke | Revokes a token. |\n\n### Auth.test\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /auth.test | Checks authentication & identity. |\n\n### Bots.info\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /bots.info | Gets information about a bot user. |\n\n### Calls.add\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /calls.add | Registers a new Call. |\n\n### Calls.end\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /calls.end | Ends a Call. |\n\n### Calls.info\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /calls.info | Returns information about a Call. |\n\n### Calls.participants.add\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /calls.participants.add | Registers new participants added to a Call. |\n\n### Calls.participants.remove\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /calls.participants.remove | Registers participants removed from a Call. |\n\n### Calls.update\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /calls.update | Updates information about a Call. |\n\n### Chat.delete\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /chat.delete | Deletes a message. |\n\n### Chat.deleteScheduledMessage\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /chat.deleteScheduledMessage | Deletes a pending scheduled message from the queue. |\n\n### Chat.getPermalink\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /chat.getPermalink | Retrieve a permalink URL for a specific extant message |\n\n### Chat.meMessage\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /chat.meMessage | Share a me message into a channel. |\n\n### Chat.postEphemeral\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /chat.postEphemeral | Sends an ephemeral message to a user in a channel. |\n\n### Chat.postMessage\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /chat.postMessage | Sends a message to a channel. |\n\n### Chat.scheduleMessage\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /chat.scheduleMessage | Schedules a message to be sent to a channel. |\n\n### Chat.scheduledMessages.list\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /chat.scheduledMessages.list | Returns a list of scheduled messages. |\n\n### Chat.unfurl\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /chat.unfurl | Provide custom unfurl behavior for user-posted URLs |\n\n### Chat.update\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /chat.update | Updates a message. |\n\n### Conversations.archive\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /conversations.archive | Archives a conversation. |\n\n### Conversations.close\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /conversations.close | Closes a direct message or multi-person direct message. |\n\n### Conversations.create\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /conversations.create | Initiates a public or private channel-based conversation |\n\n### Conversations.history\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /conversations.history | Fetches a conversation's history of messages and events. |\n\n### Conversations.info\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /conversations.info | Retrieve information about a conversation. |\n\n### Conversations.invite\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /conversations.invite | Invites users to a channel. |\n\n### Conversations.join\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /conversations.join | Joins an existing conversation. |\n\n### Conversations.kick\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /conversations.kick | Removes a user from a conversation. |\n\n### Conversations.leave\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /conversations.leave | Leaves a conversation. |\n\n### Conversations.list\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /conversations.list | Lists all channels in a Slack team. |\n\n### Conversations.mark\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /conversations.mark | Sets the read cursor in a channel. |\n\n### Conversations.members\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /conversations.members | Retrieve members of a conversation. |\n\n### Conversations.open\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /conversations.open | Opens or resumes a direct message or multi-person direct message. |\n\n### Conversations.rename\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /conversations.rename | Renames a conversation. |\n\n### Conversations.replies\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /conversations.replies | Retrieve a thread of messages posted to a conversation |\n\n### Conversations.setPurpose\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /conversations.setPurpose | Sets the purpose for a conversation. |\n\n### Conversations.setTopic\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /conversations.setTopic | Sets the topic for a conversation. |\n\n### Conversations.unarchive\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /conversations.unarchive | Reverses conversation archival. |\n\n### Dialog.open\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /dialog.open | Open a dialog with a user |\n\n### Dnd.endDnd\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /dnd.endDnd | Ends the current user's Do Not Disturb session immediately. |\n\n### Dnd.endSnooze\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /dnd.endSnooze | Ends the current user's snooze mode immediately. |\n\n### Dnd.info\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /dnd.info | Retrieves a user's current Do Not Disturb status. |\n\n### Dnd.setSnooze\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /dnd.setSnooze | Turns on Do Not Disturb mode for the current user, or changes its duration. |\n\n### Dnd.teamInfo\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /dnd.teamInfo | Retrieves the Do Not Disturb status for up to 50 users on a team. |\n\n### Emoji.list\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /emoji.list | Lists custom emoji for a team. |\n\n### Files.comments.delete\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /files.comments.delete | Deletes an existing comment on a file. |\n\n### Files.delete\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /files.delete | Deletes a file. |\n\n### Files.info\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /files.info | Gets information about a file. |\n\n### Files.list\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /files.list | List for a team, in a channel, or from a user with applied filters. |\n\n### Files.remote.add\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /files.remote.add | Adds a file from a remote service |\n\n### Files.remote.info\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /files.remote.info | Retrieve information about a remote file added to Slack |\n\n### Files.remote.list\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /files.remote.list | Retrieve information about a remote file added to Slack |\n\n### Files.remote.remove\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /files.remote.remove | Remove a remote file. |\n\n### Files.remote.share\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /files.remote.share | Share a remote file into a channel. |\n\n### Files.remote.update\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /files.remote.update | Updates an existing remote file. |\n\n### Files.revokePublicURL\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /files.revokePublicURL | Revokes public/external sharing access for a file |\n\n### Files.sharedPublicURL\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /files.sharedPublicURL | Enables a file for public/external sharing. |\n\n### Files.upload\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /files.upload | Uploads or creates a file. |\n\n### Migration.exchange\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /migration.exchange | For Enterprise Grid workspaces, map local user IDs to global user IDs |\n\n### Oauth.access\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /oauth.access | Exchanges a temporary OAuth verifier code for an access token. |\n\n### Oauth.token\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /oauth.token | Exchanges a temporary OAuth verifier code for a workspace token. |\n\n### Oauth.v2.access\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /oauth.v2.access | Exchanges a temporary OAuth verifier code for an access token. |\n\n### Pins.add\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /pins.add | Pins an item to a channel. |\n\n### Pins.list\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /pins.list | Lists items pinned to a channel. |\n\n### Pins.remove\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /pins.remove | Un-pins an item from a channel. |\n\n### Reactions.add\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /reactions.add | Adds a reaction to an item. |\n\n### Reactions.get\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /reactions.get | Gets reactions for an item. |\n\n### Reactions.list\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /reactions.list | Lists reactions made by a user. |\n\n### Reactions.remove\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /reactions.remove | Removes a reaction from an item. |\n\n### Reminders.add\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /reminders.add | Creates a reminder. |\n\n### Reminders.complete\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /reminders.complete | Marks a reminder as complete. |\n\n### Reminders.delete\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /reminders.delete | Deletes a reminder. |\n\n### Reminders.info\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /reminders.info | Gets information about a reminder. |\n\n### Reminders.list\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /reminders.list | Lists all reminders created by or for a given user. |\n\n### Rtm.connect\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /rtm.connect | Starts a Real Time Messaging session. |\n\n### Search.messages\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /search.messages | Searches for messages matching a query. |\n\n### Stars.add\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /stars.add | Adds a star to an item. |\n\n### Stars.list\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /stars.list | Lists stars for a user. |\n\n### Stars.remove\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /stars.remove | Removes a star from an item. |\n\n### Team.accessLogs\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /team.accessLogs | Gets the access logs for the current team. |\n\n### Team.billableInfo\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /team.billableInfo | Gets billable users information for the current team. |\n\n### Team.info\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /team.info | Gets information about the current team. |\n\n### Team.integrationLogs\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /team.integrationLogs | Gets the integration logs for the current team. |\n\n### Team.profile.get\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /team.profile.get | Retrieve a team's profile. |\n\n### Usergroups.create\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /usergroups.create | Create a User Group |\n\n### Usergroups.disable\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /usergroups.disable | Disable an existing User Group |\n\n### Usergroups.enable\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /usergroups.enable | Enable a User Group |\n\n### Usergroups.list\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /usergroups.list | List all User Groups for a team |\n\n### Usergroups.update\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /usergroups.update | Update an existing User Group |\n\n### Usergroups.users.list\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /usergroups.users.list | List all users in a User Group |\n\n### Usergroups.users.update\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /usergroups.users.update | Update the list of users for a User Group |\n\n### Users.conversations\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /users.conversations | List conversations the calling user may access. |\n\n### Users.deletePhoto\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /users.deletePhoto | Delete the user profile photo |\n\n### Users.getPresence\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /users.getPresence | Gets user presence information. |\n\n### Users.identity\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /users.identity | Get a user's identity. |\n\n### Users.info\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /users.info | Gets information about a user. |\n\n### Users.list\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /users.list | Lists all users in a Slack team. |\n\n### Users.lookupByEmail\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /users.lookupByEmail | Find a user with an email address. |\n\n### Users.profile.get\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /users.profile.get | Retrieves a user's profile information. |\n\n### Users.profile.set\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /users.profile.set | Set the profile information for a user. |\n\n### Users.setActive\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /users.setActive | Marked a user as active. Deprecated and non-functional. |\n\n### Users.setPhoto\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /users.setPhoto | Set the user profile photo |\n\n### Users.setPresence\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /users.setPresence | Manually sets user presence. |\n\n### Views.open\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /views.open | Open a view for a user. |\n\n### Views.publish\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /views.publish | Publish a static view for a User. |\n\n### Views.push\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /views.push | Push a view onto the stack of a root view. |\n\n### Views.update\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /views.update | Update an existing view. |\n\n### Workflows.stepCompleted\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /workflows.stepCompleted | Indicate that an app's step in a workflow completed execution. |\n\n### Workflows.stepFailed\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /workflows.stepFailed | Indicate that an app's step in a workflow failed to execute. |\n\n### Workflows.updateStep\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /workflows.updateStep | Update the configuration for a workflow extension step. |\n\n## Common Questions\nMatch user requests to endpoints in references/api-spec.lap. Key patterns:\n- \"Create a admin.apps.approve?\" -> POST /admin.apps.approve\n- \"List all admin.apps.approved.list?\" -> GET /admin.apps.approved.list\n- \"List all admin.apps.requests.list?\" -> GET /admin.apps.requests.list\n- \"Create a admin.apps.restrict?\" -> POST /admin.apps.restrict\n- \"List all admin.apps.restricted.list?\" -> GET /admin.apps.restricted.list\n- \"Create a admin.conversations.archive?\" -> POST /admin.conversations.archive\n- \"Create a admin.conversations.convertToPrivate?\" -> POST /admin.conversations.convertToPrivate\n- \"Create a admin.conversations.create?\" -> POST /admin.conversations.create\n- \"Create a admin.conversations.delete?\" -> POST /admin.conversations.delete\n- \"Create a admin.conversations.disconnectShared?\" -> POST /admin.conversations.disconnectShared\n- \"List all admin.conversations.ekm.listOriginalConnectedChannelInfo?\" -> GET /admin.conversations.ekm.listOriginalConnectedChannelInfo\n- \"List all admin.conversations.getConversationPrefs?\" -> GET /admin.conversations.getConversationPrefs\n- \"List all admin.conversations.getTeams?\" -> GET /admin.conversations.getTeams\n- \"Create a admin.conversations.invite?\" -> POST /admin.conversations.invite\n- \"Create a admin.conversations.rename?\" -> POST /admin.conversations.rename\n- \"Create a admin.conversations.restrictAccess.addGroup?\" -> POST /admin.conversations.restrictAccess.addGroup\n- \"List all admin.conversations.restrictAccess.listGroups?\" -> GET /admin.conversations.restrictAccess.listGroups\n- \"Create a admin.conversations.restrictAccess.removeGroup?\" -> POST /admin.conversations.restrictAccess.removeGroup\n- \"Search admin.conversations.search?\" -> GET /admin.conversations.search\n- \"Create a admin.conversations.setConversationPref?\" -> POST /admin.conversations.setConversationPrefs\n- \"Create a admin.conversations.setTeam?\" -> POST /admin.conversations.setTeams\n- \"Create a admin.conversations.unarchive?\" -> POST /admin.conversations.unarchive\n- \"Create a admin.emoji.add?\" -> POST /admin.emoji.add\n- \"Create a admin.emoji.addAlia?\" -> POST /admin.emoji.addAlias\n- \"List all admin.emoji.list?\" -> GET /admin.emoji.list\n- \"Create a admin.emoji.remove?\" -> POST /admin.emoji.remove\n- \"Create a admin.emoji.rename?\" -> POST /admin.emoji.rename\n- \"Create a admin.inviteRequests.approve?\" -> POST /admin.inviteRequests.approve\n- \"List all admin.inviteRequests.approved.list?\" -> GET /admin.inviteRequests.approved.list\n- \"List all admin.inviteRequests.denied.list?\" -> GET /admin.inviteRequests.denied.list\n- \"Create a admin.inviteRequests.deny?\" -> POST /admin.inviteRequests.deny\n- \"List all admin.inviteRequests.list?\" -> GET /admin.inviteRequests.list\n- \"List all admin.teams.admins.list?\" -> GET /admin.teams.admins.list\n- \"Create a admin.teams.create?\" -> POST /admin.teams.create\n- \"List all admin.teams.list?\" -> GET /admin.teams.list\n- \"List all admin.teams.owners.list?\" -> GET /admin.teams.owners.list\n- \"List all admin.teams.settings.info?\" -> GET /admin.teams.settings.info\n- \"Create a admin.teams.settings.setDefaultChannel?\" -> POST /admin.teams.settings.setDefaultChannels\n- \"Create a admin.teams.settings.setDescription?\" -> POST /admin.teams.settings.setDescription\n- \"Create a admin.teams.settings.setDiscoverability?\" -> POST /admin.teams.settings.setDiscoverability\n- \"Create a admin.teams.settings.setIcon?\" -> POST /admin.teams.settings.setIcon\n- \"Create a admin.teams.settings.setName?\" -> POST /admin.teams.settings.setName\n- \"Create a admin.usergroups.addChannel?\" -> POST /admin.usergroups.addChannels\n- \"Create a admin.usergroups.addTeam?\" -> POST /admin.usergroups.addTeams\n- \"List all admin.usergroups.listChannels?\" -> GET /admin.usergroups.listChannels\n- \"Create a admin.usergroups.removeChannel?\" -> POST /admin.usergroups.removeChannels\n- \"Create a admin.users.assign?\" -> POST /admin.users.assign\n- \"Create a admin.users.invite?\" -> POST /admin.users.invite\n- \"List all admin.users.list?\" -> GET /admin.users.list\n- \"Create a admin.users.remove?\" -> POST /admin.users.remove\n- \"Create a admin.users.session.invalidate?\" -> POST /admin.users.session.invalidate\n- \"Create a admin.users.session.reset?\" -> POST /admin.users.session.reset\n- \"Create a admin.users.setAdmin?\" -> POST /admin.users.setAdmin\n- \"Create a admin.users.setExpiration?\" -> POST /admin.users.setExpiration\n- \"Create a admin.users.setOwner?\" -> POST /admin.users.setOwner\n- \"Create a admin.users.setRegular?\" -> POST /admin.users.setRegular\n- \"List all api.test?\" -> GET /api.test\n- \"List all apps.event.authorizations.list?\" -> GET /apps.event.authorizations.list\n- \"List all apps.permissions.info?\" -> GET /apps.permissions.info\n- \"List all apps.permissions.request?\" -> GET /apps.permissions.request\n- \"List all apps.permissions.resources.list?\" -> GET /apps.permissions.resources.list\n- \"List all apps.permissions.scopes.list?\" -> GET /apps.permissions.scopes.list\n- \"List all apps.permissions.users.list?\" -> GET /apps.permissions.users.list\n- \"List all apps.permissions.users.request?\" -> GET /apps.permissions.users.request\n- \"List all apps.uninstall?\" -> GET /apps.uninstall\n- \"List all auth.revoke?\" -> GET /auth.revoke\n- \"List all auth.test?\" -> GET /auth.test\n- \"List all bots.info?\" -> GET /bots.info\n- \"Create a calls.add?\" -> POST /calls.add\n- \"Create a calls.end?\" -> POST /calls.end\n- \"List all calls.info?\" -> GET /calls.info\n- \"Create a calls.participants.add?\" -> POST /calls.participants.add\n- \"Create a calls.participants.remove?\" -> POST /calls.participants.remove\n- \"Create a calls.update?\" -> POST /calls.update\n- \"Create a chat.delete?\" -> POST /chat.delete\n- \"Create a chat.deleteScheduledMessage?\" -> POST /chat.deleteScheduledMessage\n- \"List all chat.getPermalink?\" -> GET /chat.getPermalink\n- \"Create a chat.meMessage?\" -> POST /chat.meMessage\n- \"Create a chat.postEphemeral?\" -> POST /chat.postEphemeral\n- \"Create a chat.postMessage?\" -> POST /chat.postMessage\n- \"Create a chat.scheduleMessage?\" -> POST /chat.scheduleMessage\n- \"List all chat.scheduledMessages.list?\" -> GET /chat.scheduledMessages.list\n- \"Create a chat.unfurl?\" -> POST /chat.unfurl\n- \"Create a chat.update?\" -> POST /chat.update\n- \"Create a conversations.archive?\" -> POST /conversations.archive\n- \"Create a conversations.close?\" -> POST /conversations.close\n- \"Create a conversations.create?\" -> POST /conversations.create\n- \"List all conversations.history?\" -> GET /conversations.history\n- \"List all conversations.info?\" -> GET /conversations.info\n- \"Create a conversations.invite?\" -> POST /conversations.invite\n- \"Create a conversations.join?\" -> POST /conversations.join\n- \"Create a conversations.kick?\" -> POST /conversations.kick\n- \"Create a conversations.leave?\" -> POST /conversations.leave\n- \"List all conversations.list?\" -> GET /conversations.list\n- \"Create a conversations.mark?\" -> POST /conversations.mark\n- \"List all conversations.members?\" -> GET /conversations.members\n- \"Create a conversations.open?\" -> POST /conversations.open\n- \"Create a conversations.rename?\" -> POST /conversations.rename\n- \"List all conversations.replies?\" -> GET /conversations.replies\n- \"Create a conversations.setPurpose?\" -> POST /conversations.setPurpose\n- \"Create a conversations.setTopic?\" -> POST /conversations.setTopic\n- \"Create a conversations.unarchive?\" -> POST /conversations.unarchive\n- \"List all dialog.open?\" -> GET /dialog.open\n- \"Create a dnd.endDnd?\" -> POST /dnd.endDnd\n- \"Create a dnd.endSnooze?\" -> POST /dnd.endSnooze\n- \"List all dnd.info?\" -> GET /dnd.info\n- \"Create a dnd.setSnooze?\" -> POST /dnd.setSnooze\n- \"List all dnd.teamInfo?\" -> GET /dnd.teamInfo\n- \"List all emoji.list?\" -> GET /emoji.list\n- \"Create a files.comments.delete?\" -> POST /files.comments.delete\n- \"Create a files.delete?\" -> POST /files.delete\n- \"List all files.info?\" -> GET /files.info\n- \"List all files.list?\" -> GET /files.list\n- \"Create a files.remote.add?\" -> POST /files.remote.add\n- \"List all files.remote.info?\" -> GET /files.remote.info\n- \"List all files.remote.list?\" -> GET /files.remote.list\n- \"Create a files.remote.remove?\" -> POST /files.remote.remove\n- \"List all files.remote.share?\" -> GET /files.remote.share\n- \"Create a files.remote.update?\" -> POST /files.remote.update\n- \"Create a files.revokePublicURL?\" -> POST /files.revokePublicURL\n- \"Create a files.sharedPublicURL?\" -> POST /files.sharedPublicURL\n- \"Create a files.upload?\" -> POST /files.upload\n- \"List all migration.exchange?\" -> GET /migration.exchange\n- \"List all oauth.access?\" -> GET /oauth.access\n- \"List all oauth.token?\" -> GET /oauth.token\n- \"List all oauth.v2.access?\" -> GET /oauth.v2.access\n- \"Create a pins.add?\" -> POST /pins.add\n- \"List all pins.list?\" -> GET /pins.list\n- \"Create a pins.remove?\" -> POST /pins.remove\n- \"Create a reactions.add?\" -> POST /reactions.add\n- \"List all reactions.get?\" -> GET /reactions.get\n- \"List all reactions.list?\" -> GET /reactions.list\n- \"Create a reactions.remove?\" -> POST /reactions.remove\n- \"Create a reminders.add?\" -> POST /reminders.add\n- \"Create a reminders.complete?\" -> POST /reminders.complete\n- \"Create a reminders.delete?\" -> POST /reminders.delete\n- \"List all reminders.info?\" -> GET /reminders.info\n- \"List all reminders.list?\" -> GET /reminders.list\n- \"List all rtm.connect?\" -> GET /rtm.connect\n- \"Search search.messages?\" -> GET /search.messages\n- \"Create a stars.add?\" -> POST /stars.add\n- \"List all stars.list?\" -> GET /stars.list\n- \"Create a stars.remove?\" -> POST /stars.remove\n- \"List all team.accessLogs?\" -> GET /team.accessLogs\n- \"List all team.billableInfo?\" -> GET /team.billableInfo\n- \"List all team.info?\" -> GET /team.info\n- \"List all team.integrationLogs?\" -> GET /team.integrationLogs\n- \"List all team.profile.get?\" -> GET /team.profile.get\n- \"Create a usergroups.create?\" -> POST /usergroups.create\n- \"Create a usergroups.disable?\" -> POST /usergroups.disable\n- \"Create a usergroups.enable?\" -> POST /usergroups.enable\n- \"List all usergroups.list?\" -> GET /usergroups.list\n- \"Create a usergroups.update?\" -> POST /usergroups.update\n- \"List all usergroups.users.list?\" -> GET /usergroups.users.list\n- \"Create a usergroups.users.update?\" -> POST /usergroups.users.update\n- \"List all users.conversations?\" -> GET /users.conversations\n- \"Create a users.deletePhoto?\" -> POST /users.deletePhoto\n- \"List all users.getPresence?\" -> GET /users.getPresence\n- \"List all users.identity?\" -> GET /users.identity\n- \"List all users.info?\" -> GET /users.info\n- \"List all users.list?\" -> GET /users.list\n- \"List all users.lookupByEmail?\" -> GET /users.lookupByEmail\n- \"List all users.profile.get?\" -> GET /users.profile.get\n- \"Create a users.profile.set?\" -> POST /users.profile.set\n- \"Create a users.setActive?\" -> POST /users.setActive\n- \"Create a users.setPhoto?\" -> POST /users.setPhoto\n- \"Create a users.setPresence?\" -> POST /users.setPresence\n- \"List all views.open?\" -> GET /views.open\n- \"List all views.publish?\" -> GET /views.publish\n- \"List all views.push?\" -> GET /views.push\n- \"List all views.update?\" -> GET /views.update\n- \"List all workflows.stepCompleted?\" -> GET /workflows.stepCompleted\n- \"List all workflows.stepFailed?\" -> GET /workflows.stepFailed\n- \"List all workflows.updateStep?\" -> GET /workflows.updateStep\n- \"How to authenticate?\" -> See Auth section above\n\n## Response Tips\n- Check response schemas in references/api-spec.lap for field details\n- Paginated endpoints accept limit/offset or cursor parameters\n- Create/update endpoints return the modified resource on success\n\n## References\n- Full spec: See references/api-spec.lap for complete endpoint details, parameter tables, and response schemas\n\n> Generated from the official API spec by [LAP](https://lap.sh)\n","references/api-spec.lap":"@lap v0.3\n# Machine-readable API spec. Each @endpoint block is one API call.\n@api Slack Web API\n@base https://slack.com/api\n@version 1.7.0\n@auth OAuth2\n@common_fields {token: any # Authentication token. Requires scope: `admin.apps:write`}\n@endpoints 174\n@hint download_for_search\n@toc admin.apps.approve(1), admin.apps.approved.list(1), admin.apps.requests.list(1), admin.apps.restrict(1), admin.apps.restricted.list(1), admin.conversations.archive(1), admin.conversations.convertToPrivate(1), admin.conversations.create(1), admin.conversations.delete(1), admin.conversations.disconnectShared(1), admin.conversations.ekm.listOriginalConnectedChannelInfo(1), admin.conversations.getConversationPrefs(1), admin.conversations.getTeams(1), admin.conversations.invite(1), admin.conversations.rename(1), admin.conversations.restrictAccess.addGroup(1), admin.conversations.restrictAccess.listGroups(1), admin.conversations.restrictAccess.removeGroup(1), admin.conversations.search(1), admin.conversations.setConversationPrefs(1), admin.conversations.setTeams(1), admin.conversations.unarchive(1), admin.emoji.add(1), admin.emoji.addAlias(1), admin.emoji.list(1), admin.emoji.remove(1), admin.emoji.rename(1), admin.inviteRequests.approve(1), admin.inviteRequests.approved.list(1), admin.inviteRequests.denied.list(1), admin.inviteRequests.deny(1), admin.inviteRequests.list(1), admin.teams.admins.list(1), admin.teams.create(1), admin.teams.list(1), admin.teams.owners.list(1), admin.teams.settings.info(1), admin.teams.settings.setDefaultChannels(1), admin.teams.settings.setDescription(1), admin.teams.settings.setDiscoverability(1), admin.teams.settings.setIcon(1), admin.teams.settings.setName(1), admin.usergroups.addChannels(1), admin.usergroups.addTeams(1), admin.usergroups.listChannels(1), admin.usergroups.removeChannels(1), admin.users.assign(1), admin.users.invite(1), admin.users.list(1), admin.users.remove(1), admin.users.session.invalidate(1), admin.users.session.reset(1), admin.users.setAdmin(1), admin.users.setExpiration(1), admin.users.setOwner(1), admin.users.setRegular(1), api.test(1), apps.event.authorizations.list(1), apps.permissions.info(1), apps.permissions.request(1), apps.permissions.resources.list(1), apps.permissions.scopes.list(1), apps.permissions.users.list(1), apps.permissions.users.request(1), apps.uninstall(1), auth.revoke(1), auth.test(1), bots.info(1), calls.add(1), calls.end(1), calls.info(1), calls.participants.add(1), calls.participants.remove(1), calls.update(1), chat.delete(1), chat.deleteScheduledMessage(1), chat.getPermalink(1), chat.meMessage(1), chat.postEphemeral(1), chat.postMessage(1), chat.scheduleMessage(1), chat.scheduledMessages.list(1), chat.unfurl(1), chat.update(1), conversations.archive(1), conversations.close(1), conversations.create(1), conversations.history(1), conversations.info(1), conversations.invite(1), conversations.join(1), conversations.kick(1), conversations.leave(1), conversations.list(1), conversations.mark(1), conversations.members(1), conversations.open(1), conversations.rename(1), conversations.replies(1), conversations.setPurpose(1), conversations.setTopic(1), conversations.unarchive(1), dialog.open(1), dnd.endDnd(1), dnd.endSnooze(1), dnd.info(1), dnd.setSnooze(1), dnd.teamInfo(1), emoji.list(1), files.comments.delete(1), files.delete(1), files.info(1), files.list(1), files.remote.add(1), files.remote.info(1), files.remote.list(1), files.remote.remove(1), files.remote.share(1), files.remote.update(1), files.revokePublicURL(1), files.sharedPublicURL(1), files.upload(1), migration.exchange(1), oauth.access(1), oauth.token(1), oauth.v2.access(1), pins.add(1), pins.list(1), pins.remove(1), reactions.add(1), reactions.get(1), reactions.list(1), reactions.remove(1), reminders.add(1), reminders.complete(1), reminders.delete(1), reminders.info(1), reminders.list(1), rtm.connect(1), search.messages(1), stars.add(1), stars.list(1), stars.remove(1), team.accessLogs(1), team.billableInfo(1), team.info(1), team.integrationLogs(1), team.profile.get(1), usergroups.create(1), usergroups.disable(1), usergroups.enable(1), usergroups.list(1), usergroups.update(1), usergroups.users.list(1), usergroups.users.update(1), users.conversations(1), users.deletePhoto(1), users.getPresence(1), users.identity(1), users.info(1), users.list(1), users.lookupByEmail(1), users.profile.get(1), users.profile.set(1), users.setActive(1), users.setPhoto(1), users.setPresence(1), views.open(1), views.publish(1), views.push(1), views.update(1), workflows.stepCompleted(1), workflows.stepFailed(1), workflows.updateStep(1)\n\n@group admin.apps.approve\n@endpoint POST /admin.apps.approve\n@desc Approve an app for installation on a workspace.\n@optional {app_id: any # The id of the app to approve., request_id: any # The id of the request to approve., team_id: any}\n@returns(200) Typical success response\n\n@endgroup\n\n@group admin.apps.approved.list\n@endpoint GET /admin.apps.approved.list\n@desc List approved apps for an org or workspace.\n@optional {limit: any # The maximum number of items to return. Must be between 1 - 1000 both inclusive., cursor: any # Set `cursor` to `next_cursor` returned by the previous call to list items in the next page, team_id: any, enterprise_id: any}\n@returns(200) Typical success response\n\n@endgroup\n\n@group admin.apps.requests.list\n@endpoint GET /admin.apps.requests.list\n@desc List app requests for a team/workspace.\n@optional {limit: any # The maximum number of items to return. Must be between 1 - 1000 both inclusive., cursor: any # Set `cursor` to `next_cursor` returned by the previous call to list items in the next page, team_id: any}\n@returns(200) Typical success response\n\n@endgroup\n\n@group admin.apps.restrict\n@endpoint POST /admin.apps.restrict\n@desc Restrict an app for installation on a workspace.\n@optional {app_id: any # The id of the app to restrict., request_id: any # The id of the request to restrict., team_id: any}\n@returns(200) Typical success response\n\n@endgroup\n\n@group admin.apps.restricted.list\n@endpoint GET /admin.apps.restricted.list\n@desc List restricted apps for an org or workspace.\n@optional {limit: any # The maximum number of items to return. Must be between 1 - 1000 both inclusive., cursor: any # Set `cursor` to `next_cursor` returned by the previous call to list items in the next page, team_id: any, enterprise_id: any}\n@returns(200) Typical success response\n\n@endgroup\n\n@group admin.conversations.archive\n@endpoint POST /admin.conversations.archive\n@desc Archive a public or private channel.\n@required {channel_id: any # The channel to archive.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group admin.conversations.convertToPrivate\n@endpoint POST /admin.conversations.convertToPrivate\n@desc Convert a public channel to a private channel.\n@required {channel_id: any # The channel to convert to private.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group admin.conversations.create\n@endpoint POST /admin.conversations.create\n@desc Create a public or private channel-based conversation.\n@required {name: any # Name of the public or private channel to create., is_private: any # When `true`, creates a private channel instead of a public channel}\n@optional {description: any # Description of the public or private channel to create., org_wide: any # 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: any # The workspace to create the channel in. Note: this argument is required unless you set `org_wide=true`.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group admin.conversations.delete\n@endpoint POST /admin.conversations.delete\n@desc Delete a public or private channel.\n@required {channel_id: any # The channel to delete.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group admin.conversations.disconnectShared\n@endpoint POST /admin.conversations.disconnectShared\n@desc Disconnect a connected channel from one or more workspaces.\n@required {channel_id: any # The channel to be disconnected from some workspaces.}\n@optional {leaving_team_ids: any # The team to be removed from the channel. Currently only a single team id can be specified.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group admin.conversations.ekm.listOriginalConnectedChannelInfo\n@endpoint GET /admin.conversations.ekm.listOriginalConnectedChannelInfo\n@desc List all disconnected channels—i.e., channels that were once connected to other workspaces and then disconnected—and the corresponding original channel IDs for key revocation with EKM.\n@optional {channel_ids: any # A comma-separated list of channels to filter to., team_ids: any # A comma-separated list of the workspaces to which the channels you would like returned belong., limit: any # The maximum number of items to return. Must be between 1 - 1000 both inclusive., cursor: any # Set `cursor` to `next_cursor` returned by the previous call to list items in the next page.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group admin.conversations.getConversationPrefs\n@endpoint GET /admin.conversations.getConversationPrefs\n@desc Get conversation preferences for a public or private channel.\n@required {channel_id: any # The channel to get preferences for.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group admin.conversations.getTeams\n@endpoint GET /admin.conversations.getTeams\n@desc Get all the workspaces a given public or private channel is connected to within this Enterprise org.\n@required {channel_id: any # The channel to determine connected workspaces within the organization for.}\n@optional {cursor: any # Set `cursor` to `next_cursor` returned by the previous call to list items in the next page, limit: any # The maximum number of items to return. Must be between 1 - 1000 both inclusive.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group admin.conversations.invite\n@endpoint POST /admin.conversations.invite\n@desc Invite a user to a public or private channel.\n@required {user_ids: any # The users to invite., channel_id: any # The channel that the users will be invited to.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group admin.conversations.rename\n@endpoint POST /admin.conversations.rename\n@desc Rename a public or private channel.\n@required {channel_id: any # The channel to rename., name: any}\n@returns(200) Typical success response\n\n@endgroup\n\n@group admin.conversations.restrictAccess.addGroup\n@endpoint POST /admin.conversations.restrictAccess.addGroup\n@desc Add an allowlist of IDP groups for accessing a channel\n@required {group_id: any # 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: any # The channel to link this group to.}\n@optional {team_id: any # 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.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group admin.conversations.restrictAccess.listGroups\n@endpoint GET /admin.conversations.restrictAccess.listGroups\n@desc List all IDP Groups linked to a channel\n@required {channel_id: any}\n@optional {team_id: any # 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.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group admin.conversations.restrictAccess.removeGroup\n@endpoint POST /admin.conversations.restrictAccess.removeGroup\n@desc Remove a linked IDP group linked from a private channel\n@required {team_id: any # 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: any # 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: any # The channel to remove the linked group from.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group admin.conversations.search\n@endpoint GET /admin.conversations.search\n@desc Search for public or private channels in an Enterprise organization.\n@optional {team_ids: any # Comma separated string of team IDs, signifying the workspaces to search through., query: any # Name of the the channel to query by., limit: any # Maximum number of items to be returned. Must be between 1 - 20 both inclusive. Default is 10., cursor: any # Set `cursor` to `next_cursor` returned by the previous call to list items in the next page., search_channel_types: any # The type of channel to include or exclude in the search. For example `private` will search private channels, while `private_exclude` will exclude them. For a full list of types, check the [Types section](#types)., sort: any # Possible values are `relevant` (search ranking based on what we think is closest), `name` (alphabetical), `member_count` (number of users in the channel), and `created` (date channel was created). You can optionally pair this with the `sort_dir` arg to change how it is sorted, sort_dir: any # Sort direction. Possible values are `asc` for ascending order like (1, 2, 3) or (a, b, c), and `desc` for descending order like (3, 2, 1) or (c, b, a)}\n@returns(200) Typical success response\n\n@endgroup\n\n@group admin.conversations.setConversationPrefs\n@endpoint POST /admin.conversations.setConversationPrefs\n@desc Set the posting permissions for a public or private channel.\n@required {channel_id: any # The channel to set the prefs for, prefs: any # The prefs for this channel in a stringified JSON format.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group admin.conversations.setTeams\n@endpoint POST /admin.conversations.setTeams\n@desc Set the workspaces in an Enterprise grid org that connect to a public or private channel.\n@required {channel_id: any # The encoded `channel_id` to add or remove to workspaces.}\n@optional {team_id: any # The workspace to which the channel belongs. Omit this argument if the channel is a cross-workspace shared channel., target_team_ids: any # 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: any # True if channel has to be converted to an org channel}\n@returns(200) Typical success response\n\n@endgroup\n\n@group admin.conversations.unarchive\n@endpoint POST /admin.conversations.unarchive\n@desc Unarchive a public or private channel.\n@required {channel_id: any # The channel to unarchive.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group admin.emoji.add\n@endpoint POST /admin.emoji.add\n@desc Add an emoji.\n@required {name: any # The name of the emoji to be removed. Colons (`:myemoji:`) around the value are not required, although they may be included., url: any # The URL of a file to use as an image for the emoji. Square images under 128KB and with transparent backgrounds work best.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group admin.emoji.addAlias\n@endpoint POST /admin.emoji.addAlias\n@desc Add an emoji alias.\n@required {name: any # The name of the emoji to be aliased. Colons (`:myemoji:`) around the value are not required, although they may be included., alias_for: any # The alias of the emoji.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group admin.emoji.list\n@endpoint GET /admin.emoji.list\n@desc List emoji for an Enterprise Grid organization.\n@optional {cursor: any # Set `cursor` to `next_cursor` returned by the previous call to list items in the next page, limit: any # The maximum number of items to return. Must be between 1 - 1000 both inclusive.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group admin.emoji.remove\n@endpoint POST /admin.emoji.remove\n@desc Remove an emoji across an Enterprise Grid organization\n@required {name: any # The name of the emoji to be removed. Colons (`:myemoji:`) around the value are not required, although they may be included.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group admin.emoji.rename\n@endpoint POST /admin.emoji.rename\n@desc Rename an emoji.\n@required {name: any # The name of the emoji to be renamed. Colons (`:myemoji:`) around the value are not required, although they may be included., new_name: any # The new name of the emoji.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group admin.inviteRequests.approve\n@endpoint POST /admin.inviteRequests.approve\n@desc Approve a workspace invite request.\n@required {invite_request_id: any # ID of the request to invite.}\n@optional {team_id: any # ID for the workspace where the invite request was made.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group admin.inviteRequests.approved.list\n@endpoint GET /admin.inviteRequests.approved.list\n@desc List all approved workspace invite requests.\n@optional {team_id: any # ID for the workspace where the invite requests were made., cursor: any # Value of the `next_cursor` field sent as part of the previous API response, limit: any # The number of results that will be returned by the API on each invocation. Must be between 1 - 1000, both inclusive}\n@returns(200) Typical success response\n\n@endgroup\n\n@group admin.inviteRequests.denied.list\n@endpoint GET /admin.inviteRequests.denied.list\n@desc List all denied workspace invite requests.\n@optional {team_id: any # ID for the workspace where the invite requests were made., cursor: any # Value of the `next_cursor` field sent as part of the previous api response, limit: any # The number of results that will be returned by the API on each invocation. Must be between 1 - 1000 both inclusive}\n@returns(200) Typical success response\n\n@endgroup\n\n@group admin.inviteRequests.deny\n@endpoint POST /admin.inviteRequests.deny\n@desc Deny a workspace invite request.\n@required {invite_request_id: any # ID of the request to invite.}\n@optional {team_id: any # ID for the workspace where the invite request was made.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group admin.inviteRequests.list\n@endpoint GET /admin.inviteRequests.list\n@desc List all pending workspace invite requests.\n@optional {team_id: any # ID for the workspace where the invite requests were made., cursor: any # Value of the `next_cursor` field sent as part of the previous API response, limit: any # The number of results that will be returned by the API on each invocation. Must be between 1 - 1000, both inclusive}\n@returns(200) Typical success response\n\n@endgroup\n\n@group admin.teams.admins.list\n@endpoint GET /admin.teams.admins.list\n@desc List all of the admins on a given workspace.\n@required {team_id: any}\n@optional {limit: any # The maximum number of items to return., cursor: any # Set `cursor` to `next_cursor` returned by the previous call to list items in the next page.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group admin.teams.create\n@endpoint POST /admin.teams.create\n@desc Create an Enterprise team.\n@required {team_domain: any # Team domain (for example, slacksoftballteam)., team_name: any # Team name (for example, Slack Softball Team).}\n@optional {team_description: any # Description for the team., team_discoverability: any # Who can join the team. A team's discoverability can be `open`, `closed`, `invite_only`, or `unlisted`.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group admin.teams.list\n@endpoint GET /admin.teams.list\n@desc List all teams on an Enterprise organization\n@optional {limit: any # The maximum number of items to return. Must be between 1 - 100 both inclusive., cursor: any # Set `cursor` to `next_cursor` returned by the previous call to list items in the next page.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group admin.teams.owners.list\n@endpoint GET /admin.teams.owners.list\n@desc List all of the owners on a given workspace.\n@required {team_id: any}\n@optional {limit: any # The maximum number of items to return. Must be between 1 - 1000 both inclusive., cursor: any # Set `cursor` to `next_cursor` returned by the previous call to list items in the next page.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group admin.teams.settings.info\n@endpoint GET /admin.teams.settings.info\n@desc Fetch information about settings in a workspace\n@required {team_id: any}\n@returns(200) Typical success response\n\n@endgroup\n\n@group admin.teams.settings.setDefaultChannels\n@endpoint POST /admin.teams.settings.setDefaultChannels\n@desc Set the default channels of a workspace.\n@required {team_id: any # ID for the workspace to set the default channel for., channel_ids: any # An array of channel IDs.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group admin.teams.settings.setDescription\n@endpoint POST /admin.teams.settings.setDescription\n@desc Set the description of a given workspace.\n@required {team_id: any # ID for the workspace to set the description for., description: any # The new description for the workspace.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group admin.teams.settings.setDiscoverability\n@endpoint POST /admin.teams.settings.setDiscoverability\n@desc An API method that allows admins to set the discoverability of a given workspace\n@required {team_id: any # The ID of the workspace to set discoverability on., discoverability: any # This workspace's discovery setting. It must be set to one of `open`, `invite_only`, `closed`, or `unlisted`.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group admin.teams.settings.setIcon\n@endpoint POST /admin.teams.settings.setIcon\n@desc Sets the icon of a workspace.\n@required {image_url: any # Image URL for the icon, team_id: any # ID for the workspace to set the icon for.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group admin.teams.settings.setName\n@endpoint POST /admin.teams.settings.setName\n@desc Set the name of a given workspace.\n@required {team_id: any # ID for the workspace to set the name for., name: any # The new name of the workspace.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group admin.usergroups.addChannels\n@endpoint POST /admin.usergroups.addChannels\n@desc Add one or more default channels to an IDP group.\n@required {usergroup_id: any # ID of the IDP group to add default channels for., channel_ids: any # Comma separated string of channel IDs.}\n@optional {team_id: any # The workspace to add default channels in.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group admin.usergroups.addTeams\n@endpoint POST /admin.usergroups.addTeams\n@desc Associate one or more default workspaces with an organization-wide IDP group.\n@required {usergroup_id: any # An encoded usergroup (IDP Group) ID., team_ids: any # A comma separated list of encoded team (workspace) IDs. Each workspace *MUST* belong to the organization associated with the token.}\n@optional {auto_provision: any # When `true`, this method automatically creates new workspace accounts for the IDP group members.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group admin.usergroups.listChannels\n@endpoint GET /admin.usergroups.listChannels\n@desc List the channels linked to an org-level IDP group (user group).\n@required {usergroup_id: any # ID of the IDP group to list default channels for.}\n@optional {team_id: any # ID of the the workspace., include_num_members: any # Flag to include or exclude the count of members per channel.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group admin.usergroups.removeChannels\n@endpoint POST /admin.usergroups.removeChannels\n@desc Remove one or more default channels from an org-level IDP group (user group).\n@required {usergroup_id: any # ID of the IDP Group, channel_ids: any # Comma-separated string of channel IDs}\n@returns(200) Typical success response\n\n@endgroup\n\n@group admin.users.assign\n@endpoint POST /admin.users.assign\n@desc Add an Enterprise user to a workspace.\n@required {team_id: any # The ID (`T1234`) of the workspace., user_id: any # The ID of the user to add to the workspace.}\n@optional {is_restricted: any # True if user should be added to the workspace as a guest., is_ultra_restricted: any # True if user should be added to the workspace as a single-channel guest., channel_ids: any # Comma separated values of channel IDs to add user in the new workspace.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group admin.users.invite\n@endpoint POST /admin.users.invite\n@desc Invite a user to a workspace.\n@required {team_id: any # The ID (`T1234`) of the workspace., email: any # The email address of the person to invite., channel_ids: any # A comma-separated list of `channel_id`s for this user to join. At least one channel is required.}\n@optional {custom_message: any # An optional message to send to the user in the invite email., real_name: any # Full name of the user., resend: any # Allow this invite to be resent in the future if a user has not signed up yet. (default: false), is_restricted: any # Is this user a multi-channel guest user? (default: false), is_ultra_restricted: any # Is this user a single channel guest user? (default: false), guest_expiration_ts: any # 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.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group admin.users.list\n@endpoint GET /admin.users.list\n@desc List users on a workspace\n@required {team_id: any # The ID (`T1234`) of the workspace.}\n@optional {cursor: any # Set `cursor` to `next_cursor` returned by the previous call to list items in the next page., limit: any # Limit for how many users to be retrieved per page}\n@returns(200) Typical success response\n\n@endgroup\n\n@group admin.users.remove\n@endpoint POST /admin.users.remove\n@desc Remove a user from a workspace.\n@required {team_id: any # The ID (`T1234`) of the workspace., user_id: any # The ID of the user to remove.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group admin.users.session.invalidate\n@endpoint POST /admin.users.session.invalidate\n@desc Invalidate a single session for a user by session_id\n@required {team_id: any # ID of the team that the session belongs to, session_id: any}\n@returns(200) Typical success response\n\n@endgroup\n\n@group admin.users.session.reset\n@endpoint POST /admin.users.session.reset\n@desc Wipes all valid sessions on all devices for a given user\n@required {user_id: any # The ID of the user to wipe sessions for}\n@optional {mobile_only: any # Only expire mobile sessions (default: false), web_only: any # Only expire web sessions (default: false)}\n@returns(200) Typical success response\n\n@endgroup\n\n@group admin.users.setAdmin\n@endpoint POST /admin.users.setAdmin\n@desc Set an existing guest, regular user, or owner to be an admin user.\n@required {team_id: any # The ID (`T1234`) of the workspace., user_id: any # The ID of the user to designate as an admin.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group admin.users.setExpiration\n@endpoint POST /admin.users.setExpiration\n@desc Set an expiration for a guest user\n@required {team_id: any # The ID (`T1234`) of the workspace., user_id: any # The ID of the user to set an expiration for., expiration_ts: any # Timestamp when guest account should be disabled.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group admin.users.setOwner\n@endpoint POST /admin.users.setOwner\n@desc Set an existing guest, regular user, or admin user to be a workspace owner.\n@required {team_id: any # The ID (`T1234`) of the workspace., user_id: any # Id of the user to promote to owner.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group admin.users.setRegular\n@endpoint POST /admin.users.setRegular\n@desc Set an existing guest user, admin user, or owner to be a regular user.\n@required {team_id: any # The ID (`T1234`) of the workspace., user_id: any # The ID of the user to designate as a regular user.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group api.test\n@endpoint GET /api.test\n@desc Checks API calling code.\n@optional {error: any # Error response to return, foo: any # example property to return}\n@returns(200) Standard success response\n\n@endgroup\n\n@group apps.event.authorizations.list\n@endpoint GET /apps.event.authorizations.list\n@desc Get a list of authorizations for the given event context. Each authorization represents an app installation that the event is visible to.\n@required {event_context: any}\n@optional {cursor: any, limit: any}\n@returns(200) Typical success response\n\n@endgroup\n\n@group apps.permissions.info\n@endpoint GET /apps.permissions.info\n@desc Returns list of permissions this app has on a team.\n@returns(200) Standard success response when used with a user token\n\n@endgroup\n\n@group apps.permissions.request\n@endpoint GET /apps.permissions.request\n@desc Allows an app to request additional scopes\n@required {scopes: any # A comma separated list of scopes to request for, trigger_id: any # Token used to trigger the permissions API}\n@returns(200) Standard success response when used with a user token\n\n@endgroup\n\n@group apps.permissions.resources.list\n@endpoint GET /apps.permissions.resources.list\n@desc Returns list of resource grants this app has on a team.\n@optional {cursor: any # Paginate through collections of data by setting the `cursor` parameter to a `next_cursor` attribute returned by a previous request's `response_metadata`. Default value fetches the first \"page\" of the collection. See [pagination](/docs/pagination) for more detail., limit: any # The maximum number of items to return.}\n@returns(200) Typical successful paginated response\n\n@endgroup\n\n@group apps.permissions.scopes.list\n@endpoint GET /apps.permissions.scopes.list\n@desc Returns list of scopes this app has on a team.\n@returns(200) Typical successful paginated response\n\n@endgroup\n\n@group apps.permissions.users.list\n@endpoint GET /apps.permissions.users.list\n@desc Returns list of user grants and corresponding scopes this app has on a team.\n@optional {cursor: any # Paginate through collections of data by setting the `cursor` parameter to a `next_cursor` attribute returned by a previous request's `response_metadata`. Default value fetches the first \"page\" of the collection. See [pagination](/docs/pagination) for more detail., limit: any # The maximum number of items to return.}\n@returns(200) Typical successful paginated response\n\n@endgroup\n\n@group apps.permissions.users.request\n@endpoint GET /apps.permissions.users.request\n@desc Enables an app to trigger a permissions modal to grant an app access to a user access scope.\n@required {scopes: any # A comma separated list of user scopes to request for, trigger_id: any # Token used to trigger the request, user: any # The user this scope is being requested for}\n@returns(200) Standard success response when used with a user token\n\n@endgroup\n\n@group apps.uninstall\n@endpoint GET /apps.uninstall\n@desc Uninstalls your app from a workspace.\n@optional {client_id: any # Issued when you created your application., client_secret: any # Issued when you created your application.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group auth.revoke\n@endpoint GET /auth.revoke\n@desc Revokes a token.\n@optional {test: any # Setting this parameter to `1` triggers a _testing mode_ where the specified token will not actually be revoked.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group auth.test\n@endpoint GET /auth.test\n@desc Checks authentication & identity.\n@returns(200) Standard success response when used with a user token\n\n@endgroup\n\n@group bots.info\n@endpoint GET /bots.info\n@desc Gets information about a bot user.\n@optional {bot: any # Bot user to get info on}\n@returns(200) When successful, returns bot info by bot ID.\n\n@endgroup\n\n@group calls.add\n@endpoint POST /calls.add\n@desc Registers a new Call.\n@required {external_unique_id: any # An ID supplied by the 3rd-party Call provider. It must be unique across all Calls from that service., join_url: any # The URL required for a client to join the Call.}\n@optional {external_display_id: any # An optional, human-readable ID supplied by the 3rd-party Call provider. If supplied, this ID will be displayed in the Call object., desktop_app_join_url: any # When supplied, available Slack clients will attempt to directly launch the 3rd-party Call with this URL., date_start: any # Call start time in UTC UNIX timestamp format, title: any # The name of the Call., created_by: any # 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: any # The list of users to register as participants in the Call. [Read more on how to specify users here](/apis/calls#users).}\n@returns(200) Typical success response\n\n@endgroup\n\n@group calls.end\n@endpoint POST /calls.end\n@desc Ends a Call.\n@required {id: any # `id` returned when registering the call using the [`calls.add`](/methods/calls.add) method.}\n@optional {duration: any # Call duration in seconds}\n@returns(200) Typical success response\n\n@endgroup\n\n@group calls.info\n@endpoint GET /calls.info\n@desc Returns information about a Call.\n@required {id: any # `id` of the Call returned by the [`calls.add`](/methods/calls.add) method.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group calls.participants.add\n@endpoint POST /calls.participants.add\n@desc Registers new participants added to a Call.\n@required {id: any # `id` returned by the [`calls.add`](/methods/calls.add) method., users: any # The list of users to add as participants in the Call. [Read more on how to specify users here](/apis/calls#users).}\n@returns(200) Typical success response\n\n@endgroup\n\n@group calls.participants.remove\n@endpoint POST /calls.participants.remove\n@desc Registers participants removed from a Call.\n@required {id: any # `id` returned by the [`calls.add`](/methods/calls.add) method., users: any # The list of users to remove as participants in the Call. [Read more on how to specify users here](/apis/calls#users).}\n@returns(200) Typical success response\n\n@endgroup\n\n@group calls.update\n@endpoint POST /calls.update\n@desc Updates information about a Call.\n@required {id: any # `id` returned by the [`calls.add`](/methods/calls.add) method.}\n@optional {title: any # The name of the Call., join_url: any # The URL required for a client to join the Call., desktop_app_join_url: any # When supplied, available Slack clients will attempt to directly launch the 3rd-party Call with this URL.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group chat.delete\n@endpoint POST /chat.delete\n@desc Deletes a message.\n@optional {ts: any # Timestamp of the message to be deleted., channel: any # Channel containing the message to be deleted., as_user: any # 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.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group chat.deleteScheduledMessage\n@endpoint POST /chat.deleteScheduledMessage\n@desc Deletes a pending scheduled message from the queue.\n@required {channel: any # The channel the scheduled_message is posting to, scheduled_message_id: any # `scheduled_message_id` returned from call to chat.scheduleMessage}\n@optional {as_user: any # 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.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group chat.getPermalink\n@endpoint GET /chat.getPermalink\n@desc Retrieve a permalink URL for a specific extant message\n@required {channel: any # The ID of the conversation or channel containing the message, message_ts: any # A message's `ts` value, uniquely identifying it within a channel}\n@returns(200) Standard success response\n\n@endgroup\n\n@group chat.meMessage\n@endpoint POST /chat.meMessage\n@desc Share a me message into a channel.\n@optional {channel: any # Channel to send message to. Can be a public channel, private group or IM channel. Can be an encoded ID, or a name., text: any # Text of the message to send.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group chat.postEphemeral\n@endpoint POST /chat.postEphemeral\n@desc Sends an ephemeral message to a user in a channel.\n@required {channel: any # Channel, private group, or IM channel to send message to. Can be an encoded ID, or a name., user: any # `id` of the user who will receive the ephemeral message. The user should be in the channel specified by the `channel` argument.}\n@optional {as_user: any # 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: any # A JSON-based array of structured attachments, presented as a URL-encoded string., blocks: any # A JSON-based array of structured blocks, presented as a URL-encoded string., icon_emoji: any # 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: any # 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: any # Find and link channel names and usernames., parse: any # Change how messages are treated. Defaults to `none`. See [below](#formatting)., text: any # 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: any # 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., username: any # Set your bot's user name. Must be used in conjunction with `as_user` set to false, otherwise ignored. See [authorship](#authorship) below.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group chat.postMessage\n@endpoint POST /chat.postMessage\n@desc Sends a message to a channel.\n@required {channel: any # Channel, private group, or IM channel to send message to. Can be an encoded ID, or a name. See [below](#channels) for more details.}\n@optional {as_user: any # Pass true to post the message as the authed user, instead of as a bot. Defaults to false. See [authorship](#authorship) below., attachments: any # A JSON-based array of structured attachments, presented as a URL-encoded string., blocks: any # A JSON-based array of structured blocks, presented as a URL-encoded string., icon_emoji: any # 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: any # 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: any # Find and link channel names and usernames., mrkdwn: any # Disable Slack markup parsing by setting to `false`. Enabled by default., parse: any # Change how messages are treated. Defaults to `none`. See [below](#formatting)., reply_broadcast: any # 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: any # 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: any # 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: any # Pass true to enable unfurling of primarily text-based content., unfurl_media: any # Pass false to disable unfurling of media content., username: any # Set your bot's user name. Must be used in conjunction with `as_user` set to false, otherwise ignored. See [authorship](#authorship) below.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group chat.scheduleMessage\n@endpoint POST /chat.scheduleMessage\n@desc Schedules a message to be sent to a channel.\n@optional {channel: any # 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: any # 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: any # Unix EPOCH timestamp of time in future to send the message., parse: any # Change how messages are treated. Defaults to `none`. See [chat.postMessage](chat.postMessage#formatting)., as_user: any # 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: any # Find and link channel names and usernames., attachments: any # A JSON-based array of structured attachments, presented as a URL-encoded string., blocks: any # A JSON-based array of structured blocks, presented as a URL-encoded string., unfurl_links: any # Pass true to enable unfurling of primarily text-based content., unfurl_media: any # Pass false to disable unfurling of media content., thread_ts: any # 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: any # Used in conjunction with `thread_ts` and indicates whether reply should be made visible to everyone in the channel or conversation. Defaults to `false`.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group chat.scheduledMessages.list\n@endpoint GET /chat.scheduledMessages.list\n@desc Returns a list of scheduled messages.\n@optional {channel: any # The channel of the scheduled messages, latest: any # A UNIX timestamp of the latest value in the time range, oldest: any # A UNIX timestamp of the oldest value in the time range, limit: any # Maximum number of original entries to return., cursor: any # For pagination purposes, this is the `cursor` value returned from a previous call to `chat.scheduledmessages.list` indicating where you want to start this call from.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group chat.unfurl\n@endpoint POST /chat.unfurl\n@desc Provide custom unfurl behavior for user-posted URLs\n@required {channel: any # Channel ID of the message, ts: any # Timestamp of the message to add unfurl behavior to.}\n@optional {unfurls: any # 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: any # 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: any # Set to `true` or `1` to indicate the user must install your Slack app to trigger unfurls for this domain, user_auth_url: any # Send users to this custom URL where they will complete authentication in your app to fully trigger unfurling. Value should be properly URL-encoded.}\n@returns(200) Typical, minimal success response\n\n@endgroup\n\n@group chat.update\n@endpoint POST /chat.update\n@desc Updates a message.\n@required {channel: any # Channel containing the message to be updated., ts: any # Timestamp of the message to be updated.}\n@optional {as_user: any # Pass true to update the message as the authed user. [Bot users](/bot-users) in this context are considered authed users., attachments: any # 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: any # 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., link_names: any # 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: any # 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: any # New text for the message, using the [default formatting rules](/reference/surfaces/formatting). It's not required when presenting `blocks` or `attachments`.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group conversations.archive\n@endpoint POST /conversations.archive\n@desc Archives a conversation.\n@optional {channel: any # ID of conversation to archive}\n@returns(200) Typical success response\n\n@endgroup\n\n@group conversations.close\n@endpoint POST /conversations.close\n@desc Closes a direct message or multi-person direct message.\n@optional {channel: any # Conversation to close.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group conversations.create\n@endpoint POST /conversations.create\n@desc Initiates a public or private channel-based conversation\n@optional {name: any # Name of the public or private channel to create, is_private: any # Create a private channel instead of a public one}\n@returns(200) If successful, the command returns a rather stark [conversation object](/types/conversation)\n\n@endgroup\n\n@group conversations.history\n@endpoint GET /conversations.history\n@desc Fetches a conversation's history of messages and events.\n@optional {channel: any # Conversation ID to fetch history for., latest: any # End of time range of messages to include in results., oldest: any # Start of time range of messages to include in results., inclusive: any # Include messages with latest or oldest timestamp in results only when either timestamp is specified., limit: any # The maximum number of items to return. Fewer than the requested number of items may be returned, even if the end of the users list hasn't been reached., cursor: any # Paginate through collections of data by setting the `cursor` parameter to a `next_cursor` attribute returned by a previous request's `response_metadata`. Default value fetches the first \"page\" of the collection. See [pagination](/docs/pagination) for more detail.}\n@returns(200) Typical success response containing a channel's messages\n\n@endgroup\n\n@group conversations.info\n@endpoint GET /conversations.info\n@desc Retrieve information about a conversation.\n@optional {channel: any # Conversation ID to learn more about, include_locale: any # Set this to `true` to receive the locale for this conversation. Defaults to `false`, include_num_members: any # Set to `true` to include the member count for the specified conversation. Defaults to `false`}\n@returns(200) Typical success response for a public channel. (Also, a response from a private channel and a multi-party IM is very similar to this example.)\n\n@endgroup\n\n@group conversations.invite\n@endpoint POST /conversations.invite\n@desc Invites users to a channel.\n@optional {channel: any # The ID of the public or private channel to invite user(s) to., users: any # A comma separated list of user IDs. Up to 1000 users may be listed.}\n@returns(200) Typical success response when an invitation is extended\n\n@endgroup\n\n@group conversations.join\n@endpoint POST /conversations.join\n@desc Joins an existing conversation.\n@optional {channel: any # ID of conversation to join}\n@returns(200) Typical success response\n\n@endgroup\n\n@group conversations.kick\n@endpoint POST /conversations.kick\n@desc Removes a user from a conversation.\n@optional {channel: any # ID of conversation to remove user from., user: any # User ID to be removed.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group conversations.leave\n@endpoint POST /conversations.leave\n@desc Leaves a conversation.\n@optional {channel: any # Conversation to leave}\n@returns(200) Typical success response\n\n@endgroup\n\n@group conversations.list\n@endpoint GET /conversations.list\n@desc Lists all channels in a Slack team.\n@optional {exclude_archived: any # Set to `true` to exclude archived channels from the list, types: any # Mix and match channel types by providing a comma-separated list of any combination of `public_channel`, `private_channel`, `mpim`, `im`, limit: any # The maximum number of items to return. Fewer than the requested number of items may be returned, even if the end of the list hasn't been reached. Must be an integer no larger than 1000., cursor: any # Paginate through collections of data by setting the `cursor` parameter to a `next_cursor` attribute returned by a previous request's `response_metadata`. Default value fetches the first \"page\" of the collection. See [pagination](/docs/pagination) for more detail.}\n@returns(200) Typical success response with only public channels\n\n@endgroup\n\n@group conversations.mark\n@endpoint POST /conversations.mark\n@desc Sets the read cursor in a channel.\n@optional {channel: any # Channel or conversation to set the read cursor for., ts: any # Unique identifier of message you want marked as most recently seen in this conversation.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group conversations.members\n@endpoint GET /conversations.members\n@desc Retrieve members of a conversation.\n@optional {channel: any # ID of the conversation to retrieve members for, limit: any # The maximum number of items to return. Fewer than the requested number of items may be returned, even if the end of the users list hasn't been reached., cursor: any # Paginate through collections of data by setting the `cursor` parameter to a `next_cursor` attribute returned by a previous request's `response_metadata`. Default value fetches the first \"page\" of the collection. See [pagination](/docs/pagination) for more detail.}\n@returns(200) Typical paginated success response\n\n@endgroup\n\n@group conversations.open\n@endpoint POST /conversations.open\n@desc Opens or resumes a direct message or multi-person direct message.\n@optional {channel: any # Resume a conversation by supplying an `im` or `mpim`'s ID. Or provide the `users` field instead., users: any # 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: any # Boolean, indicates you want the full IM channel definition in the response.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group conversations.rename\n@endpoint POST /conversations.rename\n@desc Renames a conversation.\n@optional {channel: any # ID of conversation to rename, name: any # New name for conversation.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group conversations.replies\n@endpoint GET /conversations.replies\n@desc Retrieve a thread of messages posted to a conversation\n@optional {channel: any # Conversation ID to fetch thread from., ts: any # Unique identifier of a thread's parent message. `ts` must be the timestamp of an existing message with 0 or more replies. If there are no replies then just the single message referenced by `ts` will return - it is just an ordinary, unthreaded message., latest: any # End of time range of messages to include in results., oldest: any # Start of time range of messages to include in results., inclusive: any # Include messages with latest or oldest timestamp in results only when either timestamp is specified., limit: any # The maximum number of items to return. Fewer than the requested number of items may be returned, even if the end of the users list hasn't been reached., cursor: any # Paginate through collections of data by setting the `cursor` parameter to a `next_cursor` attribute returned by a previous request's `response_metadata`. Default value fetches the first \"page\" of the collection. See [pagination](/docs/pagination) for more detail.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group conversations.setPurpose\n@endpoint POST /conversations.setPurpose\n@desc Sets the purpose for a conversation.\n@optional {channel: any # Conversation to set the purpose of, purpose: any # A new, specialer purpose}\n@returns(200) Typical success response\n\n@endgroup\n\n@group conversations.setTopic\n@endpoint POST /conversations.setTopic\n@desc Sets the topic for a conversation.\n@optional {channel: any # Conversation to set the topic of, topic: any # The new topic string. Does not support formatting or linkification.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group conversations.unarchive\n@endpoint POST /conversations.unarchive\n@desc Reverses conversation archival.\n@optional {channel: any # ID of conversation to unarchive}\n@returns(200) Typical success response\n\n@endgroup\n\n@group dialog.open\n@endpoint GET /dialog.open\n@desc Open a dialog with a user\n@required {dialog: any # The dialog definition. This must be a JSON-encoded string., trigger_id: any # Exchange a trigger to post to the user.}\n@returns(200) Typical success response is quite minimal.\n\n@endgroup\n\n@group dnd.endDnd\n@endpoint POST /dnd.endDnd\n@desc Ends the current user's Do Not Disturb session immediately.\n@returns(200) Typical success response\n\n@endgroup\n\n@group dnd.endSnooze\n@endpoint POST /dnd.endSnooze\n@desc Ends the current user's snooze mode immediately.\n@returns(200) Typical success response\n\n@endgroup\n\n@group dnd.info\n@endpoint GET /dnd.info\n@desc Retrieves a user's current Do Not Disturb status.\n@optional {user: any # User to fetch status for (defaults to current user)}\n@returns(200) Typical success response\n\n@endgroup\n\n@group dnd.setSnooze\n@endpoint POST /dnd.setSnooze\n@desc Turns on Do Not Disturb mode for the current user, or changes its duration.\n@required {num_minutes: any # Number of minutes, from now, to snooze until.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group dnd.teamInfo\n@endpoint GET /dnd.teamInfo\n@desc Retrieves the Do Not Disturb status for up to 50 users on a team.\n@optional {users: any # Comma-separated list of users to fetch Do Not Disturb status for}\n@returns(200) Typical success response\n\n@endgroup\n\n@group emoji.list\n@endpoint GET /emoji.list\n@desc Lists custom emoji for a team.\n@returns(200) Typical success response\n\n@endgroup\n\n@group files.comments.delete\n@endpoint POST /files.comments.delete\n@desc Deletes an existing comment on a file.\n@optional {file: any # File to delete a comment from., id: any # The comment to delete.}\n@returns(200) Standard success response is very simple\n\n@endgroup\n\n@group files.delete\n@endpoint POST /files.delete\n@desc Deletes a file.\n@optional {file: any # ID of file to delete.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group files.info\n@endpoint GET /files.info\n@desc Gets information about a file.\n@optional {file: any # Specify a file by providing its ID., count: any, page: any, limit: any # The maximum number of items to return. Fewer than the requested number of items may be returned, even if the end of the list hasn't been reached., cursor: any # Parameter for pagination. File comments are paginated for a single file. Set `cursor` equal to the `next_cursor` attribute returned by the previous request's `response_metadata`. This parameter is optional, but pagination is mandatory: the default value simply fetches the first \"page\" of the collection of comments. See [pagination](/docs/pagination) for more details.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group files.list\n@endpoint GET /files.list\n@desc List for a team, in a channel, or from a user with applied filters.\n@optional {user: any # Filter files created by a single user., channel: any # Filter files appearing in a specific channel, indicated by its ID., ts_from: any # Filter files created after this timestamp (inclusive)., ts_to: any # Filter files created before this timestamp (inclusive)., types: any # Filter files by type ([see below](#file_types)). You can pass multiple values in the types argument, like `types=spaces,snippets`.The default value is `all`, which does not filter the list., count: any, page: any, show_files_hidden_by_limit: any # Show truncated file info for files hidden due to being too old, and the team who owns the file being over the file limit.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group files.remote.add\n@endpoint POST /files.remote.add\n@desc Adds a file from a remote service\n@optional {external_id: any # Creator defined GUID for the file., title: any # Title of the file being shared., filetype: any # type of file, external_url: any # URL of the remote file., preview_image: any # Preview of the document via `multipart/form-data`., indexable_file_contents: any # A text file (txt, pdf, doc, etc.) containing textual search terms that are used to improve discovery of the remote file.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group files.remote.info\n@endpoint GET /files.remote.info\n@desc Retrieve information about a remote file added to Slack\n@optional {file: any # Specify a file by providing its ID., external_id: any # Creator defined GUID for the file.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group files.remote.list\n@endpoint GET /files.remote.list\n@desc Retrieve information about a remote file added to Slack\n@optional {channel: any # Filter files appearing in a specific channel, indicated by its ID., ts_from: any # Filter files created after this timestamp (inclusive)., ts_to: any # Filter files created before this timestamp (inclusive)., limit: any # The maximum number of items to return., cursor: any # Paginate through collections of data by setting the `cursor` parameter to a `next_cursor` attribute returned by a previous request's `response_metadata`. Default value fetches the first \"page\" of the collection. See [pagination](/docs/pagination) for more detail.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group files.remote.remove\n@endpoint POST /files.remote.remove\n@desc Remove a remote file.\n@optional {file: any # Specify a file by providing its ID., external_id: any # Creator defined GUID for the file.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group files.remote.share\n@endpoint GET /files.remote.share\n@desc Share a remote file into a channel.\n@optional {file: any # Specify a file registered with Slack by providing its ID. Either this field or `external_id` or both are required., external_id: any # The globally unique identifier (GUID) for the file, as set by the app registering the file with Slack.  Either this field or `file` or both are required., channels: any # Comma-separated list of channel IDs where the file will be shared.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group files.remote.update\n@endpoint POST /files.remote.update\n@desc Updates an existing remote file.\n@optional {file: any # Specify a file by providing its ID., external_id: any # Creator defined GUID for the file., title: any # Title of the file being shared., filetype: any # type of file, external_url: any # URL of the remote file., preview_image: any # Preview of the document via `multipart/form-data`., indexable_file_contents: any # File containing contents that can be used to improve searchability for the remote file.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group files.revokePublicURL\n@endpoint POST /files.revokePublicURL\n@desc Revokes public/external sharing access for a file\n@optional {file: any # File to revoke}\n@returns(200) Typical success response\n\n@endgroup\n\n@group files.sharedPublicURL\n@endpoint POST /files.sharedPublicURL\n@desc Enables a file for public/external sharing.\n@optional {file: any # File to share}\n@returns(200) Typical success response\n\n@endgroup\n\n@group files.upload\n@endpoint POST /files.upload\n@desc Uploads or creates a file.\n@optional {file: any # File contents via `multipart/form-data`. If omitting this parameter, you must submit `content`., content: any # File contents via a POST variable. If omitting this parameter, you must provide a `file`., filetype: any # A [file type](/types/file#file_types) identifier., filename: any # Filename of file., title: any # Title of file., initial_comment: any # The message text introducing the file in specified `channels`., channels: any # Comma-separated list of channel names or IDs where the file will be shared., thread_ts: any # Provide another message's `ts` value to upload this file as a reply. Never use a reply's `ts` value; use its parent instead.}\n@returns(200) Success response after uploading a file to a channel with an initial message\n\n@endgroup\n\n@group migration.exchange\n@endpoint GET /migration.exchange\n@desc For Enterprise Grid workspaces, map local user IDs to global user IDs\n@required {users: any # A comma-separated list of user ids, up to 400 per request}\n@optional {team_id: any # Specify team_id starts with `T` in case of Org Token, to_old: any # Specify `true` to convert `W` global user IDs to workspace-specific `U` IDs. Defaults to `false`.}\n@returns(200) Typical success response when mappings exist for the specified user IDs\n\n@endgroup\n\n@group oauth.access\n@endpoint GET /oauth.access\n@desc Exchanges a temporary OAuth verifier code for an access token.\n@optional {client_id: any # Issued when you created your application., client_secret: any # Issued when you created your application., code: any # The `code` param returned via the OAuth callback., redirect_uri: any # This must match the originally submitted URI (if one was sent)., single_channel: any # Request the user to add your app only to a single channel. Only valid with a [legacy workspace app](https://api.slack.com/legacy-workspace-apps).}\n@returns(200) Successful user token negotiation for a single scope\n\n@endgroup\n\n@group oauth.token\n@endpoint GET /oauth.token\n@desc Exchanges a temporary OAuth verifier code for a workspace token.\n@optional {client_id: any # Issued when you created your application., client_secret: any # Issued when you created your application., code: any # The `code` param returned via the OAuth callback., redirect_uri: any # This must match the originally submitted URI (if one was sent)., single_channel: any # Request the user to add your app only to a single channel.}\n@returns(200) Success example using a workspace app produces a very different kind of response\n\n@endgroup\n\n@group oauth.v2.access\n@endpoint GET /oauth.v2.access\n@desc Exchanges a temporary OAuth verifier code for an access token.\n@required {code: any # The `code` param returned via the OAuth callback.}\n@optional {client_id: any # Issued when you created your application., client_secret: any # Issued when you created your application., redirect_uri: any # This must match the originally submitted URI (if one was sent).}\n@returns(200) Successful token request with scopes for both a bot user and a user token\n\n@endgroup\n\n@group pins.add\n@endpoint POST /pins.add\n@desc Pins an item to a channel.\n@required {channel: any # Channel to pin the item in.}\n@optional {timestamp: any # Timestamp of the message to pin.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group pins.list\n@endpoint GET /pins.list\n@desc Lists items pinned to a channel.\n@required {channel: any # Channel to get pinned items for.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group pins.remove\n@endpoint POST /pins.remove\n@desc Un-pins an item from a channel.\n@required {channel: any # Channel where the item is pinned to.}\n@optional {timestamp: any # Timestamp of the message to un-pin.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group reactions.add\n@endpoint POST /reactions.add\n@desc Adds a reaction to an item.\n@required {channel: any # Channel where the message to add reaction to was posted., name: any # Reaction (emoji) name., timestamp: any # Timestamp of the message to add reaction to.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group reactions.get\n@endpoint GET /reactions.get\n@desc Gets reactions for an item.\n@optional {channel: any # Channel where the message to get reactions for was posted., file: any # File to get reactions for., file_comment: any # File comment to get reactions for., full: any # If true always return the complete reaction list., timestamp: any # Timestamp of the message to get reactions for.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group reactions.list\n@endpoint GET /reactions.list\n@desc Lists reactions made by a user.\n@optional {user: any # Show reactions made by this user. Defaults to the authed user., full: any # If true always return the complete reaction list., count: any, page: any, cursor: any # Parameter for pagination. Set `cursor` equal to the `next_cursor` attribute returned by the previous request's `response_metadata`. This parameter is optional, but pagination is mandatory: the default value simply fetches the first \"page\" of the collection. See [pagination](/docs/pagination) for more details., limit: any # The maximum number of items to return. Fewer than the requested number of items may be returned, even if the end of the list hasn't been reached.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group reactions.remove\n@endpoint POST /reactions.remove\n@desc Removes a reaction from an item.\n@required {name: any # Reaction (emoji) name.}\n@optional {file: any # File to remove reaction from., file_comment: any # File comment to remove reaction from., channel: any # Channel where the message to remove reaction from was posted., timestamp: any # Timestamp of the message to remove reaction from.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group reminders.add\n@endpoint POST /reminders.add\n@desc Creates a reminder.\n@required {text: any # The content of the reminder, time: any # 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\")}\n@optional {user: any # The user who will receive the reminder. If no user is specified, the reminder will go to user who created it.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group reminders.complete\n@endpoint POST /reminders.complete\n@desc Marks a reminder as complete.\n@optional {reminder: any # The ID of the reminder to be marked as complete}\n@returns(200) Typical success response\n\n@endgroup\n\n@group reminders.delete\n@endpoint POST /reminders.delete\n@desc Deletes a reminder.\n@optional {reminder: any # The ID of the reminder}\n@returns(200) Typical success response\n\n@endgroup\n\n@group reminders.info\n@endpoint GET /reminders.info\n@desc Gets information about a reminder.\n@optional {reminder: any # The ID of the reminder}\n@returns(200) Typical success response\n\n@endgroup\n\n@group reminders.list\n@endpoint GET /reminders.list\n@desc Lists all reminders created by or for a given user.\n@returns(200) Typical success response\n\n@endgroup\n\n@group rtm.connect\n@endpoint GET /rtm.connect\n@desc Starts a Real Time Messaging session.\n@optional {batch_presence_aware: any # Batch presence deliveries via subscription. Enabling changes the shape of `presence_change` events. See [batch presence](/docs/presence-and-status#batching)., presence_sub: any # Only deliver presence events when requested by subscription. See [presence subscriptions](/docs/presence-and-status#subscriptions).}\n@returns(200) Typical success response\n\n@endgroup\n\n@group search.messages\n@endpoint GET /search.messages\n@desc Searches for messages matching a query.\n@required {query: any # Search query.}\n@optional {count: any # Pass the number of results you want per \"page\". Maximum of `100`., highlight: any # Pass a value of `true` to enable query highlight markers (see below)., page: any, sort: any # Return matches sorted by either `score` or `timestamp`., sort_dir: any # Change sort direction to ascending (`asc`) or descending (`desc`).}\n@returns(200) Typical success response\n\n@endgroup\n\n@group stars.add\n@endpoint POST /stars.add\n@desc Adds a star to an item.\n@optional {channel: any # Channel to add star to, or channel where the message to add star to was posted (used with `timestamp`)., file: any # File to add star to., file_comment: any # File comment to add star to., timestamp: any # Timestamp of the message to add star to.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group stars.list\n@endpoint GET /stars.list\n@desc Lists stars for a user.\n@optional {count: any, page: any, cursor: any # Parameter for pagination. Set `cursor` equal to the `next_cursor` attribute returned by the previous request's `response_metadata`. This parameter is optional, but pagination is mandatory: the default value simply fetches the first \"page\" of the collection. See [pagination](/docs/pagination) for more details., limit: any # The maximum number of items to return. Fewer than the requested number of items may be returned, even if the end of the list hasn't been reached.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group stars.remove\n@endpoint POST /stars.remove\n@desc Removes a star from an item.\n@optional {channel: any # Channel to remove star from, or channel where the message to remove star from was posted (used with `timestamp`)., file: any # File to remove star from., file_comment: any # File comment to remove star from., timestamp: any # Timestamp of the message to remove star from.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group team.accessLogs\n@endpoint GET /team.accessLogs\n@desc Gets the access logs for the current team.\n@optional {before: any # End of time range of logs to include in results (inclusive)., count: any, page: any}\n@returns(200) This response demonstrates pagination and two access log entries.\n\n@endgroup\n\n@group team.billableInfo\n@endpoint GET /team.billableInfo\n@desc Gets billable users information for the current team.\n@optional {user: any # A user to retrieve the billable information for. Defaults to all users.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group team.info\n@endpoint GET /team.info\n@desc Gets information about the current team.\n@optional {team: any # Team to get info on, if omitted, will return information about the current team. Will only return team that the authenticated token is allowed to see through external shared channels}\n@returns(200) Typical success response\n\n@endgroup\n\n@group team.integrationLogs\n@endpoint GET /team.integrationLogs\n@desc Gets the integration logs for the current team.\n@optional {app_id: any # Filter logs to this Slack app. Defaults to all logs., change_type: any # Filter logs with this change type. Defaults to all logs., count: any, page: any, service_id: any # Filter logs to this service. Defaults to all logs., user: any # Filter logs generated by this user’s actions. Defaults to all logs.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group team.profile.get\n@endpoint GET /team.profile.get\n@desc Retrieve a team's profile.\n@optional {visibility: any # Filter by visibility.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group usergroups.create\n@endpoint POST /usergroups.create\n@desc Create a User Group\n@required {name: any # A name for the User Group. Must be unique among User Groups.}\n@optional {channels: any # A comma separated string of encoded channel IDs for which the User Group uses as a default., description: any # A short description of the User Group., handle: any # A mention handle. Must be unique among channels, users and User Groups., include_count: any # Include the number of users in each User Group.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group usergroups.disable\n@endpoint POST /usergroups.disable\n@desc Disable an existing User Group\n@required {usergroup: any # The encoded ID of the User Group to disable.}\n@optional {include_count: any # Include the number of users in the User Group.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group usergroups.enable\n@endpoint POST /usergroups.enable\n@desc Enable a User Group\n@required {usergroup: any # The encoded ID of the User Group to enable.}\n@optional {include_count: any # Include the number of users in the User Group.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group usergroups.list\n@endpoint GET /usergroups.list\n@desc List all User Groups for a team\n@optional {include_users: any # Include the list of users for each User Group., include_count: any # Include the number of users in each User Group., include_disabled: any # Include disabled User Groups.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group usergroups.update\n@endpoint POST /usergroups.update\n@desc Update an existing User Group\n@required {usergroup: any # The encoded ID of the User Group to update.}\n@optional {handle: any # A mention handle. Must be unique among channels, users and User Groups., description: any # A short description of the User Group., channels: any # A comma separated string of encoded channel IDs for which the User Group uses as a default., include_count: any # Include the number of users in the User Group., name: any # A name for the User Group. Must be unique among User Groups.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group usergroups.users.list\n@endpoint GET /usergroups.users.list\n@desc List all users in a User Group\n@required {usergroup: any # The encoded ID of the User Group to update.}\n@optional {include_disabled: any # Allow results that involve disabled User Groups.}\n@returns(200) Standard success response when used with a user token\n\n@endgroup\n\n@group usergroups.users.update\n@endpoint POST /usergroups.users.update\n@desc Update the list of users for a User Group\n@required {usergroup: any # The encoded ID of the User Group to update., users: any # A comma separated string of encoded user IDs that represent the entire list of users for the User Group.}\n@optional {include_count: any # Include the number of users in the User Group.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group users.conversations\n@endpoint GET /users.conversations\n@desc List conversations the calling user may access.\n@optional {user: any # Browse conversations by a specific user ID's membership. Non-public channels are restricted to those where the calling user shares membership., types: any # Mix and match channel types by providing a comma-separated list of any combination of `public_channel`, `private_channel`, `mpim`, `im`, exclude_archived: any # Set to `true` to exclude archived channels from the list, limit: any # The maximum number of items to return. Fewer than the requested number of items may be returned, even if the end of the list hasn't been reached. Must be an integer no larger than 1000., cursor: any # Paginate through collections of data by setting the `cursor` parameter to a `next_cursor` attribute returned by a previous request's `response_metadata`. Default value fetches the first \"page\" of the collection. See [pagination](/docs/pagination) for more detail.}\n@returns(200) Typical success response with only public channels. Note how `num_members` and `is_member` are not returned like typical `conversations` objects.\n\n@endgroup\n\n@group users.deletePhoto\n@endpoint POST /users.deletePhoto\n@desc Delete the user profile photo\n@returns(200) Typical success response\n\n@endgroup\n\n@group users.getPresence\n@endpoint GET /users.getPresence\n@desc Gets user presence information.\n@optional {user: any # User to get presence info on. Defaults to the authed user.}\n@returns(200) When requesting information for a different user, this method just returns the current presence (either `active` or `away`).\n\n@endgroup\n\n@group users.identity\n@endpoint GET /users.identity\n@desc Get a user's identity.\n@returns(200) You will receive at a minimum the following information:\n\n@endgroup\n\n@group users.info\n@endpoint GET /users.info\n@desc Gets information about a user.\n@optional {include_locale: any # Set this to `true` to receive the locale for this user. Defaults to `false`, user: any # User to get info on}\n@returns(200) Typical success response\n\n@endgroup\n\n@group users.list\n@endpoint GET /users.list\n@desc Lists all users in a Slack team.\n@optional {limit: any # The maximum number of items to return. Fewer than the requested number of items may be returned, even if the end of the users list hasn't been reached. Providing no `limit` value will result in Slack attempting to deliver you the entire result set. If the collection is too large you may experience `limit_required` or HTTP 500 errors., cursor: any # Paginate through collections of data by setting the `cursor` parameter to a `next_cursor` attribute returned by a previous request's `response_metadata`. Default value fetches the first \"page\" of the collection. See [pagination](/docs/pagination) for more detail., include_locale: any # Set this to `true` to receive the locale for users. Defaults to `false`}\n@returns(200) Typical success response\n\n@endgroup\n\n@group users.lookupByEmail\n@endpoint GET /users.lookupByEmail\n@desc Find a user with an email address.\n@required {email: any # An email address belonging to a user in the workspace}\n@returns(200) Typical success response\n\n@endgroup\n\n@group users.profile.get\n@endpoint GET /users.profile.get\n@desc Retrieves a user's profile information.\n@optional {include_labels: any # Include labels for each ID in custom profile fields, user: any # User to retrieve profile info for}\n@returns(200) Typical success response\n\n@endgroup\n\n@group users.profile.set\n@endpoint POST /users.profile.set\n@desc Set the profile information for a user.\n@optional {name: any # Name of a single key to set. Usable only if `profile` is not passed., profile: any # 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: any # ID of user to change. This argument may only be specified by team admins on paid teams., value: any # Value to set a single key to. Usable only if `profile` is not passed.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group users.setActive\n@endpoint POST /users.setActive\n@desc Marked a user as active. Deprecated and non-functional.\n@returns(200) Typical success response\n\n@endgroup\n\n@group users.setPhoto\n@endpoint POST /users.setPhoto\n@desc Set the user profile photo\n@optional {crop_w: any # Width/height of crop box (always square), crop_x: any # X coordinate of top-left corner of crop box, crop_y: any # Y coordinate of top-left corner of crop box, image: any # File contents via `multipart/form-data`.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group users.setPresence\n@endpoint POST /users.setPresence\n@desc Manually sets user presence.\n@required {presence: any # Either `auto` or `away`}\n@returns(200) Typical success response\n\n@endgroup\n\n@group views.open\n@endpoint GET /views.open\n@desc Open a view for a user.\n@required {trigger_id: any # Exchange a trigger to post to the user., view: any # A [view payload](/reference/surfaces/views). This must be a JSON-encoded string.}\n@returns(200) Typical success response includes the opened view payload.\n\n@endgroup\n\n@group views.publish\n@endpoint GET /views.publish\n@desc Publish a static view for a User.\n@required {user_id: any # `id` of the user you want publish a view to., view: any # A [view payload](/reference/surfaces/views). This must be a JSON-encoded string.}\n@optional {hash: any # A string that represents view state to protect against possible race conditions.}\n@returns(200) Typical success response includes the published view payload.\n\n@endgroup\n\n@group views.push\n@endpoint GET /views.push\n@desc Push a view onto the stack of a root view.\n@required {trigger_id: any # Exchange a trigger to post to the user., view: any # A [view payload](/reference/surfaces/views). This must be a JSON-encoded string.}\n@returns(200) Typical success response includes the pushed view payload.\n\n@endgroup\n\n@group views.update\n@endpoint GET /views.update\n@desc Update an existing view.\n@optional {view_id: any # A unique identifier of the view to be updated. Either `view_id` or `external_id` is required., external_id: any # A unique identifier of the view set by the developer. Must be unique for all views on a team. Max length of 255 characters. Either `view_id` or `external_id` is required., view: any # A [view object](/reference/surfaces/views). This must be a JSON-encoded string., hash: any # A string that represents view state to protect against possible race conditions.}\n@returns(200) Typical success response includes the updated view payload.\n\n@endgroup\n\n@group workflows.stepCompleted\n@endpoint GET /workflows.stepCompleted\n@desc Indicate that an app's step in a workflow completed execution.\n@required {workflow_step_execute_id: any # Context identifier that maps to the correct workflow step execution.}\n@optional {outputs: any # Key-value object of outputs from your step. Keys of this object reflect the configured `key` properties of your [`outputs`](/reference/workflows/workflow_step#output) array from your `workflow_step` object.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group workflows.stepFailed\n@endpoint GET /workflows.stepFailed\n@desc Indicate that an app's step in a workflow failed to execute.\n@required {workflow_step_execute_id: any # Context identifier that maps to the correct workflow step execution., error: any # A JSON-based object with a `message` property that should contain a human readable error message.}\n@returns(200) Typical success response\n\n@endgroup\n\n@group workflows.updateStep\n@endpoint GET /workflows.updateStep\n@desc Update the configuration for a workflow extension step.\n@required {workflow_step_edit_id: any # A context identifier provided with `view_submission` payloads used to call back to `workflows.updateStep`.}\n@optional {inputs: any # A JSON key-value map of inputs required from a user during configuration. This is the data your app expects to receive when the workflow step starts. **Please note**: the embedded variable format is set and replaced by the workflow system. You cannot create custom variables that will be replaced at runtime. [Read more about variables in workflow steps here](/workflows/steps#variables)., outputs: any # An JSON array of output objects used during step execution. This is the data your app agrees to provide when your workflow step was executed., step_name: any # An optional field that can be used to override the step name that is shown in the Workflow Builder., step_image_url: any # An optional field that can be used to override app image that is shown in the Workflow Builder.}\n@returns(200) Typical success response\n\n@endgroup\n\n@end\n"}}