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.
Diversity and inclusion make our community strong. We encourage participation from the most varied and diverse backgrounds possible and want to be very clear about where we stand. Our goal is to maintain a safe, helpful and friendly community for everyone, regardless of experience, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, religion, nationality, or other defining characteristic. This code and related procedures also apply to unacceptable behavior occurring outside the scope of community activities, in all community venues— online and in-person— as well as in all one-on-one communications, and anywhere such behavior has the potential to adversely affect the safety and well-being of community members.
Be welcoming. Be kind. Look out for each other.
Conduct or speech which might be considered sexist, racist, homophobic, transphobic, ableist or otherwise discriminatory or offensive in nature.Do not use unwelcome, suggestive, derogatory or inappropriate nicknames or terms. Do not show disrespect towards others. (Jokes, innuendo, dismissive attitudes.) Intimidation or harassment (online or in-person). Please read the Citizen Code of Conductfor how we interpret harassment. Disrespect towards differences of opinion. Inappropriate attention or contact. Be aware of how your actions affect others. If it makes someone uncomfortable, stop. Not understanding the differences between constructive criticism and disparagement. Sustained disruptions. Violence, threats of violence or violent language.
Understand that speech and actions have consequences, and unacceptable behavior will not be tolerated. If you are the subject of, or witness to any violations of this Code of Conduct, please contact us by submitting a form here, or email [email protected]slack.com. If violations occur, organizers will take any action they deem appropriate for the infraction, up to and including expulsion.
Please note, your app does not need to be listed in the App Directory for it to work for your own or other Slack teams. Once you've built your app, you can submit it to the App Directory to be used by other Slack teams. We review apps to ensure they provide users with a great experience and comply with our API TOS, Developer Policy and Brand Guidelines. When submitting, you'll see the comprehensive checklist shown below, which covers the most common points of failure during the review. Follow this checklist to help your app go through the review process quickly and smoothly.
Select your app from api.slack.com Choose Manage Distribution from the left-hand menu Complete the checklist and submit Once we've reviewed your app, we'll email you. If your app is approved, you can publish your app to the App Directory from your app's configuration page. Your live app's settings will be accessible from the Live app configuration section.
Click Edit app on your app's configuration page to create a development copy after you've published it Edit your app as needed and test using the credentials of the development app (these changes will not affect the published version of your app) Submit those changes for review from the Update Directory app section You can also remove your published app from the App Directory in the Live App Settingsof your app's configuration page.
My app only uses the scopes that it needs to work. I've added all scopes my app requests and reasons for each one.
Messages from my app use clear, consistent formatting. (Read up on the formattingand attachment documentation for a refresher. You can also use our Message Builder to see a preview of your messages.) Messages from my app don't contain any typos or grammatical errors. My app doesn't spam all users on a team either in DM or by email (see API Terms of Service). My app uses @-channel or @-here notifications only when truly appropriate. My app does not use any Slack team email addresses collected when the app is installed to send emails to those users. If my app uses a slash command or bot user, there's a way for a user to ask for help or send feedback within the app. I've tested my app on my own Slack team to confirm all its features are functional. I've performed a final test before submitting my app, including installing it from scratch using my own instructions and completing the entire onboarding process. My app is ready to support a large number of users after listing in the App Directory.
We have some guidelines on presenting your Slack app in the directory. Please review them before submission. My app has completed all necessary fields My app's name doesn't infringe on a trademark or copyright for any other products or services. My app's name isn't the same as a name currently in the App Directory. My app has a high quality, distinctive icon that doesn't resemble Slackbot or the Slack icon (see Slack Brand Guidelines). My icon doesn't infringe on anyone else's copyright or trademark (including Slack). My app has a well written, detailed, and truthful long description of what it does. My app's long description includes details about any of the following: paid account requirement, emails from my app, provisioning with a Slack user's email.
My app links to a page with clear instructions on how to contact your team if they encounter problems or need help. My support channel is active, and I'm responsive to new requests. Contacting my team for support doesn't require creating a new account of any kind. I agree to keep my app updated and my support channel active.
My app meets Slack's guidelines and API Terms of Service. My app complies with and embraces our Brand Guidelines wholeheartedly. I agree to follow Slack's App Developer Policy. I agree to abide by the Slack App Directory Agreement. I agree to allow Slack to conduct a security review of my app by terms laid out in both the Slack App Directory Agreement and the Security Review Guide.
We'll also need some information to help us review your app Details of any paid test accounts we need to use your service Details of any test accounts that might be needed for third-party services Details of a new Slack team with your app installed