
Slack Web API
Slack Web API
Slack Web API lets apps read and post messages, manage channels, and upload files — the foundation for Slack bots and integrations.
Fine-grained OAuth scopes
Rate limits are per-method tier; hot methods are aggressively throttled
Create a Slack App at api.slack.com, configure the OAuth scopes you need, and install it to a workspace to get a Bot User OAuth Token. Send requests with Authorization: Bearer <token>. For interactive apps, the official Bolt SDK saves a lot of boilerplate.
Uptime · 30-day window
About this API
The Slack Web API is the REST surface for interacting with a Slack workspace: posting messages, managing channels, uploading files, querying users. It pairs with the Events API (real-time push) and Socket Mode (a WebSocket transport that avoids public callback URLs) to form the full app-development stack.
Auth is OAuth 2.0 with fine-grained scopes — each operation requires its specific scope (chat:write, channels:read, files:write, etc.), confirmed by an admin at install time. Bot tokens (app acting as itself) and user tokens (app acting on a user's behalf) are deliberately separate.
Block Kit is Slack's message-layout spec — buttons, menus, images, and form fields render consistently in messages. Combined with Modals and the Home Tab, external apps can feel almost native. Free workspaces gate some advanced methods (like long message history), and rate limits split methods into tiers — hot ones like chat.postMessage are tightly throttled, so plan capacity ahead of time.
What you can build
- 1Post notifications and monitoring alerts to channels
- 2Build slash commands and interactive button flows
- 3Stream external events into Slack threads
- 4Archive or analyze channel messages
- 5Trigger workflows from emoji reactions
Strengths & limitations
Strengths
- Fine-grained OAuth scopes
- Block Kit makes rich message layouts feel like components
- Events API pushes real-time events — no polling needed
- The official Bolt SDK dramatically simplifies bot development
Limitations
- Rate limits are per-method tier; hot methods are aggressively throttled
- Some methods are restricted on free workspaces
- Bulk historical message fetches sit in stricter rate tiers
Example request
curl https://api.slack.com/support/<endpoint> \
-H "Authorization: Bearer $ACCESS_TOKEN"Getting started
Create a Slack App at api.slack.com, configure the OAuth scopes you need, and install it to a workspace to get a Bot User OAuth Token. Send requests with Authorization: Bearer <token>. For interactive apps, the official Bolt SDK saves a lot of boilerplate.
FAQ
Is the API free?+
The API itself is free; quotas depend on workspace plan and method tier. Free workspaces gate some features (e.g. messages older than 90 days).
What's the difference between Bot and User tokens?+
A Bot token lets the app act as itself; a User token lets it act on behalf of a specific user (e.g. read their DMs). Most use cases need only Bot tokens.
How do rate limits work?+
Methods sit in Tiers 1–4. Tier 1 is the strictest (~1/min); chat.postMessage is in Tier 1+ at roughly 1 message/second per channel.
Why aren't my messages showing up?+
Usually missing scopes, the token isn't installed in the channel, or Block Kit validation rejected the payload. Test single calls in the api.slack.com Tester first.
Technical details
- Auth type
- oauth
- Pricing
- freemium
- Protocols
- REST
- SDKs
- python, javascript, typescript, java, go, ruby
- Response time
- 454 ms
- Last health check
- 5/12/2026, 7:38:25 AM
Endpoints
Parsed from the OpenAPI spec. Showing 12 of 174 non-deprecated endpoints.
/admin.apps.approveadmin.appsadmin/admin.apps.approved.listadmin.apps.approvedadmin/admin.apps.requests.listadmin.apps.requestsadmin/admin.apps.restrictadmin.appsadmin/admin.apps.restricted.listadmin.apps.restrictedadmin/admin.conversations.archiveadmin.conversationsadmin/admin.conversations.convertToPrivateadmin.conversationsadmin/admin.conversations.createadmin.conversationsadmin/admin.conversations.deleteadmin.conversationsadmin/admin.conversations.disconnectSharedadmin.conversationsadmin/admin.conversations.ekm.listOriginalConnectedChannelInfoadmin.conversations.ekmadmin/admin.conversations.getConversationPrefsadmin.conversationsadmin162 more endpoints not shown. See the OpenAPI spec for the full list.
Alternatives to consider
Different providers solving similar problems. Picked by category, auth, pricing, and tag overlap.
Notion API lets external apps read and write pages and databases — used for automation, internal tools, and dashboard integrations.
GitHub REST API v3 — programmatic access to repos, issues, pull requests, Actions, Packages, and every other GitHub.com resource.