Skip to content
Slack API reference

Every Slack API rate limit, in one table

23documented limits
4groups

Last verified

Slack rate-limits its Web API per method, per workspace, per app, with windows of one minute. Each method is assigned a tier: Tier 1 allows 1+ requests per minute, Tier 2 allows 20+, Tier 3 allows 50+ and Tier 4 allows 100+. A "special" tier covers methods with their own rules. The most important special rule is message posting: "no more than one message per second per channel," whether through chat.postMessage, an incoming webhook or any other route. The tiers are the same on every Slack plan, so paying for Slack does not raise them.

The biggest recent change is to conversations.history and conversations.replies. Since May 29, 2025, commercially distributed apps that are not approved for the Slack Marketplace ("unlisted" apps) are limited to 1 request per minute on these methods, with at most 15 objects per request. The limit applies to new apps and to new installations of existing unlisted apps. Marketplace apps and internal customer-built apps are not affected, and Slack's changelog says existing installations of unlisted apps are not impacted.

Values below come from Slack's developer documentation (docs.slack.dev; api.slack.com redirects there), verified November 12, 2026. Slack notes that each tier's limits are subject to change.

Official reference: Slack developer docs - Rate limits

Jump to: Web API rate-limit tiers · Posting messages and webhooks · conversations.history and conversations.replies · Events API and Workflow Builder · When you hit a limit · Staying under it

Web API rate-limit tiers

Every Web API method's reference page lists its tier in the Facts section. The "+" matters: Slack documents minimums and tolerates bursts above them, but does not publish exact burst limits. Its design advice is to plan for 1 request per second per method and treat anything above that as a temporary burst. Limits are evaluated per method, per workspace, so a 429 on one method doesn't block other methods or other workspaces. Methods that support cursor pagination get stricter limits if you call them without paginating.

WhatLimitNotesSource
Tier 11+ requests per minuteFor methods meant to be called infrequently; a small amount of burst is tolerated.docs ↗
Tier 220+ requests per minute"Most methods allow at least 20 requests per minute, while allowing for occasional bursts."docs ↗
Tier 350+ requests per minuteTypically methods with paginating collections of conversations or users.docs ↗
Tier 4100+ requests per minuteGenerous burst behavior.docs ↗
Special tierVaries by methodCheck the method's documentation, e.g. chat.postMessage.docs ↗
Scope of a limitPer method, per workspace, per app; 1-minute windows"All Slack plans receive the same rate limit tier for each method."docs ↗
Design guidance1 request per second per methodSlack's recommendation; bursts above it are allowed temporarily.docs ↗

Posting messages and webhooks

Message posting is limited per channel rather than per method, and the limit covers every way of posting. Slack allows short bursts above 1 per second but warns that burst messages are not guaranteed to be stored or displayed. It also says that apps which keep exceeding the limit after being rate-limited risk being permanently disabled. On top of the per-channel rule, chat.postMessage has a workspace-wide ceiling of "several hundred messages per minute."

WhatLimitNotesSource
Messages per channel1 per secondApplies to chat.postMessage, incoming webhooks and other posting routes. Short bursts allowed.docs ↗
chat.postMessage workspace-wideSeveral hundred messages per minuteSlack's wording; no exact figure is published.docs ↗
Incoming webhooks1 per secondShort bursts above 1 allowed. Over-limit requests get HTTP 429.docs ↗
Message text length4,000 characters recommended; truncated above 40,000Truncated responses include a message_truncated warning.docs ↗
Attachments per message100Error too_many_attachments: "A maximum of 100 attachments are allowed on a message."docs ↗
users.profile.set10 updates per user per minute; 30 profiles per token per minuteSome burst behavior allowed.docs ↗

conversations.history and conversations.replies

These two methods read message history, and since May 29, 2025 their limits depend on how your app is distributed. Marketplace-approved apps and internal customer-built apps keep Tier 3 (50+ per minute), and the limit parameter goes up to 999 on conversations.history. Commercially distributed apps that are not in the Marketplace drop to Tier 1 for new apps and new installations: 1 request per minute, with the default and maximum limit reduced to 15 objects. Slack's stated reason is to prevent bulk data exfiltration by unvetted apps.

WhatLimitNotesSource
conversations.history (Marketplace and internal apps)Tier 3: 50+ per minutelimit parameter default 100, maximum 999.docs ↗
conversations.history / conversations.replies (new unlisted, non-Marketplace apps)1 request per minute; max and default limit 15 objectsEffective May 29, 2025 for apps created after that date and for net new installations of existing unlisted apps.docs ↗
Existing installations of unlisted appsNot impactedPer Slack's changelog: "Existing installations of apps distributed outside the Marketplace (excluding internal customer-built apps) will not be impacted."docs ↗
Internal customer-built (custom) apps50+ requests per minute; limit up to 1,000 objectsSlack's changelog states the custom-app figures this way.docs ↗

Events API and Workflow Builder

The Events API inverts the direction: Slack calls your endpoint, and the limit caps how many events Slack will deliver to your app per workspace. When exceeded, Slack sends an app_rate_limited event instead of the events. Workflow Builder triggers and AI steps have their own published limits, which matter when a workflow is the integration point rather than a custom app. The RTM API, now legacy, limits writes to 1 per second and connection calls to 1 per minute.

WhatLimitNotesSource
Events API deliveries30,000 per workspace/team per app per 60 minutesLarger bursts sometimes allowed; over the limit Slack sends an app_rate_limited event.docs ↗
Workflow event triggers10,000 per hourWorkflow Builder.docs ↗
Workflow webhook triggers10 per minuteWorkflow Builder.docs ↗
AI summary workflow step150 requests/min per team (burst 300); 1 request/hour per workflow (burst 10)Workflow Builder.docs ↗
AI Generate workflow step100 requests/day per workflow; 10/hour for message-triggered workflows; 50/day for prompt test runsWorkflow Builder.docs ↗
rtm.start / rtm.connect1 per minuteSome bursting allowed; legacy RTM API.docs ↗

What happens when you hit a limit

Over-limit HTTP calls, including incoming webhooks, return HTTP 429 Too Many Requests with a Retry-After header giving the number of seconds to wait. Slack's example is HTTP/1.1 429 Too Many Requests with Retry-After: 30. The JSON error is ratelimited: "The request has been ratelimited. Refer to the Retry-After header for when to retry the request." chat.postMessage can also return rate_limited: "Application has posted too many messages, read the Rate Limit documentation for more information."

The block lasts only for the method and workspace that hit the limit. Other methods and other workspaces keep working. Repeatedly exceeding posting limits can get an app permanently disabled. For Events API overages, Slack sends an app_rate_limited event instead of your events for the rest of the window.

Staying under the limits

Honor Retry-After exactly. Slack's official SDKs (Bolt, the Python and Node clients) can queue and retry on 429 for you.

Use one shared limiter per workspace and method. Limits are per app, so ten workers posting in parallel share one budget.

Paginate and cache. Always use cursor pagination, since unpaginated calls get stricter limits, and cache results of users.list and conversations.list instead of re-fetching them.

Consolidate messages. Post one summary message or thread reply instead of a burst of single-line posts into one channel.

Submit to the Slack Marketplace if you distribute an app commercially and need history access. Marketplace approval restores Tier 3 limits on conversations.history and conversations.replies, and Slack does not charge for listing.

Definitions

Other platforms

Frequently asked questions

What are Slack's API rate limit tiers?

Tier 1 allows 1+ requests per minute, Tier 2 allows 20+, Tier 3 allows 50+ and Tier 4 allows 100+. A special tier covers methods with unique rules such as chat.postMessage. Limits apply per method, per workspace, per app, in one-minute windows, and every Slack plan gets the same tiers.

How many messages per second can a Slack bot post?

About one message per second per channel. Slack allows short bursts above that but says burst messages aren't guaranteed to be stored or displayed. chat.postMessage also has a workspace-wide limit of several hundred messages per minute. Incoming webhooks have the same 1-per-second limit.

What changed with conversations.history rate limits?

From May 29, 2025, commercially distributed apps that aren't approved for the Slack Marketplace are limited to 1 request per minute on conversations.history and conversations.replies, returning at most 15 objects per request. This applies to new apps and new installations. Marketplace apps and internal customer-built apps keep the previous limits.

Does the conversations.history limit affect my internal Slack app?

No. Slack's changelog states that internal customer-built apps are not impacted. For custom apps, conversations.history and conversations.replies remain at 50+ requests per minute with a limit parameter of up to 1,000 objects. The reduced limit targets apps commercially distributed outside the Marketplace.

What does a Slack 429 response look like?

Slack returns HTTP 429 Too Many Requests with a Retry-After header containing the number of seconds until you can retry, for example 'Retry-After: 30'. The JSON body's error is 'ratelimited'. Wait the indicated time before calling that method for that workspace again; other methods are unaffected.

Do paid Slack plans get higher API rate limits?

No. Slack's documentation states that all Slack plans receive the same rate limit tier for each method. The limits depend on the method, the workspace and, for conversations.history and conversations.replies, on whether the app is Marketplace-approved, internal, or distributed outside the Marketplace.

What is the Slack Events API limit?

30,000 event deliveries per workspace per app per 60 minutes, with larger bursts sometimes allowed. When an app exceeds it, Slack sends an app_rate_limited event containing the minute the limit was reached instead of delivering further events for that window.

Pace the work instead of tripping the limit

Autonoly workflows run on a schedule or a trigger with per-node retries and timeouts, so a job can be spread out and retried rather than run in one burst. Platform limits still apply in full; no tool can lift them.