Slack Developer Kit for Python
Go to GitHub


v2.0.0 (2019-04-29)

[Original RFC]( [v2 PR](

New Features 1. Client Decomposition: We’ve split the client into two.

  1. WebClient: A HTTP client focused on Slack’s Web API.

  2. RTMClient: A websocket client focused on Slack’s RTM API.

  1. RTMClient: Completely redesigned, this client allows you to link your application’s callbacks to corresponding Slack events.

  2. WebClient: The WebClient now provides built-in methods for Slack’s Web API. These methods act as helpers enabling you to focus less on how the request is constructed. Here are a few things that this provides:

  1. Basic information about each method through the docstring.

  2. Easy File Uploads: You can now pass in the location of a file and the library will handle opening and retrieving the file object to be transmitted.

  3. Token type validation: This gives you better error messaging when you’re attempting to consume an api method that your token doesn’t have access to.

  4. Constructs requests using Slack’s preferred HTTP methods and content-types.

Breaking Changes: If you’re migrating from v1.x of slackclient to v2.x, Please follow our migration guide to ensure your app continues working after updating.

[Check out the Migration Guide here!](

Thank you! This release would not have been possible without the support of our community. Thank you to everyone who’s contributed to this release.

v1.3.1 (2019-02-28)

  • Lock websocket-client version to < 0.55.0: temp fix for #385

v1.3.0 (2018-09-11)

## New Features - Adds support for short lived tokens and automatic token refresh #347 (Thanks @roach!)

## Other - update RTM rate limiting comment and error message #308 (Thanks @benoitlavigne!) - Use logging instead of traceback #309 (Thanks @harlowja!) - Remove Python 3.3 from test environments #346 (Thanks @roach!) - Enforced linting when using VSCode. #347 (Thanks @roach!)

v1.2.1 (2018-03-26)

  • Added rate limit handling for rtm connections (thanks @jayalane!)

v1.2.0 (2018-03-20)

  • You can now tell the RTM client to automatically reconnect by passing auto_reconnect=True

v1.1.3 (2018-03-01)

  • Fixed another API param encoding bug. It encodes things properly now.

v1.1.2 (2018-01-31)

  • Fixed an encoding issue which was encoding some Web API params incorrectly (sorry)

v1.1.1 (2018-01-30)

  • Adds HTTP response headers to api_call responses to expose things like rate limit info

  • Moves token into auth header rather than request params

v1.1.0 (2017-11-21)

  • Aadds new SlackClientError and ResponseParseError types to describe errors - thanks @aoberoi!

  • Fix Build Error (#245) - thanks @stasfilin!

  • include email as user property (#173) - thanks @acaire!

  • Add http reply into slack login and slack connection error (#216) - thanks @harlowja!

  • Removed unused exception class (#233)

  • Fix rtm_send_message bug (#225) - thanks @kt5356!

  • Allow use of custom parameters on rtm_connect() (#210) - thanks @kamushadenes!

  • Fix link to rtm.connect docs (#223) - @sampart!

v1.0.9 (2017-08-31)

  • Fixed rtm_send_message ID bug introduced in 1.0.8

v1.0.8 (2017-08-31)

  • Added rtm.connect support

v1.0.7 (2017-08-02)

  • Fixes an issue where connecting over RTM to large teams may result in “Websocket URL expired” errors

  • A load of packaging improvements

v1.0.6 (2017-06-12)

  • Added proxy support (thanks @timfeirg!)

  • Tidied up docs (thanks @schlueter!)

  • Added tox settings for Python 3 testing (thanks @cclauss!)

v1.0.5 (2017-01-23)

  • Allow RTM Channel.send_message to reply to a thread

  • Index users by ID instead of Name (non-breaking change)

  • Added timeout to api calls.

  • Fixed a typo about token access in auth.rst, thanks @kelvintaywl!

  • Added Message Threads to the docs

v1.0.4 (2016-12-15)

  • fixed the ability to search for a user by ID

v1.0.3 (2016-12-13)

  • fixed an issue causing RTM connections to fail for large teams

v1.0.2 (2016-09-22)

  • removed unused ping counter

  • fixed contributor guidelines links

  • updated documentation

  • Fix bug preventing API calls requiring a file ID

  • Removes files from api_calls before JSON encoding, so the request is properly formatted

v1.0.1 (2016-03-25)

  • fix for __eq__ comparison in channels using ‘#’ in channel name

  • added copyright info to the LICENSE file

v1.0.0 (2016-02-28)

  • the api_call function now returns a decoded JSON object, rather than a JSON encoded string

  • some api_call calls now call actions on the parent server object: - -, groups.create, groups.createChild - channels.create, channels.join`

v0.18.0 (2016-02-21)

  • Moves to use semver for versioning

  • Adds support for private groups and MPDMs

  • Switches to use requests instead of urllib

  • Gets Travis CI integration working

  • Fixes some formatting issues so the code will work for python 2.6

  • Cleans up some unused imports, some PEP-8 fixes and a couple bad default args fixes

v0.17.0 (2016-02-15)