Slack · AsyncAPI Specification

Slack Events API

Version 1.0.0

The Slack Events API enables apps to respond to activities in Slack by subscribing to specific event types. Rather than polling for changes, apps receive HTTP POST payloads when subscribed events occur, such as new messages, reactions, channel changes, or user updates. The Events API offers two delivery options: a public HTTP endpoint that Slack sends event payloads to, or Socket Mode which uses WebSockets for apps that cannot expose a public URL. Events are categorized into Team Events (workspace-scoped, requiring corresponding OAuth scopes) and Bot Events (subscribed on behalf of the app's bot user).

View Spec View on GitHub BotsChatCollaborationMessagingProductivityT1Team CommunicationAsyncAPIWebhooksEvents

Channels

eventCallback
Primary channel for receiving all subscribed Slack events. Events are delivered as HTTP POST requests wrapped in an event callback envelope containing metadata about the event and the inner event payload. Your app must respond with HTTP 200 within 3 seconds. If not acknowledged, Slack retries up to 3 times with exponential backoff.
urlVerification
Used during initial app configuration. When you first configure your Request URL, Slack sends a url_verification challenge event. Your app must respond with the challenge value to confirm ownership.

Messages

EventCallback
Slack Event Callback
An event callback payload from the Slack Events API
UrlVerification
Slack URL Verification Challenge
URL verification challenge sent during Request URL configuration

Servers

https
httpEndpoint
Your app's Request URL that receives HTTP POST payloads from Slack when subscribed events occur. Must respond with HTTP 200 within 3 seconds.
wss
socketMode
Slack Socket Mode WebSocket connection for receiving events without exposing a public HTTP endpoint. Initiated via apps.connections.open Web API method.