Developer ToolsFree referencePDF, Excel, Word export

Slack API Rate Limit Tiers Reference

Slack limits how often an app can call each Web API method, and exceeding the limit returns HTTP 429. This reference groups common methods by tier so you can budget calls from an ERP or workflow integration before you build it.

Download:
TierApproximate budgetMethodTypical ERP integration use
Tier 1
1 or more per minute
(Rare, bulk or admin methods)
Do not call in a loop; schedule rarely
Tier 2
20 or more per minute
conversations.list
Look up channel IDs once and cache them
Tier 2
20 or more per minute
users.list
Sync staff directory nightly, not per event
Tier 2
20 or more per minute
conversations.members
Audit channel membership on a schedule
Tier 3
50 or more per minute
conversations.history
Read approval replies in a channel (prefer events)
Tier 3
50 or more per minute
conversations.replies
Read thread replies on an approval message
Tier 3
50 or more per minute
chat.update
Edit an approval message after a decision
Tier 3
50 or more per minute
chat.delete
Remove superseded alerts
Tier 3
50 or more per minute
reactions.add
Mark an alert as acknowledged
Tier 3
50 or more per minute
conversations.open
Open a direct message with an approver
Tier 3
50 or more per minute
conversations.create
Create a channel per incident or project
Tier 4
100 or more per minute
users.info
Resolve a single user by ID
Tier 4
100 or more per minute
views.open
Open a modal from a button click (must be within 3 seconds)
Tier 4
100 or more per minute
views.update
Update a modal while the user is working
Tier 4
100 or more per minute
auth.test
Verify a bot token on startup
Special
About 1 message per second per channel, short bursts allowed
chat.postMessage
Send alerts and approval requests
Special
Per workspace and per channel limits
Incoming webhooks
Simple one way alerts; about 1 per second per webhook

Slack groups methods into tiers and may adjust limits for specific methods or app types, including apps distributed outside the Slack Marketplace. Treat the figures as planning numbers and confirm the method page in the Slack API documentation. On HTTP 429, wait the number of seconds in the Retry-After header before retrying.

Check your integration limits

Optional review of your expected peak message volume against platform limits.

Optional. The tool and every export work without this. No spam.

How to read the tiers

Slack describes tiers 1 to 4 as roughly 1, 20, 50 and 100 requests per minute, applied per method and per workspace for each app. Posting messages is a special case with a rate of about one message per second per channel, with short bursts allowed. Look up the method you plan to use, find the tier, and compare the budget to your expected peak, not your average.

  • Cache channel and user IDs instead of looking them up on every event.
  • Use Events API subscriptions rather than polling history methods.
  • Honour the Retry-After header on every 429.
  • Batch many notifications into one message where the content allows.

Worked example: month end approval burst

A purchasing workflow sends 400 approval requests in ten minutes at month end. If each one is posted to the same channel, the one per second guideline allows about 600 in that time, so it fits but with little headroom. If each one is a direct message, conversations.open adds a Tier 3 call per approver, so cache the conversation IDs. A queue with a worker that drains at 40 per minute keeps you inside every limit.

Common mistakes

The most frequent problem is polling conversations.history every few seconds to detect replies, which burns a Tier 3 budget and may be restricted further. Another is ignoring Retry-After and retrying instantly, which extends the penalty. A third is opening a modal with views.open after the trigger ID has expired, which looks like a rate problem but is a timing problem.

Frequently Asked Questions

What is the Slack chat.postMessage rate limit?

Slack treats chat.postMessage as a special case, allowing about one message per second per channel with short bursts tolerated. Sustained sending above that returns HTTP 429 with a Retry-After header telling you how long to wait.

How do I handle a Slack 429 response?

Read the Retry-After header, stop calling that method for that many seconds, then resume. Put outgoing calls in a queue so one slow burst does not block unrelated work, and avoid retrying in tight loops.

Do rate limits apply per app or per workspace?

Limits are generally applied per method, per app and per workspace, so installing the same app in several workspaces gives each its own budget. Confirm the details for your app type in the current Slack documentation.

Should I poll Slack for approval replies?

No. Use interactive components and the Events API so Slack pushes the click or reply to your endpoint. Polling history methods wastes budget and adds delay to every approval.

If your ERP approvals or alerts need to reach Slack reliably at peak volume, Netray can design the queueing and retry layer with you.