Bolt Python
Bolt Python is a framework to build Slack apps using Python.
Last verified:
What is Bolt Python?
Bolt Python (Bolt for Python) is a Python framework for building Slack apps using the latest Slack platform features. It provides a simple, intuitive API for apps that listen and respond to events, handle interactive components like buttons and modals, execute slash commands, and integrate with the Slack Web API, with support for both synchronous and asynchronous development. Key features include built-in OAuth 2.0 for multi-workspace installs, Socket Mode for developing behind firewalls, lazy listeners for FaaS environments like AWS Lambda, 200+ Web API methods, and listener decorators for events, actions, shortcuts, commands, and views. Open source under MIT, maintained by Slack's API team, and suited for anything from quickstart bots to marketplace applications.
Bolt Python pricing
Pricing model: Freemium
Bolt for Python is free and open source under the MIT license. There are no paid plans or tiers. The framework itself is completely free to use. Slack workspace creation for development is free, and developer sandboxes are available to avoid disrupting real work. The only potential costs would be hosting infrastructure if deploying to production (e.g., AWS Lambda, cloud servers), but the Bolt framework itself has no licensing fees.
Bolt Python pros
- Python 3.7+ required and fully supported
- Built-in OAuth 2.0 handling for multi-workspace installs
- Socket Mode support for firewall-friendly development
- Lazy listeners exclusive to Bolt for Python for FaaS deployment
- AsyncApp support with asyncio and aiohttp
- Built-in adapters for FastAPI, Sanic, and Starlette
- Simple decorator-based listener syntax
- Over 200 Slack Web API methods available
- Built-in FileInstallationStore and FileOAuthStateStore
- org-wide installation support since version 1.1.0
- Python's standard logging module integration
- Open source with MIT license
- Starter templates available via Slack CLI
- 1.2k GitHub stars and active maintenance
- 92 releases with latest v1.26.0 from Oct 2025
- Detailed documentation with Guides and Reference sections
- process_before_response flag for FaaS compatibility
- Custom OAuth callback options for success/failure pages
Bolt Python cons
- Requires Python 3.7 or later
- Lazy listeners only available in Bolt for Python, not other Bolt frameworks
- 3-second timeout for event processing without lazy listeners
- ngrok needed for local HTTP-based development
- Multiple environment variables required for tokens
- FaaS deployment requires specific IAM permissions
- Async apps require aiohttp dependency installation
- FileOAuthStateStore has 600-second default expiration
Frequently asked questions about Bolt Python
What is Bolt for Python?
Bolt for Python is a Python framework to build Slack apps with the latest Slack platform features. It provides a simple API for creating apps that handle events, actions, commands, modals, and other Slack interactions.
What Python version is required?
Python 3.7 or later is required. The latest stable version of Python is recommended for the smoothest experience.
How do I install Bolt for Python?
Install using pip with the command: pip install slack_bolt. For async apps, also install aiohttp: pip install slack_bolt aiohttp.
What is Socket Mode and when should I use it?
Socket Mode allows your app to use the Events API and interactive features without exposing a public HTTP Request URL. It's helpful during local development or if receiving requests from behind a firewall. Use SocketModeHandler with an app-level token having connections:write scope.
What are lazy listeners?
Lazy listeners are a feature exclusive to Bolt for Python that make it easier to deploy Slack apps to FaaS environments like AWS Lambda. They allow time-consuming processes beyond the 3-second timeout by separating ack() from long-running tasks using the lazy parameter.
How does OAuth work in Bolt for Python?
Bolt for Python automatically handles OAuth 2.0 by setting up OAuth routes when you provide client_id, client_secret, scopes, installation_store, and state_store. It creates slack/oauth_redirect for redirects and slack/install for the Add to Slack button. Custom OAuth settings can override defaults.
Can I build async apps with Bolt for Python?
Yes, import AsyncApp from slack_bolt.async_app and use async/await patterns. All middleware and listeners must be async functions, and utility methods like ack() and say() require await. aiohttp is required for async apps.
What tokens does Bolt for Python use?
Three token types: user tokens (xoxp) for API calls on behalf of users, bot tokens (xoxb) for bot user actions (most common), and app-level tokens (xapp) for WebSocket connections across installations. Bot and app-level tokens are typically used together.
How do I get help with Bolt for Python?
Use the Issue Tracker on GitHub for questions, bug reports, and feature requests (search existing issues first). Email Slack's developer support team at [email protected] for additional assistance. The documentation includes comprehensive Guides and Reference sections.