Slack API rate limits are set by method tier: Tier 1 allows 1+ request per minute, Tier 2 20+, Tier 3 50+ and Tier 4 100+, applied per method, per workspace, per app. Posting messages is about 1 per second per channel. Go over a limit and Slack returns HTTP 429 with a Retry-After header.
Slack doesn't give your app one overall allowance. It counts each API method separately, for each workspace your app is installed in. That changes how you should think about limits: the question isn't how many calls your app can make, it's how many calls to this method, in this workspace.
The four tiers, as published in Nov 2026
| Item | Limit | Applies to |
|---|---|---|
| Web API Tier 1 methods | 1+ per minute | Per method, per workspace, per app |
| Web API Tier 2 | 20+ per minute | Per method, per workspace, per app |
| Web API Tier 3 | 50+ per minute | Per method, per workspace, per app |
| Web API Tier 4 | 100+ per minute | Per method, per workspace, per app |
| Posting messages | 1 per second | Per channel; includes incoming webhooks |
| Events API deliveries | 30,000 per 60 minutes | Per workspace, per app |
| Workflow webhook triggers | 10 per minute | Workflow triggers |
| users.profile.set | 10 per minute per profile; 30 profiles per minute per token | Profile updates |
There's also a Special Tier with rules specific to certain methods. Each method's reference page tells you which tier it sits in, so check the page for every method you use rather than guessing. Slack says all plans get the same tier for each method, and that each tier's limits may change.
Posting is where most apps get stuck
Apps can post no more than one message per second per channel, and incoming webhooks are held to 1 per second too. Short bursts are allowed, but delivery isn't guaranteed. A bot that announces fifty new orders at once into one channel will hit this long before any tier limit.
The Slack Developer Docs make the point plainly: limits are per method rather than per app, the tier numbers are floors that may change, and exact burst limits aren't published at all. Slack's guidance is to design for about 1 request per second per API call. The bigger risk is behaviour. Keep sending after you've exceeded a limit and your app can be permanently disabled.
Reading a 429 correctly
When you go over, Slack returns HTTP 429 Too Many Requests with a Retry-After header giving the seconds to wait. Wait that long, then retry.
A 429 on one method doesn't block calls to other methods in that workspace, or the same method in other workspaces. So your app can keep doing other work while one method cools down. Build your queue per method and per workspace, and you'll avoid stalling everything because one call was throttled.
Small rules that change your numbers
Paginate, or get stricter limits
Methods that support cursored pagination only get their stated limit when you paginate. Pull everything in one go and Slack applies stricter limits. If a list call seems slow to recover, check you're using the cursor.
Profile updates
users.profile.set is limited to 10 updates per minute per user profile and 30 user profiles per minute per token. A tool that syncs job titles from your HR system for a large team needs to pace itself accordingly.
Events and workflows
Events API deliveries max out at 30,000 per workspace per app per 60 minutes, after which Slack sends an app_rate_limited event. Workflow triggers allow 10,000 event triggers per hour and 10 webhook triggers per minute.
Want AI doing the heavy lifting in your marketing?
I build the systems that handle the boring 80 percent, so you get your week back. Done properly, with the human kept in.
How other platforms set their limits
Discord lets all bots make up to 50 requests per second to its API. Notion limits each connection to a set number of requests per 60-second window depending on the workspace plan, and also returns 429 with Retry-After. GitHub's REST API allows 60 requests per hour unauthenticated, with authenticated requests counted against a separate personal limit. If you're deciding whether to poll or listen for events, my explainer on APIs versus webhooks helps.
My advice for anyone building a Slack app
Assume about one call per second and one message per second per channel, and you'll rarely see a 429. When you do, honour Retry-After to the second, because Slack's warning about disabling apps is real. Paginate every list call, look up each method's tier, and batch announcements into a single message. If Slack isn't the right home for your team, my list of Slack alternatives is worth a look.
Want your tool on this list? Featured spots and reviews here are paid partnerships. Here's how to partner with me.
Frequently asked questions
What is Slack's API rate limit?
It depends on the method tier: 1+, 20+, 50+ or 100+ requests per minute, per method, per workspace, per app.
What happens when I hit the limit?
Slack returns HTTP 429 and a Retry-After header telling you how many seconds to wait.
How many messages can my app post?
About one per second per channel. Short bursts are tolerated but not guaranteed.
Do higher Slack plans get higher API limits?
No. Slack says all plans receive the same rate limit tier for each method.
Is there a limit on incoming webhooks?
Yes, 1 per second, with short bursts allowed.


