Communications · active

Slack Web API

Method-oriented APIs for Slack messages, conversations, users, files, views, and workspace integrations.

What it covers

Method-oriented APIs for Slack messages, conversations, users, files, views, and workspace integrations. The profile stays deliberately concise: use the linked official reference for endpoint schemas and current commercial terms.

Integration notes

Authenticate exactly as the provider documents, keep credentials out of client bundles, and retain upstream request identifiers when available. Pagination, retries, caching, and webhook verification should be implemented per product rather than inferred from another API.

Key endpoints

Method Description
chat.postMessage Send a message
chat.update Update a message
conversations.list List channels
conversations.history Channel message history
conversations.members Channel members
users.list List workspace users
files.upload Upload a file
auth.test Verify token

Decision notes

Best suited to workspace automation and interactive slack applications. Before production, verify request only necessary oauth scopes. verify signed inbound requests. Mutable limits, prices, and versions were checked on 2026-09-13 and should be rechecked at purchase or deployment time.

Python example: post a message (bearer token)

import httpx

BOT_TOKEN = "xoxb-your-bot-token"
BASE = "https://slack.com/api"

def post_message(channel: str, text: str) -> dict:
    """Post a message. Slack returns ok:false with an error string on failure."""
    resp = httpx.post(
        f"{BASE}/chat.postMessage",
        headers={"Authorization": f"Bearer {BOT_TOKEN}"},
        json={"channel": channel, "text": text},
        timeout=30,
    )
    resp.raise_for_status()
    data = resp.json()
    if not data.get("ok"):
        raise RuntimeError(f"Slack error: {data.get('error')}")
    return {"ts": data["ts"], "channel": data["channel"]}

print(post_message("#general", "Hello from the API!"))

Notes:

  • Bot tokens start xoxb-; the bot must be invited to the channel first
  • Always check the ok field — HTTP 200 with ok: false means failure (channel_not_found, etc.)
  • Rate limits are tiered per method; respect Retry-After on 429
  • For rich layouts use blocks; text is still required as a fallback

Integration surface

Versioning
Method-based Web API; changes are announced in Slack's changelog
Resource groups
Conversations, Messages, Users, Files, Views, Team
Pagination
Cursor-based pagination with next_cursor
Errors
HTTP status plus JSON ok and error fields
Webhooks
Events API, interactivity and slash-command request URLs
Official SDKs
Node.js, Python, Java