Slack's Events API request URL for one agent's app
Called by Slack, not by people: each agent app's event subscription points here (Finalize registers it when an https events address is known: CONSOLE_ORIGIN, or SLACK_EVENTS_PUBLIC_URL when events enter apart from the console). The body is read up to 256 KiB (413 above that), then checked in this order: the v0 signature (X-Slack-Signature) over the raw bytes with the app's signing secret, the X-Slack-Request-Timestamp within 300 seconds, then the JSON. An unknown agent, an agent without a created app, an app without a signing secret, a wrong, missing or stale signature all answer the same 401. A signed url_verification answers its challenge. An event_callback is stored once per (team_id, event_id), so Slack's retries (X-Slack-Retry-Num) answer 200 without a second row; one for another app or team than the agent's install, from a bot, or of a message subtype other than thread_broadcast, is stored as dropped with its reason. app_uninstalled and tokens_revoked mark the install revoked and revoke the agent's identity on it, so the console shows the app as needing a reinstall; a repeat or an event sent before a reinstall changes nothing. Any other envelope type answers 200 and is ignored. A failed write answers 5xx so Slack sends the event again. Rate limited per agent and overall before any database read (429).
Auth: public; no credential. Idempotency-Key: ignored.
agent_id*stringThe agent whose Slack app sends the events.
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$uuidapplication/json- body
type*stringchallenge*string1 <= length <= 256[key: string]?unknown{"challenge": ...} for a url_verification, {"ok": true} for everything else that was signed.
application/json- response
challenge*stringcurl -X POST 'https://example.com/v1/slack/events/497f6eca-6276-4993-bfeb-53cbbbba6f08' \ -H 'Content-Type: application/json' \ -d '{ "token": "legacy-verification-token", "team_id": "T0A1B2C3D", "api_app_id": "A0B1C2D3E4F", "event": { "type": "app_mention", "user": "U0PERSON1", "text": "<@U0B1C2D3E> summarize this thread", "channel": "C0CHANNEL1", "ts": "1761300000.000100" }, "type": "event_callback", "event_id": "Ev0A1B2C3D4E", "event_time": 1761300000}'{ "ok": true}