---
name: slack-web-api
description: "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."
version: 1.0.0
generator: lapsh
---

# Slack Web API
API version: 1.7.0

## Auth
OAuth2

## Base URL
https://slack.com/api

## Setup
1. Configure auth: OAuth2
2. GET /admin.apps.approved.list -- list approved apps for an org or workspace.
3. POST /admin.apps.approve -- create first admin.apps.approve

## Endpoints
174 endpoints across 174 groups. See references/api-spec.lap for full details.

### Admin.apps.approve
| Method | Path | Description |
|--------|------|-------------|
| POST | /admin.apps.approve | Approve an app for installation on a workspace. |

### Admin.apps.approved.list
| Method | Path | Description |
|--------|------|-------------|
| GET | /admin.apps.approved.list | List approved apps for an org or workspace. |

### Admin.apps.requests.list
| Method | Path | Description |
|--------|------|-------------|
| GET | /admin.apps.requests.list | List app requests for a team/workspace. |

### Admin.apps.restrict
| Method | Path | Description |
|--------|------|-------------|
| POST | /admin.apps.restrict | Restrict an app for installation on a workspace. |

### Admin.apps.restricted.list
| Method | Path | Description |
|--------|------|-------------|
| GET | /admin.apps.restricted.list | List restricted apps for an org or workspace. |

### Admin.conversations.archive
| Method | Path | Description |
|--------|------|-------------|
| POST | /admin.conversations.archive | Archive a public or private channel. |

### Admin.conversations.convertToPrivate
| Method | Path | Description |
|--------|------|-------------|
| POST | /admin.conversations.convertToPrivate | Convert a public channel to a private channel. |

### Admin.conversations.create
| Method | Path | Description |
|--------|------|-------------|
| POST | /admin.conversations.create | Create a public or private channel-based conversation. |

### Admin.conversations.delete
| Method | Path | Description |
|--------|------|-------------|
| POST | /admin.conversations.delete | Delete a public or private channel. |

### Admin.conversations.disconnectShared
| Method | Path | Description |
|--------|------|-------------|
| POST | /admin.conversations.disconnectShared | Disconnect a connected channel from one or more workspaces. |

### Admin.conversations.ekm.listOriginalConnectedChannelInfo
| Method | Path | Description |
|--------|------|-------------|
| 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. |

### Admin.conversations.getConversationPrefs
| Method | Path | Description |
|--------|------|-------------|
| GET | /admin.conversations.getConversationPrefs | Get conversation preferences for a public or private channel. |

### Admin.conversations.getTeams
| Method | Path | Description |
|--------|------|-------------|
| GET | /admin.conversations.getTeams | Get all the workspaces a given public or private channel is connected to within this Enterprise org. |

### Admin.conversations.invite
| Method | Path | Description |
|--------|------|-------------|
| POST | /admin.conversations.invite | Invite a user to a public or private channel. |

### Admin.conversations.rename
| Method | Path | Description |
|--------|------|-------------|
| POST | /admin.conversations.rename | Rename a public or private channel. |

### Admin.conversations.restrictAccess.addGroup
| Method | Path | Description |
|--------|------|-------------|
| POST | /admin.conversations.restrictAccess.addGroup | Add an allowlist of IDP groups for accessing a channel |

### Admin.conversations.restrictAccess.listGroups
| Method | Path | Description |
|--------|------|-------------|
| GET | /admin.conversations.restrictAccess.listGroups | List all IDP Groups linked to a channel |

### Admin.conversations.restrictAccess.removeGroup
| Method | Path | Description |
|--------|------|-------------|
| POST | /admin.conversations.restrictAccess.removeGroup | Remove a linked IDP group linked from a private channel |

### Admin.conversations.search
| Method | Path | Description |
|--------|------|-------------|
| GET | /admin.conversations.search | Search for public or private channels in an Enterprise organization. |

### Admin.conversations.setConversationPrefs
| Method | Path | Description |
|--------|------|-------------|
| POST | /admin.conversations.setConversationPrefs | Set the posting permissions for a public or private channel. |

### Admin.conversations.setTeams
| Method | Path | Description |
|--------|------|-------------|
| POST | /admin.conversations.setTeams | Set the workspaces in an Enterprise grid org that connect to a public or private channel. |

### Admin.conversations.unarchive
| Method | Path | Description |
|--------|------|-------------|
| POST | /admin.conversations.unarchive | Unarchive a public or private channel. |

### Admin.emoji.add
| Method | Path | Description |
|--------|------|-------------|
| POST | /admin.emoji.add | Add an emoji. |

### Admin.emoji.addAlias
| Method | Path | Description |
|--------|------|-------------|
| POST | /admin.emoji.addAlias | Add an emoji alias. |

### Admin.emoji.list
| Method | Path | Description |
|--------|------|-------------|
| GET | /admin.emoji.list | List emoji for an Enterprise Grid organization. |

### Admin.emoji.remove
| Method | Path | Description |
|--------|------|-------------|
| POST | /admin.emoji.remove | Remove an emoji across an Enterprise Grid organization |

### Admin.emoji.rename
| Method | Path | Description |
|--------|------|-------------|
| POST | /admin.emoji.rename | Rename an emoji. |

### Admin.inviteRequests.approve
| Method | Path | Description |
|--------|------|-------------|
| POST | /admin.inviteRequests.approve | Approve a workspace invite request. |

### Admin.inviteRequests.approved.list
| Method | Path | Description |
|--------|------|-------------|
| GET | /admin.inviteRequests.approved.list | List all approved workspace invite requests. |

### Admin.inviteRequests.denied.list
| Method | Path | Description |
|--------|------|-------------|
| GET | /admin.inviteRequests.denied.list | List all denied workspace invite requests. |

### Admin.inviteRequests.deny
| Method | Path | Description |
|--------|------|-------------|
| POST | /admin.inviteRequests.deny | Deny a workspace invite request. |

### Admin.inviteRequests.list
| Method | Path | Description |
|--------|------|-------------|
| GET | /admin.inviteRequests.list | List all pending workspace invite requests. |

### Admin.teams.admins.list
| Method | Path | Description |
|--------|------|-------------|
| GET | /admin.teams.admins.list | List all of the admins on a given workspace. |

### Admin.teams.create
| Method | Path | Description |
|--------|------|-------------|
| POST | /admin.teams.create | Create an Enterprise team. |

### Admin.teams.list
| Method | Path | Description |
|--------|------|-------------|
| GET | /admin.teams.list | List all teams on an Enterprise organization |

### Admin.teams.owners.list
| Method | Path | Description |
|--------|------|-------------|
| GET | /admin.teams.owners.list | List all of the owners on a given workspace. |

### Admin.teams.settings.info
| Method | Path | Description |
|--------|------|-------------|
| GET | /admin.teams.settings.info | Fetch information about settings in a workspace |

### Admin.teams.settings.setDefaultChannels
| Method | Path | Description |
|--------|------|-------------|
| POST | /admin.teams.settings.setDefaultChannels | Set the default channels of a workspace. |

### Admin.teams.settings.setDescription
| Method | Path | Description |
|--------|------|-------------|
| POST | /admin.teams.settings.setDescription | Set the description of a given workspace. |

### Admin.teams.settings.setDiscoverability
| Method | Path | Description |
|--------|------|-------------|
| POST | /admin.teams.settings.setDiscoverability | An API method that allows admins to set the discoverability of a given workspace |

### Admin.teams.settings.setIcon
| Method | Path | Description |
|--------|------|-------------|
| POST | /admin.teams.settings.setIcon | Sets the icon of a workspace. |

### Admin.teams.settings.setName
| Method | Path | Description |
|--------|------|-------------|
| POST | /admin.teams.settings.setName | Set the name of a given workspace. |

### Admin.usergroups.addChannels
| Method | Path | Description |
|--------|------|-------------|
| POST | /admin.usergroups.addChannels | Add one or more default channels to an IDP group. |

### Admin.usergroups.addTeams
| Method | Path | Description |
|--------|------|-------------|
| POST | /admin.usergroups.addTeams | Associate one or more default workspaces with an organization-wide IDP group. |

### Admin.usergroups.listChannels
| Method | Path | Description |
|--------|------|-------------|
| GET | /admin.usergroups.listChannels | List the channels linked to an org-level IDP group (user group). |

### Admin.usergroups.removeChannels
| Method | Path | Description |
|--------|------|-------------|
| POST | /admin.usergroups.removeChannels | Remove one or more default channels from an org-level IDP group (user group). |

### Admin.users.assign
| Method | Path | Description |
|--------|------|-------------|
| POST | /admin.users.assign | Add an Enterprise user to a workspace. |

### Admin.users.invite
| Method | Path | Description |
|--------|------|-------------|
| POST | /admin.users.invite | Invite a user to a workspace. |

### Admin.users.list
| Method | Path | Description |
|--------|------|-------------|
| GET | /admin.users.list | List users on a workspace |

### Admin.users.remove
| Method | Path | Description |
|--------|------|-------------|
| POST | /admin.users.remove | Remove a user from a workspace. |

### Admin.users.session.invalidate
| Method | Path | Description |
|--------|------|-------------|
| POST | /admin.users.session.invalidate | Invalidate a single session for a user by session_id |

### Admin.users.session.reset
| Method | Path | Description |
|--------|------|-------------|
| POST | /admin.users.session.reset | Wipes all valid sessions on all devices for a given user |

### Admin.users.setAdmin
| Method | Path | Description |
|--------|------|-------------|
| POST | /admin.users.setAdmin | Set an existing guest, regular user, or owner to be an admin user. |

### Admin.users.setExpiration
| Method | Path | Description |
|--------|------|-------------|
| POST | /admin.users.setExpiration | Set an expiration for a guest user |

### Admin.users.setOwner
| Method | Path | Description |
|--------|------|-------------|
| POST | /admin.users.setOwner | Set an existing guest, regular user, or admin user to be a workspace owner. |

### Admin.users.setRegular
| Method | Path | Description |
|--------|------|-------------|
| POST | /admin.users.setRegular | Set an existing guest user, admin user, or owner to be a regular user. |

### Api.test
| Method | Path | Description |
|--------|------|-------------|
| GET | /api.test | Checks API calling code. |

### Apps.event.authorizations.list
| Method | Path | Description |
|--------|------|-------------|
| 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. |

### Apps.permissions.info
| Method | Path | Description |
|--------|------|-------------|
| GET | /apps.permissions.info | Returns list of permissions this app has on a team. |

### Apps.permissions.request
| Method | Path | Description |
|--------|------|-------------|
| GET | /apps.permissions.request | Allows an app to request additional scopes |

### Apps.permissions.resources.list
| Method | Path | Description |
|--------|------|-------------|
| GET | /apps.permissions.resources.list | Returns list of resource grants this app has on a team. |

### Apps.permissions.scopes.list
| Method | Path | Description |
|--------|------|-------------|
| GET | /apps.permissions.scopes.list | Returns list of scopes this app has on a team. |

### Apps.permissions.users.list
| Method | Path | Description |
|--------|------|-------------|
| GET | /apps.permissions.users.list | Returns list of user grants and corresponding scopes this app has on a team. |

### Apps.permissions.users.request
| Method | Path | Description |
|--------|------|-------------|
| GET | /apps.permissions.users.request | Enables an app to trigger a permissions modal to grant an app access to a user access scope. |

### Apps.uninstall
| Method | Path | Description |
|--------|------|-------------|
| GET | /apps.uninstall | Uninstalls your app from a workspace. |

### Auth.revoke
| Method | Path | Description |
|--------|------|-------------|
| GET | /auth.revoke | Revokes a token. |

### Auth.test
| Method | Path | Description |
|--------|------|-------------|
| GET | /auth.test | Checks authentication & identity. |

### Bots.info
| Method | Path | Description |
|--------|------|-------------|
| GET | /bots.info | Gets information about a bot user. |

### Calls.add
| Method | Path | Description |
|--------|------|-------------|
| POST | /calls.add | Registers a new Call. |

### Calls.end
| Method | Path | Description |
|--------|------|-------------|
| POST | /calls.end | Ends a Call. |

### Calls.info
| Method | Path | Description |
|--------|------|-------------|
| GET | /calls.info | Returns information about a Call. |

### Calls.participants.add
| Method | Path | Description |
|--------|------|-------------|
| POST | /calls.participants.add | Registers new participants added to a Call. |

### Calls.participants.remove
| Method | Path | Description |
|--------|------|-------------|
| POST | /calls.participants.remove | Registers participants removed from a Call. |

### Calls.update
| Method | Path | Description |
|--------|------|-------------|
| POST | /calls.update | Updates information about a Call. |

### Chat.delete
| Method | Path | Description |
|--------|------|-------------|
| POST | /chat.delete | Deletes a message. |

### Chat.deleteScheduledMessage
| Method | Path | Description |
|--------|------|-------------|
| POST | /chat.deleteScheduledMessage | Deletes a pending scheduled message from the queue. |

### Chat.getPermalink
| Method | Path | Description |
|--------|------|-------------|
| GET | /chat.getPermalink | Retrieve a permalink URL for a specific extant message |

### Chat.meMessage
| Method | Path | Description |
|--------|------|-------------|
| POST | /chat.meMessage | Share a me message into a channel. |

### Chat.postEphemeral
| Method | Path | Description |
|--------|------|-------------|
| POST | /chat.postEphemeral | Sends an ephemeral message to a user in a channel. |

### Chat.postMessage
| Method | Path | Description |
|--------|------|-------------|
| POST | /chat.postMessage | Sends a message to a channel. |

### Chat.scheduleMessage
| Method | Path | Description |
|--------|------|-------------|
| POST | /chat.scheduleMessage | Schedules a message to be sent to a channel. |

### Chat.scheduledMessages.list
| Method | Path | Description |
|--------|------|-------------|
| GET | /chat.scheduledMessages.list | Returns a list of scheduled messages. |

### Chat.unfurl
| Method | Path | Description |
|--------|------|-------------|
| POST | /chat.unfurl | Provide custom unfurl behavior for user-posted URLs |

### Chat.update
| Method | Path | Description |
|--------|------|-------------|
| POST | /chat.update | Updates a message. |

### Conversations.archive
| Method | Path | Description |
|--------|------|-------------|
| POST | /conversations.archive | Archives a conversation. |

### Conversations.close
| Method | Path | Description |
|--------|------|-------------|
| POST | /conversations.close | Closes a direct message or multi-person direct message. |

### Conversations.create
| Method | Path | Description |
|--------|------|-------------|
| POST | /conversations.create | Initiates a public or private channel-based conversation |

### Conversations.history
| Method | Path | Description |
|--------|------|-------------|
| GET | /conversations.history | Fetches a conversation's history of messages and events. |

### Conversations.info
| Method | Path | Description |
|--------|------|-------------|
| GET | /conversations.info | Retrieve information about a conversation. |

### Conversations.invite
| Method | Path | Description |
|--------|------|-------------|
| POST | /conversations.invite | Invites users to a channel. |

### Conversations.join
| Method | Path | Description |
|--------|------|-------------|
| POST | /conversations.join | Joins an existing conversation. |

### Conversations.kick
| Method | Path | Description |
|--------|------|-------------|
| POST | /conversations.kick | Removes a user from a conversation. |

### Conversations.leave
| Method | Path | Description |
|--------|------|-------------|
| POST | /conversations.leave | Leaves a conversation. |

### Conversations.list
| Method | Path | Description |
|--------|------|-------------|
| GET | /conversations.list | Lists all channels in a Slack team. |

### Conversations.mark
| Method | Path | Description |
|--------|------|-------------|
| POST | /conversations.mark | Sets the read cursor in a channel. |

### Conversations.members
| Method | Path | Description |
|--------|------|-------------|
| GET | /conversations.members | Retrieve members of a conversation. |

### Conversations.open
| Method | Path | Description |
|--------|------|-------------|
| POST | /conversations.open | Opens or resumes a direct message or multi-person direct message. |

### Conversations.rename
| Method | Path | Description |
|--------|------|-------------|
| POST | /conversations.rename | Renames a conversation. |

### Conversations.replies
| Method | Path | Description |
|--------|------|-------------|
| GET | /conversations.replies | Retrieve a thread of messages posted to a conversation |

### Conversations.setPurpose
| Method | Path | Description |
|--------|------|-------------|
| POST | /conversations.setPurpose | Sets the purpose for a conversation. |

### Conversations.setTopic
| Method | Path | Description |
|--------|------|-------------|
| POST | /conversations.setTopic | Sets the topic for a conversation. |

### Conversations.unarchive
| Method | Path | Description |
|--------|------|-------------|
| POST | /conversations.unarchive | Reverses conversation archival. |

### Dialog.open
| Method | Path | Description |
|--------|------|-------------|
| GET | /dialog.open | Open a dialog with a user |

### Dnd.endDnd
| Method | Path | Description |
|--------|------|-------------|
| POST | /dnd.endDnd | Ends the current user's Do Not Disturb session immediately. |

### Dnd.endSnooze
| Method | Path | Description |
|--------|------|-------------|
| POST | /dnd.endSnooze | Ends the current user's snooze mode immediately. |

### Dnd.info
| Method | Path | Description |
|--------|------|-------------|
| GET | /dnd.info | Retrieves a user's current Do Not Disturb status. |

### Dnd.setSnooze
| Method | Path | Description |
|--------|------|-------------|
| POST | /dnd.setSnooze | Turns on Do Not Disturb mode for the current user, or changes its duration. |

### Dnd.teamInfo
| Method | Path | Description |
|--------|------|-------------|
| GET | /dnd.teamInfo | Retrieves the Do Not Disturb status for up to 50 users on a team. |

### Emoji.list
| Method | Path | Description |
|--------|------|-------------|
| GET | /emoji.list | Lists custom emoji for a team. |

### Files.comments.delete
| Method | Path | Description |
|--------|------|-------------|
| POST | /files.comments.delete | Deletes an existing comment on a file. |

### Files.delete
| Method | Path | Description |
|--------|------|-------------|
| POST | /files.delete | Deletes a file. |

### Files.info
| Method | Path | Description |
|--------|------|-------------|
| GET | /files.info | Gets information about a file. |

### Files.list
| Method | Path | Description |
|--------|------|-------------|
| GET | /files.list | List for a team, in a channel, or from a user with applied filters. |

### Files.remote.add
| Method | Path | Description |
|--------|------|-------------|
| POST | /files.remote.add | Adds a file from a remote service |

### Files.remote.info
| Method | Path | Description |
|--------|------|-------------|
| GET | /files.remote.info | Retrieve information about a remote file added to Slack |

### Files.remote.list
| Method | Path | Description |
|--------|------|-------------|
| GET | /files.remote.list | Retrieve information about a remote file added to Slack |

### Files.remote.remove
| Method | Path | Description |
|--------|------|-------------|
| POST | /files.remote.remove | Remove a remote file. |

### Files.remote.share
| Method | Path | Description |
|--------|------|-------------|
| GET | /files.remote.share | Share a remote file into a channel. |

### Files.remote.update
| Method | Path | Description |
|--------|------|-------------|
| POST | /files.remote.update | Updates an existing remote file. |

### Files.revokePublicURL
| Method | Path | Description |
|--------|------|-------------|
| POST | /files.revokePublicURL | Revokes public/external sharing access for a file |

### Files.sharedPublicURL
| Method | Path | Description |
|--------|------|-------------|
| POST | /files.sharedPublicURL | Enables a file for public/external sharing. |

### Files.upload
| Method | Path | Description |
|--------|------|-------------|
| POST | /files.upload | Uploads or creates a file. |

### Migration.exchange
| Method | Path | Description |
|--------|------|-------------|
| GET | /migration.exchange | For Enterprise Grid workspaces, map local user IDs to global user IDs |

### Oauth.access
| Method | Path | Description |
|--------|------|-------------|
| GET | /oauth.access | Exchanges a temporary OAuth verifier code for an access token. |

### Oauth.token
| Method | Path | Description |
|--------|------|-------------|
| GET | /oauth.token | Exchanges a temporary OAuth verifier code for a workspace token. |

### Oauth.v2.access
| Method | Path | Description |
|--------|------|-------------|
| GET | /oauth.v2.access | Exchanges a temporary OAuth verifier code for an access token. |

### Pins.add
| Method | Path | Description |
|--------|------|-------------|
| POST | /pins.add | Pins an item to a channel. |

### Pins.list
| Method | Path | Description |
|--------|------|-------------|
| GET | /pins.list | Lists items pinned to a channel. |

### Pins.remove
| Method | Path | Description |
|--------|------|-------------|
| POST | /pins.remove | Un-pins an item from a channel. |

### Reactions.add
| Method | Path | Description |
|--------|------|-------------|
| POST | /reactions.add | Adds a reaction to an item. |

### Reactions.get
| Method | Path | Description |
|--------|------|-------------|
| GET | /reactions.get | Gets reactions for an item. |

### Reactions.list
| Method | Path | Description |
|--------|------|-------------|
| GET | /reactions.list | Lists reactions made by a user. |

### Reactions.remove
| Method | Path | Description |
|--------|------|-------------|
| POST | /reactions.remove | Removes a reaction from an item. |

### Reminders.add
| Method | Path | Description |
|--------|------|-------------|
| POST | /reminders.add | Creates a reminder. |

### Reminders.complete
| Method | Path | Description |
|--------|------|-------------|
| POST | /reminders.complete | Marks a reminder as complete. |

### Reminders.delete
| Method | Path | Description |
|--------|------|-------------|
| POST | /reminders.delete | Deletes a reminder. |

### Reminders.info
| Method | Path | Description |
|--------|------|-------------|
| GET | /reminders.info | Gets information about a reminder. |

### Reminders.list
| Method | Path | Description |
|--------|------|-------------|
| GET | /reminders.list | Lists all reminders created by or for a given user. |

### Rtm.connect
| Method | Path | Description |
|--------|------|-------------|
| GET | /rtm.connect | Starts a Real Time Messaging session. |

### Search.messages
| Method | Path | Description |
|--------|------|-------------|
| GET | /search.messages | Searches for messages matching a query. |

### Stars.add
| Method | Path | Description |
|--------|------|-------------|
| POST | /stars.add | Adds a star to an item. |

### Stars.list
| Method | Path | Description |
|--------|------|-------------|
| GET | /stars.list | Lists stars for a user. |

### Stars.remove
| Method | Path | Description |
|--------|------|-------------|
| POST | /stars.remove | Removes a star from an item. |

### Team.accessLogs
| Method | Path | Description |
|--------|------|-------------|
| GET | /team.accessLogs | Gets the access logs for the current team. |

### Team.billableInfo
| Method | Path | Description |
|--------|------|-------------|
| GET | /team.billableInfo | Gets billable users information for the current team. |

### Team.info
| Method | Path | Description |
|--------|------|-------------|
| GET | /team.info | Gets information about the current team. |

### Team.integrationLogs
| Method | Path | Description |
|--------|------|-------------|
| GET | /team.integrationLogs | Gets the integration logs for the current team. |

### Team.profile.get
| Method | Path | Description |
|--------|------|-------------|
| GET | /team.profile.get | Retrieve a team's profile. |

### Usergroups.create
| Method | Path | Description |
|--------|------|-------------|
| POST | /usergroups.create | Create a User Group |

### Usergroups.disable
| Method | Path | Description |
|--------|------|-------------|
| POST | /usergroups.disable | Disable an existing User Group |

### Usergroups.enable
| Method | Path | Description |
|--------|------|-------------|
| POST | /usergroups.enable | Enable a User Group |

### Usergroups.list
| Method | Path | Description |
|--------|------|-------------|
| GET | /usergroups.list | List all User Groups for a team |

### Usergroups.update
| Method | Path | Description |
|--------|------|-------------|
| POST | /usergroups.update | Update an existing User Group |

### Usergroups.users.list
| Method | Path | Description |
|--------|------|-------------|
| GET | /usergroups.users.list | List all users in a User Group |

### Usergroups.users.update
| Method | Path | Description |
|--------|------|-------------|
| POST | /usergroups.users.update | Update the list of users for a User Group |

### Users.conversations
| Method | Path | Description |
|--------|------|-------------|
| GET | /users.conversations | List conversations the calling user may access. |

### Users.deletePhoto
| Method | Path | Description |
|--------|------|-------------|
| POST | /users.deletePhoto | Delete the user profile photo |

### Users.getPresence
| Method | Path | Description |
|--------|------|-------------|
| GET | /users.getPresence | Gets user presence information. |

### Users.identity
| Method | Path | Description |
|--------|------|-------------|
| GET | /users.identity | Get a user's identity. |

### Users.info
| Method | Path | Description |
|--------|------|-------------|
| GET | /users.info | Gets information about a user. |

### Users.list
| Method | Path | Description |
|--------|------|-------------|
| GET | /users.list | Lists all users in a Slack team. |

### Users.lookupByEmail
| Method | Path | Description |
|--------|------|-------------|
| GET | /users.lookupByEmail | Find a user with an email address. |

### Users.profile.get
| Method | Path | Description |
|--------|------|-------------|
| GET | /users.profile.get | Retrieves a user's profile information. |

### Users.profile.set
| Method | Path | Description |
|--------|------|-------------|
| POST | /users.profile.set | Set the profile information for a user. |

### Users.setActive
| Method | Path | Description |
|--------|------|-------------|
| POST | /users.setActive | Marked a user as active. Deprecated and non-functional. |

### Users.setPhoto
| Method | Path | Description |
|--------|------|-------------|
| POST | /users.setPhoto | Set the user profile photo |

### Users.setPresence
| Method | Path | Description |
|--------|------|-------------|
| POST | /users.setPresence | Manually sets user presence. |

### Views.open
| Method | Path | Description |
|--------|------|-------------|
| GET | /views.open | Open a view for a user. |

### Views.publish
| Method | Path | Description |
|--------|------|-------------|
| GET | /views.publish | Publish a static view for a User. |

### Views.push
| Method | Path | Description |
|--------|------|-------------|
| GET | /views.push | Push a view onto the stack of a root view. |

### Views.update
| Method | Path | Description |
|--------|------|-------------|
| GET | /views.update | Update an existing view. |

### Workflows.stepCompleted
| Method | Path | Description |
|--------|------|-------------|
| GET | /workflows.stepCompleted | Indicate that an app's step in a workflow completed execution. |

### Workflows.stepFailed
| Method | Path | Description |
|--------|------|-------------|
| GET | /workflows.stepFailed | Indicate that an app's step in a workflow failed to execute. |

### Workflows.updateStep
| Method | Path | Description |
|--------|------|-------------|
| GET | /workflows.updateStep | Update the configuration for a workflow extension step. |

## Common Questions
Match user requests to endpoints in references/api-spec.lap. Key patterns:
- "Create a admin.apps.approve?" -> POST /admin.apps.approve
- "List all admin.apps.approved.list?" -> GET /admin.apps.approved.list
- "List all admin.apps.requests.list?" -> GET /admin.apps.requests.list
- "Create a admin.apps.restrict?" -> POST /admin.apps.restrict
- "List all admin.apps.restricted.list?" -> GET /admin.apps.restricted.list
- "Create a admin.conversations.archive?" -> POST /admin.conversations.archive
- "Create a admin.conversations.convertToPrivate?" -> POST /admin.conversations.convertToPrivate
- "Create a admin.conversations.create?" -> POST /admin.conversations.create
- "Create a admin.conversations.delete?" -> POST /admin.conversations.delete
- "Create a admin.conversations.disconnectShared?" -> POST /admin.conversations.disconnectShared
- "List all admin.conversations.ekm.listOriginalConnectedChannelInfo?" -> GET /admin.conversations.ekm.listOriginalConnectedChannelInfo
- "List all admin.conversations.getConversationPrefs?" -> GET /admin.conversations.getConversationPrefs
- "List all admin.conversations.getTeams?" -> GET /admin.conversations.getTeams
- "Create a admin.conversations.invite?" -> POST /admin.conversations.invite
- "Create a admin.conversations.rename?" -> POST /admin.conversations.rename
- "Create a admin.conversations.restrictAccess.addGroup?" -> POST /admin.conversations.restrictAccess.addGroup
- "List all admin.conversations.restrictAccess.listGroups?" -> GET /admin.conversations.restrictAccess.listGroups
- "Create a admin.conversations.restrictAccess.removeGroup?" -> POST /admin.conversations.restrictAccess.removeGroup
- "Search admin.conversations.search?" -> GET /admin.conversations.search
- "Create a admin.conversations.setConversationPref?" -> POST /admin.conversations.setConversationPrefs
- "Create a admin.conversations.setTeam?" -> POST /admin.conversations.setTeams
- "Create a admin.conversations.unarchive?" -> POST /admin.conversations.unarchive
- "Create a admin.emoji.add?" -> POST /admin.emoji.add
- "Create a admin.emoji.addAlia?" -> POST /admin.emoji.addAlias
- "List all admin.emoji.list?" -> GET /admin.emoji.list
- "Create a admin.emoji.remove?" -> POST /admin.emoji.remove
- "Create a admin.emoji.rename?" -> POST /admin.emoji.rename
- "Create a admin.inviteRequests.approve?" -> POST /admin.inviteRequests.approve
- "List all admin.inviteRequests.approved.list?" -> GET /admin.inviteRequests.approved.list
- "List all admin.inviteRequests.denied.list?" -> GET /admin.inviteRequests.denied.list
- "Create a admin.inviteRequests.deny?" -> POST /admin.inviteRequests.deny
- "List all admin.inviteRequests.list?" -> GET /admin.inviteRequests.list
- "List all admin.teams.admins.list?" -> GET /admin.teams.admins.list
- "Create a admin.teams.create?" -> POST /admin.teams.create
- "List all admin.teams.list?" -> GET /admin.teams.list
- "List all admin.teams.owners.list?" -> GET /admin.teams.owners.list
- "List all admin.teams.settings.info?" -> GET /admin.teams.settings.info
- "Create a admin.teams.settings.setDefaultChannel?" -> POST /admin.teams.settings.setDefaultChannels
- "Create a admin.teams.settings.setDescription?" -> POST /admin.teams.settings.setDescription
- "Create a admin.teams.settings.setDiscoverability?" -> POST /admin.teams.settings.setDiscoverability
- "Create a admin.teams.settings.setIcon?" -> POST /admin.teams.settings.setIcon
- "Create a admin.teams.settings.setName?" -> POST /admin.teams.settings.setName
- "Create a admin.usergroups.addChannel?" -> POST /admin.usergroups.addChannels
- "Create a admin.usergroups.addTeam?" -> POST /admin.usergroups.addTeams
- "List all admin.usergroups.listChannels?" -> GET /admin.usergroups.listChannels
- "Create a admin.usergroups.removeChannel?" -> POST /admin.usergroups.removeChannels
- "Create a admin.users.assign?" -> POST /admin.users.assign
- "Create a admin.users.invite?" -> POST /admin.users.invite
- "List all admin.users.list?" -> GET /admin.users.list
- "Create a admin.users.remove?" -> POST /admin.users.remove
- "Create a admin.users.session.invalidate?" -> POST /admin.users.session.invalidate
- "Create a admin.users.session.reset?" -> POST /admin.users.session.reset
- "Create a admin.users.setAdmin?" -> POST /admin.users.setAdmin
- "Create a admin.users.setExpiration?" -> POST /admin.users.setExpiration
- "Create a admin.users.setOwner?" -> POST /admin.users.setOwner
- "Create a admin.users.setRegular?" -> POST /admin.users.setRegular
- "List all api.test?" -> GET /api.test
- "List all apps.event.authorizations.list?" -> GET /apps.event.authorizations.list
- "List all apps.permissions.info?" -> GET /apps.permissions.info
- "List all apps.permissions.request?" -> GET /apps.permissions.request
- "List all apps.permissions.resources.list?" -> GET /apps.permissions.resources.list
- "List all apps.permissions.scopes.list?" -> GET /apps.permissions.scopes.list
- "List all apps.permissions.users.list?" -> GET /apps.permissions.users.list
- "List all apps.permissions.users.request?" -> GET /apps.permissions.users.request
- "List all apps.uninstall?" -> GET /apps.uninstall
- "List all auth.revoke?" -> GET /auth.revoke
- "List all auth.test?" -> GET /auth.test
- "List all bots.info?" -> GET /bots.info
- "Create a calls.add?" -> POST /calls.add
- "Create a calls.end?" -> POST /calls.end
- "List all calls.info?" -> GET /calls.info
- "Create a calls.participants.add?" -> POST /calls.participants.add
- "Create a calls.participants.remove?" -> POST /calls.participants.remove
- "Create a calls.update?" -> POST /calls.update
- "Create a chat.delete?" -> POST /chat.delete
- "Create a chat.deleteScheduledMessage?" -> POST /chat.deleteScheduledMessage
- "List all chat.getPermalink?" -> GET /chat.getPermalink
- "Create a chat.meMessage?" -> POST /chat.meMessage
- "Create a chat.postEphemeral?" -> POST /chat.postEphemeral
- "Create a chat.postMessage?" -> POST /chat.postMessage
- "Create a chat.scheduleMessage?" -> POST /chat.scheduleMessage
- "List all chat.scheduledMessages.list?" -> GET /chat.scheduledMessages.list
- "Create a chat.unfurl?" -> POST /chat.unfurl
- "Create a chat.update?" -> POST /chat.update
- "Create a conversations.archive?" -> POST /conversations.archive
- "Create a conversations.close?" -> POST /conversations.close
- "Create a conversations.create?" -> POST /conversations.create
- "List all conversations.history?" -> GET /conversations.history
- "List all conversations.info?" -> GET /conversations.info
- "Create a conversations.invite?" -> POST /conversations.invite
- "Create a conversations.join?" -> POST /conversations.join
- "Create a conversations.kick?" -> POST /conversations.kick
- "Create a conversations.leave?" -> POST /conversations.leave
- "List all conversations.list?" -> GET /conversations.list
- "Create a conversations.mark?" -> POST /conversations.mark
- "List all conversations.members?" -> GET /conversations.members
- "Create a conversations.open?" -> POST /conversations.open
- "Create a conversations.rename?" -> POST /conversations.rename
- "List all conversations.replies?" -> GET /conversations.replies
- "Create a conversations.setPurpose?" -> POST /conversations.setPurpose
- "Create a conversations.setTopic?" -> POST /conversations.setTopic
- "Create a conversations.unarchive?" -> POST /conversations.unarchive
- "List all dialog.open?" -> GET /dialog.open
- "Create a dnd.endDnd?" -> POST /dnd.endDnd
- "Create a dnd.endSnooze?" -> POST /dnd.endSnooze
- "List all dnd.info?" -> GET /dnd.info
- "Create a dnd.setSnooze?" -> POST /dnd.setSnooze
- "List all dnd.teamInfo?" -> GET /dnd.teamInfo
- "List all emoji.list?" -> GET /emoji.list
- "Create a files.comments.delete?" -> POST /files.comments.delete
- "Create a files.delete?" -> POST /files.delete
- "List all files.info?" -> GET /files.info
- "List all files.list?" -> GET /files.list
- "Create a files.remote.add?" -> POST /files.remote.add
- "List all files.remote.info?" -> GET /files.remote.info
- "List all files.remote.list?" -> GET /files.remote.list
- "Create a files.remote.remove?" -> POST /files.remote.remove
- "List all files.remote.share?" -> GET /files.remote.share
- "Create a files.remote.update?" -> POST /files.remote.update
- "Create a files.revokePublicURL?" -> POST /files.revokePublicURL
- "Create a files.sharedPublicURL?" -> POST /files.sharedPublicURL
- "Create a files.upload?" -> POST /files.upload
- "List all migration.exchange?" -> GET /migration.exchange
- "List all oauth.access?" -> GET /oauth.access
- "List all oauth.token?" -> GET /oauth.token
- "List all oauth.v2.access?" -> GET /oauth.v2.access
- "Create a pins.add?" -> POST /pins.add
- "List all pins.list?" -> GET /pins.list
- "Create a pins.remove?" -> POST /pins.remove
- "Create a reactions.add?" -> POST /reactions.add
- "List all reactions.get?" -> GET /reactions.get
- "List all reactions.list?" -> GET /reactions.list
- "Create a reactions.remove?" -> POST /reactions.remove
- "Create a reminders.add?" -> POST /reminders.add
- "Create a reminders.complete?" -> POST /reminders.complete
- "Create a reminders.delete?" -> POST /reminders.delete
- "List all reminders.info?" -> GET /reminders.info
- "List all reminders.list?" -> GET /reminders.list
- "List all rtm.connect?" -> GET /rtm.connect
- "Search search.messages?" -> GET /search.messages
- "Create a stars.add?" -> POST /stars.add
- "List all stars.list?" -> GET /stars.list
- "Create a stars.remove?" -> POST /stars.remove
- "List all team.accessLogs?" -> GET /team.accessLogs
- "List all team.billableInfo?" -> GET /team.billableInfo
- "List all team.info?" -> GET /team.info
- "List all team.integrationLogs?" -> GET /team.integrationLogs
- "List all team.profile.get?" -> GET /team.profile.get
- "Create a usergroups.create?" -> POST /usergroups.create
- "Create a usergroups.disable?" -> POST /usergroups.disable
- "Create a usergroups.enable?" -> POST /usergroups.enable
- "List all usergroups.list?" -> GET /usergroups.list
- "Create a usergroups.update?" -> POST /usergroups.update
- "List all usergroups.users.list?" -> GET /usergroups.users.list
- "Create a usergroups.users.update?" -> POST /usergroups.users.update
- "List all users.conversations?" -> GET /users.conversations
- "Create a users.deletePhoto?" -> POST /users.deletePhoto
- "List all users.getPresence?" -> GET /users.getPresence
- "List all users.identity?" -> GET /users.identity
- "List all users.info?" -> GET /users.info
- "List all users.list?" -> GET /users.list
- "List all users.lookupByEmail?" -> GET /users.lookupByEmail
- "List all users.profile.get?" -> GET /users.profile.get
- "Create a users.profile.set?" -> POST /users.profile.set
- "Create a users.setActive?" -> POST /users.setActive
- "Create a users.setPhoto?" -> POST /users.setPhoto
- "Create a users.setPresence?" -> POST /users.setPresence
- "List all views.open?" -> GET /views.open
- "List all views.publish?" -> GET /views.publish
- "List all views.push?" -> GET /views.push
- "List all views.update?" -> GET /views.update
- "List all workflows.stepCompleted?" -> GET /workflows.stepCompleted
- "List all workflows.stepFailed?" -> GET /workflows.stepFailed
- "List all workflows.updateStep?" -> GET /workflows.updateStep
- "How to authenticate?" -> See Auth section above

## Response Tips
- Check response schemas in references/api-spec.lap for field details
- Paginated endpoints accept limit/offset or cursor parameters
- Create/update endpoints return the modified resource on success

## References
- Full spec: See references/api-spec.lap for complete endpoint details, parameter tables, and response schemas

> Generated from the official API spec by [LAP](https://lap.sh)
