Social — entry 028 of 39

Slack

Verified Jul 2026

Slack's Web API lets registered apps read and post messages, manage channels, and react to workspace events, authenticated with OAuth 2.0 bot or user tokens scoped to a single Slack workspace. Methods are rate-limited across four tiers and most write actions cap out around one request per second per workspace, so high-throughput integrations typically move to the Events API or Socket Mode instead of polling.

socialmessagingbotsoauthworkspace
AuthenticationOAuthRequires an OAuth flow; expect app registration.
HTTPSSupportedTraffic is encrypted in transit.
CORSEnabledCallable directly from browser JavaScript.
PricingFreeNo paid tier — free for the documented use case.
FormatsJSONResponses can be requested as JSON.

GreatAPIs Score

Score77out of 100
Authentication8/25OAuth flow required
Pricing20/20Free to use
Docs20/20Machine-readable spec file bundled
Formats9/15Single response format
Freshness20/20Verified within 6 months

Embed this badge

Scored 77 on greatapis.com
<a href="https://greatapis.com/api/slack/"><img src="https://greatapis.com/badge/slack.svg" alt="Scored 77 on greatapis.com"></a>

Auth quickstart

  1. Register an app / run the OAuth flow to obtain a bearer token.
  2. Send it as an Authorization headerAuthorization: Bearer <token>
Stored keyNo key stored

Your key is stored only in this browser (localStorage) and sent directly to the API — never to greatapis.

Endpoints

Servers
https://slack.com/api
Auth
slackAuth
chat1
POST/chat.postMessage
Parameters
NameInRequiredType
tokenheaderyesstring
Request body

application/x-www-form-urlencoded

Responses
StatusDescriptionSchema
200Typical success response
defaultTypical error response if too many attachments are included
conversations4
POST/conversations.create
Parameters
NameInRequiredType
tokenheadernostring
Request body

application/x-www-form-urlencoded

Responses
StatusDescriptionSchema
200If successful, the command returns a rather stark [conversation object](/types/conversation)
defaultTypical error response when name already in use
GET/conversations.history
Parameters
NameInRequiredType
tokenquerynostring
channelquerynostring
latestquerynonumber
oldestquerynonumber
inclusivequerynoboolean
limitquerynointeger
cursorquerynostring
Responses
StatusDescriptionSchema
200Typical success response containing a channel's messages
defaultTypical error response
GET/conversations.info
Parameters
NameInRequiredType
tokenquerynostring
channelquerynostring
include_localequerynoboolean
include_num_membersquerynoboolean
Responses
StatusDescriptionSchema
200Typical success response for a public channel. (Also, a response from a private channel and a multi-party IM is very similar to this example.)
defaultTypical error response when a channel cannot be found
GET/conversations.list
Parameters
NameInRequiredType
tokenquerynostring
exclude_archivedquerynoboolean
typesquerynostring
limitquerynointeger
cursorquerynostring
Responses
StatusDescriptionSchema
200Typical success response with only public channels
defaultTypical error response
files1
POST/files.upload
Request body

application/x-www-form-urlencoded

Responses
StatusDescriptionSchema
200Success response after uploading a file to a channel with an initial message
defaultTypical error response
reactions1
POST/reactions.add
Parameters
NameInRequiredType
tokenheaderyesstring
Request body

application/x-www-form-urlencoded (required)

Responses
StatusDescriptionSchema
200Typical success response
defaultTypical error response
search1
GET/search.messages
Parameters
NameInRequiredType
tokenqueryyesstring
countquerynointeger
highlightquerynoboolean
pagequerynointeger
queryqueryyesstring
sortquerynostring
sort_dirquerynostring
Responses
StatusDescriptionSchema
200Typical success response
defaultTypical error response
users2
GET/users.info
Parameters
NameInRequiredType
tokenqueryyesstring
include_localequerynoboolean
userquerynostring
Responses
StatusDescriptionSchema
200Typical success response
defaultTypical error response
GET/users.list
Parameters
NameInRequiredType
tokenquerynostring
limitquerynointeger
cursorquerynostring
include_localequerynoboolean
Responses
StatusDescriptionSchema
200Typical success response
defaultTypical error response

Try it

Developer reference

Base URLhttps://slack.com/api
Rate limit

Tiered per method (Tier 1-4); most methods are capped around 1 request/second per workspace

Key endpoints
  • POST/chat.postMessage
  • GET/conversations.list
  • GET/conversations.history
  • GET/users.info