The Slack API and all integrations are subject to rate limiting.
In general we allow applications that integrate with Slack to send no more than one message per second. We allow bursts over that limit for short periods. However, if your app continues to exceed the limit over a longer period of time it will be rate limited.
If you go over these limits when using our HTTP based APIs, including Incoming Webhooks, Slack will start returning a
HTTP 429 Too Many Requests error, a JSON object containing the number of calls you have been making, and a
Retry-After header containing the number of seconds until you can retry.
If you go over these limits when using our Real Time Messaging API you will receive an error message as a reply. If you continue to send messages your application will be disconnected.
Continuing to send messages after being rate limited runs the risk of having your application permanently disabled.
These limits exist because Slack is primarily a communication tool for humans. Our goal is to detect applications that may be unintentionally spammy and quiet them down to avoid hindering a team's ability to communicate and use their archive.
Other services provide a better interface for logging, searching, aggregating and archiving on messages that occur at higher volumes. These include Papertrail (which integrates directly with Slack), Logentries (also integrates with Slack), Loggly, Splunk and LogStash.
Outgoing Webhooks sent by an outgoing webhooks integration are limited to no more than one message per second, with bursts allowed over short periods to accommodate periods of high activity.
If your outgoing webhooks integration goes over this limit, outgoing webhooks for subsequent messages will not be sent until the rate of outgoing webhooks has gone below the one webhook per second limit.
This limit exists to prevent us sending your servers more events than you or we can handle. If you are reaching this rate limit, see the documentation for Outgoing Webhooks for information on how to restrict the number of messages that trigger your outgoing webhooks integration.
We reserve the right to rate limit other functionality to prevent abuse, spam, denial-of-service attacks, or other security issues. Where possible we'll return a descriptive error message, but the nature of this type of rate limiting often prevents us from providing more information.