Open documentation ↗Overview
One way to interact with the Slack platform is its HTTP RPC-based Web API, a collection of methods requiring OAuth 2.0-based user, bot, or workspace tokens blessed with related OAuth scopes.
Slack Web API is a documents & productivity API from slack.com. Requests are authenticated with OAuth. It is served over HTTPS. Its OpenAPI description documents 174 endpoints.
At a glance
- Authentication
- OAuth
- HTTPS
- Yes
- CORS
- Unknown
- Category
- Documents & Productivity
- Base URL
https://slack.com/api- Version
- 1.7.0
- Endpoints
- 174
- OpenAPI
- Specification ↗
- Spec updated
- 2021-06-21
Make a first request
Replace the placeholders; the documentation says exactly where credentials go.
curl -X GET "https://slack.com/api/admin.apps.approved.list" \
-H "Accept: application/json" \
-H "Authorization: Bearer YOUR_TOKEN"const response = await fetch("https://slack.com/api/admin.apps.approved.list", {
method: "GET",
headers: {
"Accept": "application/json",
"Authorization": "Bearer YOUR_TOKEN",
},
});
const data = await response.json();
console.log(data);import requests
response = requests.request(
"GET",
"https://slack.com/api/admin.apps.approved.list",
headers={
"Accept": "application/json",
"Authorization": "Bearer YOUR_TOKEN",
},
timeout=30,
)
print(response.json())Endpoints
| Method | Path | What it does |
|---|---|---|
| POST | /admin.apps.approve | Approve an app for installation on a workspace. |
| GET | /admin.apps.approved.list | List approved apps for an org or workspace. |
| GET | /admin.apps.requests.list | List app requests for a team/workspace. |
| POST | /admin.apps.restrict | Restrict an app for installation on a workspace. |
| GET | /admin.apps.restricted.list | List restricted apps for an org or workspace. |
| POST | /admin.conversations.archive | Archive a public or private channel. |
| POST | /admin.conversations.convertToPrivate | Convert a public channel to a private channel. |
| POST | /admin.conversations.create | Create a public or private channel-based conversation. |
| POST | /admin.conversations.delete | Delete a public or private channel. |
| POST | /admin.conversations.disconnectShared | Disconnect a connected channel from one or more workspaces. |
| 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 |
| GET | /admin.conversations.getConversationPrefs | Get conversation preferences for a public or private channel. |
| GET | /admin.conversations.getTeams | Get all the workspaces a given public or private channel is connected to within this Enterprise org. |
| POST | /admin.conversations.invite | Invite a user to a public or private channel. |
| POST | /admin.conversations.rename | Rename a public or private channel. |
| POST | /admin.conversations.restrictAccess.addGroup | Add an allowlist of IDP groups for accessing a channel |
| GET | /admin.conversations.restrictAccess.listGroups | List all IDP Groups linked to a channel |
| POST | /admin.conversations.restrictAccess.removeGroup | Remove a linked IDP group linked from a private channel |
| GET | /admin.conversations.search | Search for public or private channels in an Enterprise organization. |
| POST | /admin.conversations.setConversationPrefs | Set the posting permissions for a public or private channel. |
| POST | /admin.conversations.setTeams | Set the workspaces in an Enterprise grid org that connect to a public or private channel. |
| POST | /admin.conversations.unarchive | Unarchive a public or private channel. |
| POST | /admin.emoji.add | Add an emoji. |
| POST | /admin.emoji.addAlias | Add an emoji alias. |
| GET | /admin.emoji.list | List emoji for an Enterprise Grid organization. |
| POST | /admin.emoji.remove | Remove an emoji across an Enterprise Grid organization |
| POST | /admin.emoji.rename | Rename an emoji. |
| POST | /admin.inviteRequests.approve | Approve a workspace invite request. |
| GET | /admin.inviteRequests.approved.list | List all approved workspace invite requests. |
| GET | /admin.inviteRequests.denied.list | List all denied workspace invite requests. |
| POST | /admin.inviteRequests.deny | Deny a workspace invite request. |
| GET | /admin.inviteRequests.list | List all pending workspace invite requests. |
| GET | /admin.teams.admins.list | List all of the admins on a given workspace. |
| POST | /admin.teams.create | Create an Enterprise team. |
| GET | /admin.teams.list | List all teams on an Enterprise organization |
| GET | /admin.teams.owners.list | List all of the owners on a given workspace. |
| GET | /admin.teams.settings.info | Fetch information about settings in a workspace |
| POST | /admin.teams.settings.setDefaultChannels | Set the default channels of a workspace. |
| POST | /admin.teams.settings.setDescription | Set the description of a given workspace. |
| POST | /admin.teams.settings.setDiscoverability | An API method that allows admins to set the discoverability of a given workspace |
| POST | /admin.teams.settings.setIcon | Sets the icon of a workspace. |
| POST | /admin.teams.settings.setName | Set the name of a given workspace. |
| POST | /admin.usergroups.addChannels | Add one or more default channels to an IDP group. |
| POST | /admin.usergroups.addTeams | Associate one or more default workspaces with an organization-wide IDP group. |
| GET | /admin.usergroups.listChannels | List the channels linked to an org-level IDP group (user group). |
| POST | /admin.usergroups.removeChannels | Remove one or more default channels from an org-level IDP group (user group). |
| POST | /admin.users.assign | Add an Enterprise user to a workspace. |
| POST | /admin.users.invite | Invite a user to a workspace. |
| GET | /admin.users.list | List users on a workspace |
| POST | /admin.users.remove | Remove a user from a workspace. |
| POST | /admin.users.session.invalidate | Invalidate a single session for a user by session_id |
| POST | /admin.users.session.reset | Wipes all valid sessions on all devices for a given user |
| POST | /admin.users.setAdmin | Set an existing guest, regular user, or owner to be an admin user. |
| POST | /admin.users.setExpiration | Set an expiration for a guest user |
| POST | /admin.users.setOwner | Set an existing guest, regular user, or admin user to be a workspace owner. |
| POST | /admin.users.setRegular | Set an existing guest user, admin user, or owner to be a regular user. |
| GET | /api.test | Checks API calling code. |
| 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. |
| GET | /apps.permissions.info | Returns list of permissions this app has on a team. |
| GET | /apps.permissions.request | Allows an app to request additional scopes |
| GET | /apps.permissions.resources.list | Returns list of resource grants this app has on a team. |
| GET | /apps.permissions.scopes.list | Returns list of scopes this app has on a team. |
| GET | /apps.permissions.users.list | Returns list of user grants and corresponding scopes this app has on a team. |
| GET | /apps.permissions.users.request | Enables an app to trigger a permissions modal to grant an app access to a user access scope. |
| GET | /apps.uninstall | Uninstalls your app from a workspace. |
| GET | /auth.revoke | Revokes a token. |
| GET | /auth.test | Checks authentication & identity. |
| GET | /bots.info | Gets information about a bot user. |
| POST | /calls.add | Registers a new Call. |
| POST | /calls.end | Ends a Call. |
| GET | /calls.info | Returns information about a Call. |
| POST | /calls.participants.add | Registers new participants added to a Call. |
| POST | /calls.participants.remove | Registers participants removed from a Call. |
| POST | /calls.update | Updates information about a Call. |
| POST | /chat.delete | Deletes a message. |
| POST | /chat.deleteScheduledMessage | Deletes a pending scheduled message from the queue. |
| GET | /chat.getPermalink | Retrieve a permalink URL for a specific extant message |
| POST | /chat.meMessage | Share a me message into a channel. |
| POST | /chat.postEphemeral | Sends an ephemeral message to a user in a channel. |
| POST | /chat.postMessage | Sends a message to a channel. |
| POST | /chat.scheduleMessage | Schedules a message to be sent to a channel. |
| GET | /chat.scheduledMessages.list | Returns a list of scheduled messages. |
| POST | /chat.unfurl | Provide custom unfurl behavior for user-posted URLs |
| POST | /chat.update | Updates a message. |
| POST | /conversations.archive | Archives a conversation. |
| POST | /conversations.close | Closes a direct message or multi-person direct message. |
| POST | /conversations.create | Initiates a public or private channel-based conversation |
| GET | /conversations.history | Fetches a conversation's history of messages and events. |
| GET | /conversations.info | Retrieve information about a conversation. |
| POST | /conversations.invite | Invites users to a channel. |
| POST | /conversations.join | Joins an existing conversation. |
| POST | /conversations.kick | Removes a user from a conversation. |
| POST | /conversations.leave | Leaves a conversation. |
| GET | /conversations.list | Lists all channels in a Slack team. |
| POST | /conversations.mark | Sets the read cursor in a channel. |
| GET | /conversations.members | Retrieve members of a conversation. |
| POST | /conversations.open | Opens or resumes a direct message or multi-person direct message. |
| POST | /conversations.rename | Renames a conversation. |
| GET | /conversations.replies | Retrieve a thread of messages posted to a conversation |
| POST | /conversations.setPurpose | Sets the purpose for a conversation. |
Showing the first 100 of 174 endpoints; the full list is in the documentation.
Questions
Does the Slack Web API API need an API key?
Yes. The Slack Web API API uses OAuth authentication; the documentation explains how to get credentials.
Does the Slack Web API API support HTTPS?
Yes, the Slack Web API API is served over HTTPS.
How many endpoints does the Slack Web API API have?
Its OpenAPI description lists 174 endpoints in version 1.7.0. The first 100 are shown on this page.
What are alternatives to the Slack Web API API?
Other Documents & Productivity APIs include JIRA, Notion, DocStruct, Asana, ClickUp.
Similar documents & productivity APIs
Compare alternatives →JIRA
Documents & ProductivityJIRA is a proprietary issue tracking product that allows bug tracking and agile project management
Notion
Documents & ProductivityIntegrate with Notion
DocStruct
Documents & ProductivityAI extraction of invoices, receipts, bank statements & contracts into structured JSON/CSV
Asana
Documents & ProductivityProgrammatic access to all data in your asana system
ClickUp
Documents & ProductivityClickUp is a robust, cloud-based project management tool for boosting productivity
iLovePDF
Documents & ProductivityConvert, merge, split, extract text and add page numbers for PDFs. Free for 250 documents/month
Listed from APIs.guru (CC0).