Slack
Access Slack workspaces, channels, and messages through the Slack Web API.
API Reference
Section titled “API Reference”This source provides a single flexible api_slack tool that accepts:
path: API endpoint (e.g., “conversations.list”)method: HTTP method (typically POST for Slack)params: Request body parameters
Common Endpoints
Section titled “Common Endpoints”| Endpoint | Method | Description |
|---|---|---|
| search.all | POST | Search channels, messages, files |
| conversations.info | GET | Get channel details by ID |
| conversations.list | POST | List channels, DMs, groups |
| conversations.history | POST | Get messages from a channel |
| chat.postMessage | POST | Send a message |
| users.list | POST | List workspace users |
Key Guidelines
Section titled “Key Guidelines”- Finding channels by name: Use
search.allinstead of paginatingconversations.list. Much faster. - Two-step pattern:
- Use
search.allto find channels by name → get channel ID - Use
conversations.info(GET, not POST) with the channel ID for full details
- Use
- Channel IDs: Use channel IDs (e.g., C01234567) not names for most operations
Setup Guide
Section titled “Setup Guide”Configuration
Section titled “Configuration”Required config.json:
{ "name": "Slack", "slug": "slack", "enabled": true, "provider": "slack", "type": "api", "api": { "baseUrl": "https://slack.com/api/", "authType": "bearer", "testEndpoint": { "method": "POST", "path": "auth.test" } }, "iconUrl": "slack.com"}Authentication
Section titled “Authentication”Use source_slack_oauth_trigger to start the Slack OAuth flow. This is a native integration that handles token storage automatically.
Rate Limits
Section titled “Rate Limits”Slack uses tiered rate limiting:
- Tier 1: 1 request per second (e.g., chat.postMessage)
- Tier 2: 20 requests per minute (e.g., conversations.list)
- Tier 3: 50 requests per minute (e.g., users.info)
Check Retry-After header when rate limited.
Permissions for Explore Mode
Section titled “Permissions for Explore Mode”{ "allowedApiEndpoints": [ { "method": "POST", "path": "conversations\\.list" }, { "method": "POST", "path": "conversations\\.history" }, { "method": "GET", "path": "conversations\\.info" }, { "method": "POST", "path": "users\\.list" } ]}