---
name: Python SDK
slug: slack-python-sdk
type: github
source_url: https://github.com/slackapi/python-slack-sdk
organization: Slack
organization_slug: slack
total_releases: 100
latest_version: v3.41.0
latest_date: 2026-03-12
last_updated: 2026-04-18
tracking_since: 2020-10-22
canonical: https://releases.sh/slack/slack-python-sdk
organization_url: https://releases.sh/slack
---

<Release version="v3.41.0" date="March 12, 2026" published="2026-03-12T16:09:09.000Z" url="https://github.com/slackapi/python-slack-sdk/releases/tag/v3.41.0">
<!-- Release notes generated using configuration in .github/release.yml at main -->

## What's Changed
### 🚀 Enhancements
* feat: add support for apps.user.connection.update by @WilliamBergamin in https://github.com/slackapi/python-slack-sdk/pull/1835
### 📦 Other changes
* chore: add AGENTS.md and consolidate development scripts by @WilliamBergamin in https://github.com/slackapi/python-slack-sdk/pull/1836
* chore(deps): bump actions/upload-artifact from 6.0.0 to 7.0.0 by @dependabot[bot] in https://github.com/slackapi/python-slack-sdk/pull/1837
* chore(deps): bump actions/stale from 10.1.1 to 10.2.0 by @dependabot[bot] in https://github.com/slackapi/python-slack-sdk/pull/1838
* chore(deps): bump actions/download-artifact from 7.0.0 to 8.0.0 by @dependabot[bot] in https://github.com/slackapi/python-slack-sdk/pull/1839
* chore(release): version 3.41.0 by @WilliamBergamin in https://github.com/slackapi/python-slack-sdk/pull/1841


**Full Changelog**: https://github.com/slackapi/python-slack-sdk/compare/v3.40.1...v3.41.0
**Milestone**: https://github.com/slackapi/python-slack-sdk/milestone/117?closed=1
</Release>

<Release version="v3.40.1" date="February 18, 2026" published="2026-02-18T21:39:07.000Z" url="https://github.com/slackapi/python-slack-sdk/releases/tag/v3.40.1">
<!-- Release notes generated using configuration in .github/release.yml at main -->

## What's Changed
### 🐛 Bug Fixes
* fix: rely on naive datetime for sqlalchemy by @WilliamBergamin in https://github.com/slackapi/python-slack-sdk/pull/1833
### 📦 Other changes
* chore(release): version 3.40.1 by @WilliamBergamin in https://github.com/slackapi/python-slack-sdk/pull/1834


**Full Changelog**: https://github.com/slackapi/python-slack-sdk/compare/v3.40.0...v3.40.1
**Milestone**: https://github.com/slackapi/python-slack-sdk/milestone/116?closed=1
</Release>

<Release version="v3.40.0" date="February 10, 2026" published="2026-02-10T22:09:09.000Z" url="https://github.com/slackapi/python-slack-sdk/releases/tag/v3.40.0">
<!-- Release notes generated using configuration in .github/release.yml at main -->
## Agent Thinking Steps: Display Tasks/Tools, Plans, and Markdown Text

### 🍿 Preview: Display as Plan

https://github.com/user-attachments/assets/85219072-66ac-4d86-a18b-dd92689036ea

### 🍿 Preview: Display as Timeline

https://github.com/user-attachments/assets/4cb0bb5f-c70f-4304-b875-4dc262640a67

### 📺 Chat Stream with 2 Display Mode

- Plan Display Mode
- Timeline Display Mode

### 👾 Chat Stream Structured Content

Now, you can display a mixture of structured content called "chunks":

- 🔠 **Markdown Text Block** to format your text with standard markdown
- ☑️ **Task Card Block** to display a single task, representing an AI Tool Call or general action
- 🗒️ **Plan Block** to display a collection of related tasks
- 📚 **URL Sources Element** to display references within a task card block

Available in:
- 🔌 API Methods: `chat_startStream`, `chat_appendStream`, and `chat_stopStream`
- 🛟 Chat Stream Helper: `streamer = client.chat_stream(...)`, `streamer.append(...)`

#### 📖 Documentation

- **Announcements**
    - [CHANGELOG](https://docs.slack.dev/changelog/2026/02/11/task-cards-plan-blocks)
- **Guides**
    - [AI in Slack Apps](https://docs.slack.dev/ai/developing-ai-apps#streaming)
    - [Developing AI Apps (streaming section)](https://docs.slack.dev/ai/developing-ai-apps#streaming)
    - [Sending and Scheduling Messages (streaming section)](https://docs.slack.dev/messaging/sending-and-scheduling-messages#text-streaming)
- **Block Kit**
    - [Plan Block](https://docs.slack.dev/reference/block-kit/blocks/plan-block)
    - [Task Card Block](https://docs.slack.dev/reference/block-kit/blocks/task-card-block)
    - [URL Source Element](https://docs.slack.dev/reference/block-kit/block-elements/url-source-element)
- **References**
    - API Methods: [chat.startStream](https://docs.slack.dev/reference/methods/chat.startstream), [chat.appendStream](https://docs.slack.dev/reference/methods/chat.appendstream), and [chat.stopStream](https://docs.slack.dev/reference/methods/chat.stopstream)
    - [Python SDK Reference](https://docs.slack.dev/tools/python-slack-sdk/reference/index.html)

#### 🍿 Getting Started

```bash
$ slack create

# → AI Agent App
#     Bolt for JavaScript
#   → Bolt for Python
```

### 🕹️ Example

```python
streamer = client.chat_stream(
    channel=channel_id,
    recipient_team_id=team_id,
    recipient_user_id=user_id,
    thread_ts=thread_ts,
    task_display_mode="plan",
)

streamer.append(
    chunks=[
        MarkdownTextChunk(
            text="Hello.\nI have received the task. ",
        ),
        MarkdownTextChunk(
            text="This task appears manageable.\nThat is good.",
        ),
        TaskUpdateChunk(
            id="001",
            title="Understanding the task...",
            status="in_progress",
            details="- Identifying the goal\n- Identifying constraints",
        ),
        TaskUpdateChunk(
            id="002",
            title="Performing acrobatics...",
            status="pending",
        ),
    ],
)

time.sleep(4)

streamer.append(
    chunks=[
        PlanUpdateChunk(
            title="Adding the final pieces...",
        ),
        TaskUpdateChunk(
            id="001",
            title="Understanding the task...",
            status="complete",
            details="\n- Pretending this was obvious",
            output="We'll continue to ramble now",
        ),
        TaskUpdateChunk(
            id="002",
            title="Performing acrobatics...",
            status="in_progress",
        ),
    ],
)

time.sleep(4)

streamer.stop(
    chunks=[
        PlanUpdateChunk(
            title="Decided to put on a show",
        ),
        TaskUpdateChunk(
            id="002",
            title="Performing acrobatics...",
            status="complete",
            details="- Jumped atop ropes\n- Juggled bowling pins\n- Rode a single wheel too",
        ),
        MarkdownTextChunk(
            text="The crowd appears to be astounded and applauds :popcorn:"
        ),
    ],
    blocks=create_feedback_block(),
)
```

---

## What's Changed
### 🚀 Enhancements
* feat: add thinking steps support as chunks to chat stream with plan and task blocks by @zimeg in https://github.com/slackapi/python-slack-sdk/pull/1824
### 🐛 Bug Fixes
* fix: move away from datetime.utcfromtimestamp for the state and installation stores by @WilliamBergamin in https://github.com/slackapi/python-slack-sdk/pull/1798

### 📚 Documentation

* fix: broken link to CI from readme by @WilliamBergamin in https://github.com/slackapi/python-slack-sdk/pull/1805
* docs: updates outmoded links by @lukegalbraithrussell in https://github.com/slackapi/python-slack-sdk/pull/1807

### 📦 Dependencies

* chore(deps): bump actions/checkout from 5.0.0 to 6.0.0 by @dependabot[bot] in https://github.com/slackapi/python-slack-sdk/pull/1799
* chore(deps): bump actions/setup-python from 6.0.0 to 6.1.0 by @dependabot[bot] in https://github.com/slackapi/python-slack-sdk/pull/1800
* chore(deps): bump docutils from 0.22.2 to 0.22.3 by @dependabot[bot] in https://github.com/slackapi/python-slack-sdk/pull/1802
* chore(deps): update mypy requirement from <=1.18.2 to <=1.19.0 by @dependabot[bot] in https://github.com/slackapi/python-slack-sdk/pull/1801
* chore(deps): bump actions/checkout from 6.0.0 to 6.0.1 by @dependabot[bot] in https://github.com/slackapi/python-slack-sdk/pull/1817
* chore(deps): bump actions/stale from 10.1.0 to 10.1.1 by @dependabot[bot] in https://github.com/slackapi/python-slack-sdk/pull/1816
* chore(deps): bump docutils from 0.22.3 to 0.22.4 by @dependabot[bot] in https://github.com/slackapi/python-slack-sdk/pull/1812
* chore(deps): bump codecov/codecov-action from 5.5.1 to 5.5.2 by @dependabot[bot] in https://github.com/slackapi/python-slack-sdk/pull/1815
* chore(deps): bump actions/download-artifact from 6.0.0 to 7.0.0 by @dependabot[bot] in https://github.com/slackapi/python-slack-sdk/pull/1813
* chore(deps): bump actions/upload-artifact from 5.0.0 to 6.0.0 by @dependabot[bot] in https://github.com/slackapi/python-slack-sdk/pull/1814
* chore(deps): bump black from 23.3.0 to 24.3.0 in /requirements by @dependabot[bot] in https://github.com/slackapi/python-slack-sdk/pull/1786
* chore(deps): update mypy requirement from <=1.19.0 to <=1.19.1 by @dependabot[bot] in https://github.com/slackapi/python-slack-sdk/pull/1827
* chore(deps): bump actions/setup-python from 6.1.0 to 6.2.0 by @dependabot[bot] in https://github.com/slackapi/python-slack-sdk/pull/1828
* chore(deps): bump actions/checkout from 6.0.1 to 6.0.2 by @dependabot[bot] in https://github.com/slackapi/python-slack-sdk/pull/1829

### 🧰 Maintenance
* fix: improve CI and helper scripts by @WilliamBergamin in https://github.com/slackapi/python-slack-sdk/pull/1803
* ci(deps): auto-approve / auto-merge dependencies from dependabot by @mwbrooks in https://github.com/slackapi/python-slack-sdk/pull/1830
* chore(release): version 3.40.0 by @zimeg in https://github.com/slackapi/python-slack-sdk/pull/1831



**Full Changelog**: https://github.com/slackapi/python-slack-sdk/compare/v3.39.0...v3.40.0
**Milestone**: https://github.com/slackapi/python-slack-sdk/milestone/115
</Release>

<Release version="v3.40.0.dev0" date="January 17, 2026" published="2026-01-17T00:37:51.000Z" url="https://github.com/slackapi/python-slack-sdk/releases/tag/v3.40.0.dev0">
<!-- Release notes generated using configuration in .github/release.yml at feat-ai-apps-thinking-steps -->

## What's Changed
### 🚀 Enhancements
* feat: accept chunks as arguments to chat.{start,append,stop}Stream methods by @zimeg in https://github.com/slackapi/python-slack-sdk/pull/1806
* feat: support and flush chunks in the chat stream helper by @zimeg in https://github.com/slackapi/python-slack-sdk/pull/1809
* feat: add task_card and plan blocks by @zimeg in https://github.com/slackapi/python-slack-sdk/pull/1819
* feat: add task_display_mode option to the start of chat streams by @zimeg in https://github.com/slackapi/python-slack-sdk/pull/1820
* feat: add plan_update chunk for chat streaming by @zimeg in https://github.com/slackapi/python-slack-sdk/pull/1821
### 🐛 Bug Fixes
* fix: move away from datetime.utcfromtimestamp for the state and installation stores by @WilliamBergamin in https://github.com/slackapi/python-slack-sdk/pull/1798
* fix: broken link to CI from readme by @WilliamBergamin in https://github.com/slackapi/python-slack-sdk/pull/1805
### 📦 Other changes
* chore(deps): bump actions/checkout from 5.0.0 to 6.0.0 by @dependabot[bot] in https://github.com/slackapi/python-slack-sdk/pull/1799
* chore(deps): bump actions/setup-python from 6.0.0 to 6.1.0 by @dependabot[bot] in https://github.com/slackapi/python-slack-sdk/pull/1800
* chore(deps): bump docutils from 0.22.2 to 0.22.3 by @dependabot[bot] in https://github.com/slackapi/python-slack-sdk/pull/1802
* chore(deps): update mypy requirement from <=1.18.2 to <=1.19.0 by @dependabot[bot] in https://github.com/slackapi/python-slack-sdk/pull/1801
* fix: improve CI and helper scripts by @WilliamBergamin in https://github.com/slackapi/python-slack-sdk/pull/1803


**Full Changelog**: https://github.com/slackapi/python-slack-sdk/compare/v3.39.0...v3.40.0.dev0
</Release>

<Release version="v3.39.0" date="November 20, 2025" published="2025-11-20T15:18:14.000Z" url="https://github.com/slackapi/python-slack-sdk/releases/tag/v3.39.0">
## What's Changed

### 🚀 Enhancements
* feat: Add work objects support by @vegeris in https://github.com/slackapi/python-slack-sdk/pull/1783 and https://github.com/slackapi/python-slack-sdk/pull/1793
* feat(web-api): add slackLists methods by @srtaalej in https://github.com/slackapi/python-slack-sdk/pull/1772
* feat: add table block by @codomposer in https://github.com/slackapi/python-slack-sdk/pull/1788

### 📦 Other changes
* fix: improve the release instructions by @WilliamBergamin in https://github.com/slackapi/python-slack-sdk/pull/1792
* chore: Add .github/CODEOWNERS file by @mwbrooks in https://github.com/slackapi/python-slack-sdk/pull/1791
* chore(release): version 3.39.0 by @vegeris in https://github.com/slackapi/python-slack-sdk/pull/1795

## New Contributors
* @vegeris made their first contribution in https://github.com/slackapi/python-slack-sdk/pull/1783

**Full Changelog**: https://github.com/slackapi/python-slack-sdk/compare/v3.38.0...v3.39.0
**Milestone**: https://github.com/slackapi/python-slack-sdk/milestone/114?closed=1
</Release>

<Release version="v3.38.0" date="November 13, 2025" published="2025-11-13T15:56:52.000Z" url="https://github.com/slackapi/python-slack-sdk/releases/tag/v3.38.0">
<!-- Release notes generated using configuration in .github/release.yml at main -->

## What's Changed
### 🚀 Enhancements
* feat(models): add underline to rich text section block element by @zimeg in https://github.com/slackapi/python-slack-sdk/pull/1771
* feat: support python 3.14 by @WilliamBergamin in https://github.com/slackapi/python-slack-sdk/pull/1784
* use filename for uploaded files by @codomposer in https://github.com/slackapi/python-slack-sdk/pull/1774
### 🐛 Bug Fixes
* fix: remove unused mypy ignore type comments by @zimeg in https://github.com/slackapi/python-slack-sdk/pull/1769
* docs(oauth): use a variable "base_dir" home path for file stores by @zimeg in https://github.com/slackapi/python-slack-sdk/pull/1760
### 📚 Documentation
* docs: corrects typo in reference url on landing page by @lukegalbraithrussell in https://github.com/slackapi/python-slack-sdk/pull/1779
* docs: link to context actions block and related reference by @zimeg in https://github.com/slackapi/python-slack-sdk/pull/1789
### 📦 Other changes
* ci: send regression notifications if prior jobs do not succeed on schedule by @zimeg in https://github.com/slackapi/python-slack-sdk/pull/1768
* chore(deps): bump actions/stale from 10.0.0 to 10.1.0 by @dependabot[bot] in https://github.com/slackapi/python-slack-sdk/pull/1776
* chore(deps): bump black from 22.10.0 to 23.3.0 by @dependabot[bot] in https://github.com/slackapi/python-slack-sdk/pull/1775
* fix: dependabot config to ignore `black` by @WilliamBergamin in https://github.com/slackapi/python-slack-sdk/pull/1778
* chore: automate release process by @WilliamBergamin in https://github.com/slackapi/python-slack-sdk/pull/1781
* chore: add a formatter script for maintainers by @WilliamBergamin in https://github.com/slackapi/python-slack-sdk/pull/1785
* ci: upload test results using the recommended codecov action by @zimeg in https://github.com/slackapi/python-slack-sdk/pull/1787
* chore(release): version 3.38.0 by @WilliamBergamin in https://github.com/slackapi/python-slack-sdk/pull/1790

## New Contributors
* @codomposer made their first contribution in https://github.com/slackapi/python-slack-sdk/pull/1774

**Full Changelog**: https://github.com/slackapi/python-slack-sdk/compare/v3.37.0...v3.38.0
**Milestone**: https://github.com/slackapi/python-slack-sdk/milestone/113?closed=1
</Release>

<Release version="v3.37.0" date="October 7, 2025" published="2025-10-07T02:16:28.000Z" url="https://github.com/slackapi/python-slack-sdk/releases/tag/v3.37.0">
## AI-Enabled Features: Loading States, Text Streaming, and Feedback Buttons

### 🍿 Preview

https://github.com/user-attachments/assets/bc16597b-1632-46bb-b7aa-fe22330daf84

### 📚 Changelog

* https://docs.slack.dev/changelog/2025/10/7/chat-streaming

### ⚡ Getting Started

Try the AI Agent Sample app to explore the AI-enabled features and existing Assistant helper:

```bash
# Create a new AI Agent app
$ slack create slack-ai-agent-app --template slack-samples/bolt-python-assistant-template
$ cd slack-ai-agent-app/

# Initialize Python Virtual Environment
$ python3 -m venv .venv
$ source .venv/bin/activate
$ pip install -r requirements.txt

# Add your OPENAI_API_KEY
$ export OPENAI_API_KEY=sk-proj-ahM...

# Run the local dev server
$ slack run
```

After the app starts, send a message to the "slack-ai-agent-app" bot for a unique response.

### ⌛ Loading States

Loading states allows you to not only set the status (e.g. "My app is typing...") but also sprinkle some personality by cycling through a collection of loading messages:

```python
@app.message()
def handle_message(message, client):
    client.assistant_threads_setStatus(
        channel_id=channel_id,
        thread_ts=thread_ts,
        status="thinking...",
        loading_messages=[
            "Teaching the hamsters to type faster…",
            "Untangling the internet cables…",
            "Consulting the office goldfish…",
            "Polishing up the response just for you…",
            "Convincing the AI to stop overthinking…",
        ],
    )

    # Start a new message stream
```

- https://docs.slack.dev/reference/methods/assistant.threads.setStatus

### 🔮 Text Streaming Helper

The `chat_stream()` helper utility can be used to streamline calling the 3 text streaming methods:

```python
# Start a new message stream
streamer = client.chat_stream(
    channel=channel_id,
    recipient_team_id=team_id,
    recipient_user_id=user_id,
    thread_ts=thread_ts,
)

# Loop over OpenAI response stream
# https://platform.openai.com/docs/api-reference/responses/create
for event in returned_message:
    if event.type == "response.output_text.delta":
        streamer.append(markdown_text=f"{event.delta}")
    else:
        continue

feedback_block = create_feedback_block()
streamer.stop(blocks=feedback_block)
```

- https://docs.slack.dev/tools/python-slack-sdk/reference/web/chat_stream.html

### 🔠 Text Streaming Methods

Alternative to the Text Streaming Helper is to call the individual methods.

#### 1) `client.chat_startStream`

First, start a chat text stream to stream a response to any message:

```python
@app.message()
def handle_message(client, context, event, messsage):
    # Start a new message stream
    stream_response = client.chat_startStream(
        channel=channel_id,
        recipient_team_id=team_id,
        recipient_user_id=user_id,
        thread_ts=thread_ts,
    )
    stream_ts = stream_response["ts"]
```

- https://docs.slack.dev/reference/methods/chat.startStream

#### 2) `client.chat_appendStream`

After starting a chat text stream, you can then append text to it in chunks (often from your favourite LLM SDK) to convey a streaming effect:

```python
for event in returned_message:
    if event.type == "response.output_text.delta":
        client.chat_appendStream(
            channel=channel_id, 
            ts=stream_ts, 
            markdown_text=f"{event.delta}"
        )
    else:
        continue
```

- https://docs.slack.dev/reference/methods/chat.appendStream

#### 3) `client.chat_stopStream`

Lastly, you can stop the chat text stream to finalize your message:

```python
client.chat_stopStream(
    channel=channel_id, 
    ts=stream_ts,
    blocks=feedback_block
)
```

- https://docs.slack.dev/reference/methods/chat.stopStream

### 👍🏻 Feedback Buttons

Add feedback buttons to the bottom of a message, after stopping a text stream, to gather user feedback:

```python
def create_feedback_block() -> List[Block]:
    blocks: List[Block] = [
        ContextActionsBlock(
            elements=[
                FeedbackButtonsElement(
                    action_id="feedback",
                    positive_button=FeedbackButtonObject(
                        text="Good Response",
                        accessibility_label="Submit positive feedback on this response",
                        value="good-feedback",
                    ),
                    negative_button=FeedbackButtonObject(
                        text="Bad Response",
                        accessibility_label="Submit negative feedback on this response",
                        value="bad-feedback",
                    ),
                )
            ]
        )
    ]
    return blocks

@app.message()
def handle_message(client, context, event, message):
    # ... previous streaming code ...
    
    # Stop the stream and add feedback buttons
    feedback_block = create_feedback_block()
    client.chat_stopStream(
        channel=channel_id, 
        ts=stream_ts, 
        blocks=feedback_block
    )
```

- https://docs.slack.dev/reference/block-kit/blocks/context-actions-block/
- https://docs.slack.dev/reference/block-kit/block-elements/feedback-buttons-element/
- https://docs.slack.dev/reference/block-kit/block-elements/icon-button-element/

## Ⓜ️ Markdown Text Support

### `chat_postMessage` supports `markdown_text`

```python
response = client.chat_postMessage(
    channel="C111",
    markdown_text=markdown_content,
)
```

Learn more in https://github.com/slackapi/python-slack-sdk/pull/1718

### 🧩 Markdown Block

> 📚 https://docs.slack.dev/reference/block-kit/blocks/markdown-block/

```python
from slack_sdk.models.blocks import MarkdownBlock
...

@app.message("hello")
def message_hello(say):
    say(
        blocks=[
            MarkdownBlock(text="**lets's go!**"),
        ],
        text="let's go!",
    )
```

Learn more in https://github.com/slackapi/python-slack-sdk/pull/1748

## 🎞️ Workflows Featured Methods

Add support for the `workflows.featured.{add|list|remove|set}` methods:

* https://docs.slack.dev/reference/methods/workflows.featured.add
* https://docs.slack.dev/reference/methods/workflows.featured.list
* https://docs.slack.dev/reference/methods/workflows.featured.remove
* https://docs.slack.dev/reference/methods/workflows.featured.set

```python
app.client.workflows_featured_add(channel_id="C0123456789", trigger_ids=["Ft0123456789"])
app.client.workflows_featured_list(channel_ids="C0123456789")
app.client.workflows_featured_remove(channel_id="C0123456789", trigger_ids=["Ft0123456789"])
app.client.workflows_featured_set(channel_id="C0123456789", trigger_ids=["Ft0123456789"])
````

Learn more in https://github.com/slackapi/python-slack-sdk/pull/1712

## What's Changed

### 👾 Enhancements

* feat(web): add workflows.featured.{add|list|remove|set} methods in https://github.com/slackapi/python-slack-sdk/pull/1712 - Thanks @zimeg!
* feat: support markdown_text parameter in https://github.com/slackapi/python-slack-sdk/pull/1718 - Thanks @WilliamBergamin!
* feat(models): add markdown block in https://github.com/slackapi/python-slack-sdk/pull/1748 - Thanks @zimeg!
* feat: add ai-enabled features text streaming methods, feedback blocks, and loading state in https://github.com/slackapi/python-slack-sdk/pull/1766 - Thanks @zimeg!

### 🐛 Bug fixes

* Make team_id optional for admin_users_list in https://github.com/slackapi/python-slack-sdk/pull/1725 - Thanks @hello-ashleyintech!

### 📚 Documentation

* Fix python package name in installation guide in https://github.com/slackapi/python-slack-sdk/pull/1719 - Thanks @daviesian!
* docs: replace links from api.slack.com to docs.slack.dev redirects in https://github.com/slackapi/python-slack-sdk/pull/1763 - Thanks @zimeg!

### 🤖 Dependencies

* chore(deps): bump on-headers and compression in /docs in https://github.com/slackapi/python-slack-sdk/pull/1710 - Thanks @dependabot[bot]!
* chore(deps): bump docutils from 0.21.2 to 0.22 in https://github.com/slackapi/python-slack-sdk/pull/1721 - Thanks @dependabot[bot]!
* chore(deps): update pytest-asyncio requirement from <1 to <2 in https://github.com/slackapi/python-slack-sdk/pull/1722 - Thanks @dependabot[bot]!
* chore(deps): bump the react group in /docs with 2 updates in https://github.com/slackapi/python-slack-sdk/pull/1723 - Thanks @dependabot[bot]!
* chore(deps): bump actions/checkout from 4.2.2 to 5.0.0 in https://github.com/slackapi/python-slack-sdk/pull/1734 - Thanks @dependabot[bot]!
* chore(deps): bump codecov/codecov-action from 5.4.3 to 5.5.0 in https://github.com/slackapi/python-slack-sdk/pull/1733 - Thanks @dependabot[bot]!
* chore(deps): bump actions/setup-python from 5.6.0 to 6.0.0 in https://github.com/slackapi/python-slack-sdk/pull/1737 - Thanks @dependabot[bot]!
* chore(deps): bump actions/stale from 9.1.0 to 10.0.0 in https://github.com/slackapi/python-slack-sdk/pull/1738 - Thanks @dependabot[bot]!
* chore(deps): bump codecov/codecov-action from 5.5.0 to 5.5.1 in https://github.com/slackapi/python-slack-sdk/pull/1739 - Thanks @dependabot[bot]!
* chore(deps): update pytest-cov requirement from <7,>=2 to >=2,<8 in https://github.com/slackapi/python-slack-sdk/pull/1741 - Thanks @dependabot[bot]!
* chore(deps): update mypy requirement from <=1.15.0 to <=1.17.1 in https://github.com/slackapi/python-slack-sdk/pull/1740 - Thanks @dependabot[bot]!
* chore(deps): update mypy requirement from <=1.17.1 to <=1.18.2 in https://github.com/slackapi/python-slack-sdk/pull/1758 - Thanks @dependabot[bot]!
* chore(deps): bump docutils from 0.22 to 0.22.2 in https://github.com/slackapi/python-slack-sdk/pull/1757 - Thanks @dependabot[bot]!

### 🧰 Maintenance

* Build: remove docusaurus configuration files in https://github.com/slackapi/python-slack-sdk/pull/1716 - Thanks @lukegalbraithrussell!
* chore: remove 3.6 references  in https://github.com/slackapi/python-slack-sdk/pull/1735 - Thanks @ewanek1!
* chore: clean up project based on 3.6 removal in https://github.com/slackapi/python-slack-sdk/pull/1736 - Thanks @WilliamBergamin!
* version 3.37.0 in https://github.com/slackapi/python-slack-sdk/pull/1767 - Thanks @zimeg!


## New Contributors 🎉 

* @daviesian made their first contribution in https://github.com/slackapi/python-slack-sdk/pull/1719
* @ewanek1 made their first contribution in https://github.com/slackapi/python-slack-sdk/pull/1735

**Milestone**: https://github.com/slackapi/python-slack-sdk/milestone/112
**Full Changelog**: https://github.com/slackapi/python-slack-sdk/compare/v3.36.0...v3.37.0
**Package**: https://pypi.org/project/slack-sdk/3.37.0/
</Release>

<Release version="v3.36.0" date="July 9, 2025" published="2025-07-09T21:05:40.000Z" url="https://github.com/slackapi/python-slack-sdk/releases/tag/v3.36.0">
## What's changed

### 👾 Enhancements

* feat: add support for elevate methods in https://github.com/slackapi/python-slack-sdk/pull/1703 - Thanks @WilliamBergamin!

### 🧪 Tests

* tests: add tests to ensure web client is copyable in https://github.com/slackapi/python-slack-sdk/pull/1682 - Thanks @WilliamBergamin!
* chore: remove 3.6 CI support in https://github.com/slackapi/python-slack-sdk/pull/1683 - Thanks @WilliamBergamin!
* fix: aiohttp test_init_with_loop broken test in https://github.com/slackapi/python-slack-sdk/pull/1697 - Thanks @WilliamBergamin!

### 📚 Documentation

* docs: reference creating an app with scopes to gather a token for installation in https://github.com/slackapi/python-slack-sdk/pull/1694 - Thanks @zimeg!
* Docs: Update old links, apply style guide, and generally copyedit/clean up the Python SDK docs. in https://github.com/slackapi/python-slack-sdk/pull/1699 - Thanks @technically-tracy!

### 🤖 Dependencies

* chore(deps): bump @babel/helpers from 7.26.0 to 7.27.0 in /docs in https://github.com/slackapi/python-slack-sdk/pull/1678 - Thanks @dependabot!
* chore(deps): bump @babel/runtime-corejs3 from 7.26.9 to 7.27.0 in /docs in https://github.com/slackapi/python-slack-sdk/pull/1679 - Thanks @dependabot!
* chore(deps): bump @babel/runtime from 7.26.0 to 7.27.0 in /docs in https://github.com/slackapi/python-slack-sdk/pull/1680 - Thanks @dependabot!
* chore(deps): bump pdoc3 from 0.11.5 to 0.11.6 in https://github.com/slackapi/python-slack-sdk/pull/1684 - Thanks @dependabot!
* chore(deps): bump the react group in /docs with 2 updates in https://github.com/slackapi/python-slack-sdk/pull/1685 - Thanks @dependabot!
* chore(deps): bump image-size from 1.2.0 to 1.2.1 in /docs in https://github.com/slackapi/python-slack-sdk/pull/1686 - Thanks @dependabot!
* chore(deps): bump estree-util-value-to-estree from 3.3.2 to 3.3.3 in /docs in https://github.com/slackapi/python-slack-sdk/pull/1687 - Thanks @dependabot!
* chore(deps): bump http-proxy-middleware from 2.0.7 to 2.0.9 in /docs in https://github.com/slackapi/python-slack-sdk/pull/1689 - Thanks @dependabot!
* chore(deps): bump the docusaurus group in /docs with 5 updates in https://github.com/slackapi/python-slack-sdk/pull/1696 - Thanks @dependabot!
* chore(deps): bump codecov/test-results-action from 1.1.0 to 1.1.1 in https://github.com/slackapi/python-slack-sdk/pull/1695 - Thanks @dependabot!
* chore(deps): bump the docusaurus group in /docs with 5 updates in https://github.com/slackapi/python-slack-sdk/pull/1705 - Thanks @dependabot!
* chore(deps): bump brace-expansion from 1.1.11 to 1.1.12 in /docs in https://github.com/slackapi/python-slack-sdk/pull/1706 - Thanks @dependabot!

### 🧰 Maintenance

* health: publish test results to code cov in https://github.com/slackapi/python-slack-sdk/pull/1677 - Thanks @WilliamBergamin!
* ci: pin actions workflow step hashes and use minimum permissions in https://github.com/slackapi/python-slack-sdk/pull/1691 - Thanks @zimeg!
* chore: increase the robustness of the uninstall script in https://github.com/slackapi/python-slack-sdk/pull/1704 - Thanks @WilliamBergamin!
* chore(release): version 3.36.0 in https://github.com/slackapi/python-slack-sdk/pull/1707 - Thanks @zimeg!

**Milestone**: https://github.com/slackapi/python-slack-sdk/milestone/111
**Full Changelog**: https://github.com/slackapi/python-slack-sdk/compare/v3.35.0...v3.36.0
</Release>

<Release version="v3.35.0" date="March 17, 2025" published="2025-03-17T15:49:48.000Z" url="https://github.com/slackapi/python-slack-sdk/releases/tag/v3.35.0">
## version 3.35.0

## What's Changed
### ➕ features
* feat: #1276 add Asyncio SQLAlchemy support by @galuszkak in https://github.com/slackapi/python-slack-sdk/pull/1633
* feat: add `channels` param to files.upload v2 method by @seratch in https://github.com/slackapi/python-slack-sdk/pull/1641
* feat: support pathlike objects in upload util by @allen-pattern in https://github.com/slackapi/python-slack-sdk/pull/1656
* feat: WebClient/AsyncWebClient expose logger property by @WilliamBergamin in https://github.com/slackapi/python-slack-sdk/pull/1671

### 🐛 fixes
* fix: #1622 Additional check for exceptions from aiohttp by @lingfish in https://github.com/slackapi/python-slack-sdk/pull/1632
* fix: #1611 Add expand attribute to SectionBlock by @seratch in https://github.com/slackapi/python-slack-sdk/pull/1635
* fix: #1636 Custom Values passed into correctly into Bot/Installation class when cloned during token rotation by @seratch in https://github.com/slackapi/python-slack-sdk/pull/1638
* fix: Remove quotes from cookie value in OAuthStateUtils by @memben in https://github.com/slackapi/python-slack-sdk/pull/1648
* fix: max length for static option values by @xoob in https://github.com/slackapi/python-slack-sdk/pull/1655

### 📚 docs
* docs: Syncing config files with Deno Slack SDK and Slack CLI docs by @slackapi in https://github.com/slackapi/python-slack-sdk/pull/1619
* docs: Move Python OAuth Scopes and Uploading files with Python SDK tutorials to Python SDK site. by @technically-tracy in https://github.com/slackapi/python-slack-sdk/pull/1657
* docs: matches site css to slack.dev and  docs.slack.dev by @slackapi in https://github.com/slackapi/python-slack-sdk/pull/1660
* fixes broken apps navbar link by @slackapi in https://github.com/slackapi/python-slack-sdk/pull/1666
* docs: `channel_id` instead of `channel` in `files_upload_v2` documentation by @WilliamBergamin in https://github.com/slackapi/python-slack-sdk/pull/1670

### 🏗️ maintenance
* health: move away from setup.py by @WilliamBergamin in https://github.com/slackapi/python-slack-sdk/pull/1623
* health: move to mypy by @WilliamBergamin in https://github.com/slackapi/python-slack-sdk/pull/1620
* health: remove pytest-runner from build-system.requires by @musicinmybrain in https://github.com/slackapi/python-slack-sdk/pull/1659
* docs: include packaging script steps in the maintainers guide by @zimeg in https://github.com/slackapi/python-slack-sdk/pull/1672
* fix: configure dependabot to group react deps by @WilliamBergamin in https://github.com/slackapi/python-slack-sdk/pull/1664
* chore: version 3.35.0 by @WilliamBergamin in https://github.com/slackapi/python-slack-sdk/pull/1674

### :dependabot: dependabot
* chore(deps): bump pdoc3 from 0.11.3 to 0.11.5 by @dependabot in https://github.com/slackapi/python-slack-sdk/pull/1625
* chore(deps): update mypy requirement from <=1.13.0 to <=1.14.1 by @dependabot in https://github.com/slackapi/python-slack-sdk/pull/1626
* chore(deps): bump prism-react-renderer from 2.4.0 to 2.4.1 in /docs by @dependabot in https://github.com/slackapi/python-slack-sdk/pull/1627
* chore(deps): bump actions/stale from 9.0.0 to 9.1.0 by @dependabot in https://github.com/slackapi/python-slack-sdk/pull/1646
* chore(deps): bump the docusaurus group in /docs with 5 updates by @dependabot in https://github.com/slackapi/python-slack-sdk/pull/1643
* chore(deps): update psutil requirement from <7,>=6.0.0 to >=6.0.0,<8 by @dependabot in https://github.com/slackapi/python-slack-sdk/pull/1661
* chore(deps): update websockets requirement from <15,>=9.1 to >=9.1,<16 by @dependabot in https://github.com/slackapi/python-slack-sdk/pull/1662
* chore(deps): update mypy requirement from <=1.14.1 to <=1.15.0 by @dependabot in https://github.com/slackapi/python-slack-sdk/pull/1663
* chore(deps): bump the react group in /docs with 2 updates by @dependabot in https://github.com/slackapi/python-slack-sdk/pull/1665
* chore(deps): bump prismjs from 1.29.0 to 1.30.0 in /docs by @dependabot in https://github.com/slackapi/python-slack-sdk/pull/1668

## New Contributors
* @lingfish made their first contribution in https://github.com/slackapi/python-slack-sdk/pull/1632
* @galuszkak made their first contribution in https://github.com/slackapi/python-slack-sdk/pull/1633
* @memben made their first contribution in https://github.com/slackapi/python-slack-sdk/pull/1648
* @xoob made their first contribution in https://github.com/slackapi/python-slack-sdk/pull/1655
* @technically-tracy made their first contribution in https://github.com/slackapi/python-slack-sdk/pull/1657
* @musicinmybrain made their first contribution in https://github.com/slackapi/python-slack-sdk/pull/1659
* @allen-pattern made their first contribution in https://github.com/slackapi/python-slack-sdk/pull/1656
---
* All issues/pull requests: https://github.com/slackapi/python-slack-sdk/milestone/108?closed=1
* All changes: https://github.com/slackapi/python-slack-sdk/compare/v3.34.0...v3.35.0
</Release>

<Release version="v3.34.0" date="December 17, 2024" published="2024-12-17T22:26:57.000Z" url="https://github.com/slackapi/python-slack-sdk/releases/tag/v3.34.0">
## version 3.34.0

## Changes

* feat: add support for python 3.13 by @WilliamBergamin in https://github.com/slackapi/python-slack-sdk/pull/1614
* fix: 'ClientConnection' object has no attribute 'closed' when using socket mode with asyncio by @WilliamBergamin in https://github.com/slackapi/python-slack-sdk/pull/1613
* build: improve the stability of flaky tests by @WilliamBergamin in https://github.com/slackapi/python-slack-sdk/pull/1615
* build: enable tests that are now stable by @WilliamBergamin in https://github.com/slackapi/python-slack-sdk/pull/1617

### Dependabot
* Bump path-to-regexp and express in /docs by @dependabot in https://github.com/slackapi/python-slack-sdk/pull/1610
* chore(deps): bump nanoid from 3.3.7 to 3.3.8 in /docs by @dependabot in https://github.com/slackapi/python-slack-sdk/pull/1616

---
* All issues/pull requests: https://github.com/slackapi/python-slack-sdk/milestone/110?closed=1
* All changes:  https://github.com/slackapi/python-slack-sdk/compare/v3.33.5...v3.34.0

</Release>

<Release version="v3.33.5" date="December 5, 2024" published="2024-12-05T04:05:53.000Z" url="https://github.com/slackapi/python-slack-sdk/releases/tag/v3.33.5">
## version 3.33.5

## Changes

* #1594 #1598 #1541 Improve WebClient's slack.com url overwriting experience - Thanks @HTSagara @WilliamBergamin 
* #1609 SocketModeClient expose asyncio event loop param - Thanks @jantman 
* #1602 Improve unit tests' mock server implementation - Thanks @WilliamBergamin 
* #1608 "channel_id" instead of "channel" in "files_upload_v2" code example - Thanks @wefi-nick

---
* All issues/pull requests: https://github.com/slackapi/python-slack-sdk/milestone/109?closed=1
* All changes: https://github.com/slackapi/python-slack-sdk/compare/v3.33.4...v3.33.5
</Release>

<Release version="v3.33.4" date="November 19, 2024" published="2024-11-19T03:40:14.000Z" url="https://github.com/slackapi/python-slack-sdk/releases/tag/v3.33.4">
## version 3.33.4

## Changes

* #1593 Error with socket_mode_handler.connect_async(), not passing bytes to ping w/ aiohttp 3.11 - Thanks @jasonwbarnett @bdraco @keviddles 

---
* All issues/pull requests: https://github.com/slackapi/python-slack-sdk/milestone/107?closed=1
* All changes: https://github.com/slackapi/python-slack-sdk/compare/v3.33.3...v3.33.4
</Release>

<Release version="v3.33.3" date="October 30, 2024" published="2024-10-30T01:38:14.000Z" url="https://github.com/slackapi/python-slack-sdk/releases/tag/v3.33.3">
## version 3.33.3

## Changes

* #1576 Enable rich_text_* elements to have an empty 'elements' property - Thanks @seratch 

---
* All issues/pull requests: https://github.com/slackapi/python-slack-sdk/milestone/106?closed=1
* All changes: https://github.com/slackapi/python-slack-sdk/compare/v3.33.2...v3.33.3
</Release>

<Release version="v3.33.2" date="October 25, 2024" published="2024-10-25T05:39:33.000Z" url="https://github.com/slackapi/python-slack-sdk/releases/tag/v3.33.2">
## version 3.33.2

## Changes

* #1572 Fix #1571 initial_value for RichTextInputElement should also accept type RichTextBlock - Thanks @macintacos @seratch 
* #1574 Switch canvases.* APIs to application/json format for more stability - Thanks @seratch 

---
* All issues/pull requests: https://github.com/slackapi/python-slack-sdk/milestone/105?closed=1
* All changes: https://github.com/slackapi/python-slack-sdk/compare/v3.33.1...v3.33.2
</Release>

<Release version="v3.33.1" date="September 19, 2024" published="2024-09-19T09:09:42.000Z" url="https://github.com/slackapi/python-slack-sdk/releases/tag/v3.33.1">
## version 3.33.1

## Changes

* Enable WebClient#assistant_threads_setSuggestedPrompts to skip title param - Thanks @seratch 

---
* All issues/pull requests: https://github.com/slackapi/python-slack-sdk/milestone/104?closed=1
* All changes: https://github.com/slackapi/python-slack-sdk/compare/v3.33.0...v3.33.1
</Release>

<Release version="v3.33.0" date="September 17, 2024" published="2024-09-17T00:55:48.000Z" url="https://github.com/slackapi/python-slack-sdk/releases/tag/v3.33.0">
## version 3.33.0

## Changes

* #1563 Add assistant.threads.* APIs - Thanks @seratch 
* #1560 Fix RichTextElementParts.Date.timestamp to be an int - Thanks @PaarthShah 

---
* All issues/pull requests: https://github.com/slackapi/python-slack-sdk/milestone/103?closed=1
* All changes: https://github.com/slackapi/python-slack-sdk/compare/v3.32.0...v3.33.0
</Release>

<Release version="v3.32.0" date="September 6, 2024" published="2024-09-06T17:41:26.000Z" url="https://github.com/slackapi/python-slack-sdk/releases/tag/v3.32.0">
## version 3.32.0

## What's Changed

### Features and Fixes
* feat: add support for `conversations.requestShared` `approve`, `deny` & `list` by @WilliamBergamin in https://github.com/slackapi/python-slack-sdk/pull/1530
* feat: add interactivity_pointer as trigger_id alias to views.* APIs by @seratch in https://github.com/slackapi/python-slack-sdk/pull/1556
* feat: support all possible fields for RichTextElementParts.Date by @srtaalej in https://github.com/slackapi/python-slack-sdk/pull/1536

### Documentation
* docs: adds Docusaurus site by @lukegalbraithrussell in https://github.com/slackapi/python-slack-sdk/pull/1537
* docs: remove line breaks in md intros for unfurls by @lukegalbraithrussell in https://github.com/slackapi/python-slack-sdk/pull/1538
* docs: adds google analytics tag by @lukegalbraithrussell in https://github.com/slackapi/python-slack-sdk/pull/1540
* fix: update the docs generation script by @WilliamBergamin in https://github.com/slackapi/python-slack-sdk/pull/1528

### Misc
* chore: improve maintainer guidelines  by @WilliamBergamin in https://github.com/slackapi/python-slack-sdk/pull/1529
* version 3.32.0 by @WilliamBergamin in https://github.com/slackapi/python-slack-sdk/pull/1558

### Dependabot
* bump webpack from 5.92.1 to 5.94.0 in /docs by @dependabot in https://github.com/slackapi/python-slack-sdk/pull/1546
* bump @docusaurus/module-type-aliases from 3.4.0 to 3.5.2 in /docs by @dependabot in https://github.com/slackapi/python-slack-sdk/pull/1548
* bump websockets requirement from <13,>=9.1 to >=9.1,<14 by @dependabot in https://github.com/slackapi/python-slack-sdk/pull/1551
* bump micromatch from 4.0.7 to 4.0.8 in /docs by @dependabot in https://github.com/slackapi/python-slack-sdk/pull/1552
* bump @docusaurus/types from 3.4.0 to 3.5.2 in /docs by @dependabot in https://github.com/slackapi/python-slack-sdk/pull/1550
* chore: group docusaurus dependencies by @WilliamBergamin in https://github.com/slackapi/python-slack-sdk/pull/1553
* bump the docusaurus group in /docs with 3 updates by @dependabot in https://github.com/slackapi/python-slack-sdk/pull/1554
* bump prism-react-renderer from 2.3.1 to 2.4.0 in /docs by @dependabot in https://github.com/slackapi/python-slack-sdk/pull/1555
* bump sphinx from 7.3.7 to 8.0.2 by @dependabot in https://github.com/slackapi/python-slack-sdk/pull/1535

## New Contributors
* @lukegalbraithrussell made their first contribution in https://github.com/slackapi/python-slack-sdk/pull/1537
* @srtaalej made their first contribution in https://github.com/slackapi/python-slack-sdk/pull/1536

---
* All issues/pull requests: https://github.com/slackapi/python-slack-sdk/milestone/101?closed=1
* All changes: https://github.com/slackapi/python-slack-sdk/compare/v3.31.0...v3.32.0
</Release>

<Release version="v3.31.0" date="July 4, 2024" published="2024-07-04T16:47:32.000Z" url="https://github.com/slackapi/python-slack-sdk/releases/tag/v3.31.0">
## version 3.31.0

## What's Changed

* feat: add new `conversations.externalInvitePermissions.set` API by @WilliamBergamin in https://github.com/slackapi/python-slack-sdk/pull/1517
* feat: add `team.externalTeams.disconnect` by @WilliamBergamin in https://github.com/slackapi/python-slack-sdk/pull/1526
* fix: redact `bot_access_tokens` from the debug logs of socket mode by @WilliamBergamin in https://github.com/slackapi/python-slack-sdk/pull/1519
* Update psutil requirement from <6,>=5 to >=6.0.0,<7 by @dependabot in https://github.com/slackapi/python-slack-sdk/pull/1522
* chore(release): version 3.31.0 by @WilliamBergamin in https://github.com/slackapi/python-slack-sdk/pull/1527
---
* All issues/pull requests: https://github.com/slackapi/python-slack-sdk/milestone/100?closed=1
* Full Changelog**: https://github.com/slackapi/python-slack-sdk/compare/v3.30.0...v3.31.0
</Release>

<Release version="v3.30.0" date="June 21, 2024" published="2024-06-21T18:03:06.000Z" url="https://github.com/slackapi/python-slack-sdk/releases/tag/v3.30.0">
## version 3.30.0

## Changes

* feat: add team.externalTeams.list by @WilliamBergamin in https://github.com/slackapi/python-slack-sdk/pull/1512
* chore: align README pattern by @WilliamBergamin in https://github.com/slackapi/python-slack-sdk/pull/1513
* chore(release): 3.30.0 by @WilliamBergamin in https://github.com/slackapi/python-slack-sdk/pull/1514

All issues/pull requests: https://github.com/slackapi/python-slack-sdk/milestone/99?closed=1
Full Changelog: https://github.com/slackapi/python-slack-sdk/compare/v3.29.0...v3.30.0
</Release>

<Release version="v3.29.0" date="June 14, 2024" published="2024-06-14T01:47:42.000Z" url="https://github.com/slackapi/python-slack-sdk/releases/tag/v3.29.0">
## version 3.29.0

## Changes

* #1508 Add canvases APIs and users.discoverableContacts.lookup API - Thanks @seratch

---
* All issues/pull requests: https://github.com/slackapi/python-slack-sdk/milestone/97?closed=1
* All changes: https://github.com/slackapi/python-slack-sdk/compare/v3.28.0...v3.29.0
</Release>

<Pagination page="1" total-pages="5" total-items="100" next="https://releases.sh/slack/slack-python-sdk.md?page=2" />
