Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebase will rebase this PR
@dependabot recreate will recreate this PR, overwriting any edits that have been made to it
@dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
@dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
@dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
@dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps [openai](https://github.com/openai/openai-python) from 2.44.0 to 3.20.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/openai/openai-python/releases">openai's releases</a>.</em></p>
<blockquote>
<h2>v3.20.0</h2>
<h2><a href="https://github.com/openai/openai-python/compare/v3.19.2...v3.20.0">3.20.0</a> (2026-09-28)</h2>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> add Agents credential and session options (<a href="https://redirect.github.com/openai/openai-python/issues/3967">#3967</a>) (<a href="https://github.com/openai/openai-python/commit/bb68198a4bb4a161cbb32a28c3888a51540eaf0f">bb68198</a>)</li>
<li><strong>api:</strong> add Cyber access programs to Responses (<a href="https://redirect.github.com/openai/openai-python/issues/3956">#3956</a>) (<a href="https://github.com/openai/openai-python/commit/09c5b6f13f716ad4e417fd7ba9209a8a057e0383">09c5b6f</a>)</li>
<li><strong>responses:</strong> opt in to incremental WebSocket text and tool snapshots (<a href="https://redirect.github.com/openai/openai-python/issues/3973">#3973</a>) (<a href="https://github.com/openai/openai-python/commit/d0207b48c043741ff483d7a8c945f8003d1ee714">d0207b4</a>)</li>
<li><strong>responses:</strong> preserve detailed WebSocket accumulator snapshots (<a href="https://redirect.github.com/openai/openai-python/issues/3981">#3981</a>) (<a href="https://github.com/openai/openai-python/commit/a380cf256abc2aa51cbf5d49437ae039b9aa9b12">a380cf2</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong>client:</strong> retry unmapped TLS transport errors (<a href="https://redirect.github.com/openai/openai-python/issues/3982">#3982</a>) (<a href="https://github.com/openai/openai-python/commit/0d35a2640458b64ed2ff4a7c9b1f1a1e5705336e">0d35a26</a>)</li>
<li><strong>live:</strong> avoid hangs at fractional transcript grouping deadlines (<a href="https://redirect.github.com/openai/openai-python/issues/3970">#3970</a>) (<a href="https://github.com/openai/openai-python/commit/4ef4129e85e81a285905755e57b392aa9e77f9bd">4ef4129</a>)</li>
<li><strong>live:</strong> keep query parameters out of WebSocket endpoint paths (<a href="https://redirect.github.com/openai/openai-python/issues/3972">#3972</a>) (<a href="https://github.com/openai/openai-python/commit/f9c458b759e3756979fceebf50bffa78d9cf0b97">f9c458b</a>)</li>
<li><strong>live:</strong> preserve caller queues and prevent uncertain WebSocket replay (<a href="https://redirect.github.com/openai/openai-python/issues/3980">#3980</a>) (<a href="https://github.com/openai/openai-python/commit/80e96860b5ccbfcf4a1c9dd9947fc31cd021037a">80e9686</a>)</li>
<li><strong>realtime:</strong> preserve base URL queries in WebSocket upgrades (<a href="https://redirect.github.com/openai/openai-python/issues/3971">#3971</a>) (<a href="https://github.com/openai/openai-python/commit/f7bd4a703cad904e4f5d91ec9d7abac70d8c0bd6">f7bd4a7</a>)</li>
<li><strong>realtime:</strong> retain configured queues without replaying attempted sends (<a href="https://redirect.github.com/openai/openai-python/issues/3978">#3978</a>) (<a href="https://github.com/openai/openai-python/commit/a52805c2537422ad602eba2bf66072880ea3fd22">a52805c</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li><strong>api:</strong> clarify documented API error responses (<a href="https://redirect.github.com/openai/openai-python/issues/3965">#3965</a>) (<a href="https://github.com/openai/openai-python/commit/384fee3252e2336a85450ff38f9bae41f9199616">384fee3</a>)</li>
<li><strong>api:</strong> document batch error responses (<a href="https://redirect.github.com/openai/openai-python/issues/3961">#3961</a>) (<a href="https://github.com/openai/openai-python/commit/6e4a79cc8c7e640e7ac4be710db32fe20b1020f2">6e4a79c</a>)</li>
<li><strong>api:</strong> document files and uploads error responses (<a href="https://redirect.github.com/openai/openai-python/issues/3960">#3960</a>) (<a href="https://github.com/openai/openai-python/commit/a9d727ff9c4a38fc5dca8d31bd3dd76f473cfc27">a9d727f</a>)</li>
<li><strong>api:</strong> document fine-tuning and model errors (<a href="https://redirect.github.com/openai/openai-python/issues/3964">#3964</a>) (<a href="https://github.com/openai/openai-python/commit/5d4003c12d5df5a5faed35971cac3bcb711fdf7d">5d4003c</a>)</li>
<li><strong>api:</strong> document Responses not-found errors (<a href="https://redirect.github.com/openai/openai-python/issues/3959">#3959</a>) (<a href="https://github.com/openai/openai-python/commit/63099e739d25cb18f90cae93648471bf037bc46f">63099e7</a>)</li>
<li><strong>api:</strong> document stored chat completion errors (<a href="https://redirect.github.com/openai/openai-python/issues/3963">#3963</a>) (<a href="https://github.com/openai/openai-python/commit/a73fe0c3d404335a342d1251bd32709b8e3d76f2">a73fe0c</a>)</li>
</ul>
<h2>v3.19.2</h2>
<h2><a href="https://github.com/openai/openai-python/compare/v3.19.1...v3.19.2">3.19.2</a> (2026-09-23)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>preserve single files for fallback extraction paths (<a href="https://redirect.github.com/openai/openai-python/issues/3875">#3875</a>) (<a href="https://github.com/openai/openai-python/commit/bfd3680c8d3b715bb3175b82cd0fa1c1fb53162f">bfd3680</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li><strong>api:</strong> clarify approximate web search location defaults (<a href="https://redirect.github.com/openai/openai-python/issues/3953">#3953</a>) (<a href="https://github.com/openai/openai-python/commit/a95c95ed372476168e9893723ff694ead5db8586">a95c95e</a>)</li>
<li><strong>api:</strong> clarify Realtime modality array definitions (<a href="https://redirect.github.com/openai/openai-python/issues/3954">#3954</a>) (<a href="https://github.com/openai/openai-python/commit/e79cf53878b1d8580fac3a46e375eb98d9ca161d">e79cf53</a>)</li>
<li><strong>api:</strong> correct fine-tuning bounds and Realtime response reference (<a href="https://redirect.github.com/openai/openai-python/issues/3949">#3949</a>) (<a href="https://github.com/openai/openai-python/commit/325a948a545add0201e082e778ca11b90ddb9426">325a948</a>)</li>
</ul>
<h2>v3.19.1</h2>
<h2><a href="https://github.com/openai/openai-python/compare/v3.19.0...v3.19.1">3.19.1</a> (2026-09-23)</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/openai/openai-python/blob/main/CHANGELOG.md">openai's changelog</a>.</em></p>
<blockquote>
<h2><a href="https://github.com/openai/openai-python/compare/v3.19.2...v3.20.0">3.20.0</a> (2026-09-28)</h2>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> add Agents credential and session options (<a href="https://redirect.github.com/openai/openai-python/issues/3967">#3967</a>) (<a href="https://github.com/openai/openai-python/commit/bb68198a4bb4a161cbb32a28c3888a51540eaf0f">bb68198</a>)</li>
<li><strong>api:</strong> add Cyber access programs to Responses (<a href="https://redirect.github.com/openai/openai-python/issues/3956">#3956</a>) (<a href="https://github.com/openai/openai-python/commit/09c5b6f13f716ad4e417fd7ba9209a8a057e0383">09c5b6f</a>)</li>
<li><strong>responses:</strong> opt in to incremental WebSocket text and tool snapshots (<a href="https://redirect.github.com/openai/openai-python/issues/3973">#3973</a>) (<a href="https://github.com/openai/openai-python/commit/d0207b48c043741ff483d7a8c945f8003d1ee714">d0207b4</a>)</li>
<li><strong>responses:</strong> preserve detailed WebSocket accumulator snapshots (<a href="https://redirect.github.com/openai/openai-python/issues/3981">#3981</a>) (<a href="https://github.com/openai/openai-python/commit/a380cf256abc2aa51cbf5d49437ae039b9aa9b12">a380cf2</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong>client:</strong> retry unmapped TLS transport errors (<a href="https://redirect.github.com/openai/openai-python/issues/3982">#3982</a>) (<a href="https://github.com/openai/openai-python/commit/0d35a2640458b64ed2ff4a7c9b1f1a1e5705336e">0d35a26</a>)</li>
<li><strong>live:</strong> avoid hangs at fractional transcript grouping deadlines (<a href="https://redirect.github.com/openai/openai-python/issues/3970">#3970</a>) (<a href="https://github.com/openai/openai-python/commit/4ef4129e85e81a285905755e57b392aa9e77f9bd">4ef4129</a>)</li>
<li><strong>live:</strong> keep query parameters out of WebSocket endpoint paths (<a href="https://redirect.github.com/openai/openai-python/issues/3972">#3972</a>) (<a href="https://github.com/openai/openai-python/commit/f9c458b759e3756979fceebf50bffa78d9cf0b97">f9c458b</a>)</li>
<li><strong>live:</strong> preserve caller queues and prevent uncertain WebSocket replay (<a href="https://redirect.github.com/openai/openai-python/issues/3980">#3980</a>) (<a href="https://github.com/openai/openai-python/commit/80e96860b5ccbfcf4a1c9dd9947fc31cd021037a">80e9686</a>)</li>
<li><strong>realtime:</strong> preserve base URL queries in WebSocket upgrades (<a href="https://redirect.github.com/openai/openai-python/issues/3971">#3971</a>) (<a href="https://github.com/openai/openai-python/commit/f7bd4a703cad904e4f5d91ec9d7abac70d8c0bd6">f7bd4a7</a>)</li>
<li><strong>realtime:</strong> retain configured queues without replaying attempted sends (<a href="https://redirect.github.com/openai/openai-python/issues/3978">#3978</a>) (<a href="https://github.com/openai/openai-python/commit/a52805c2537422ad602eba2bf66072880ea3fd22">a52805c</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li><strong>api:</strong> clarify documented API error responses (<a href="https://redirect.github.com/openai/openai-python/issues/3965">#3965</a>) (<a href="https://github.com/openai/openai-python/commit/384fee3252e2336a85450ff38f9bae41f9199616">384fee3</a>)</li>
<li><strong>api:</strong> document batch error responses (<a href="https://redirect.github.com/openai/openai-python/issues/3961">#3961</a>) (<a href="https://github.com/openai/openai-python/commit/6e4a79cc8c7e640e7ac4be710db32fe20b1020f2">6e4a79c</a>)</li>
<li><strong>api:</strong> document files and uploads error responses (<a href="https://redirect.github.com/openai/openai-python/issues/3960">#3960</a>) (<a href="https://github.com/openai/openai-python/commit/a9d727ff9c4a38fc5dca8d31bd3dd76f473cfc27">a9d727f</a>)</li>
<li><strong>api:</strong> document fine-tuning and model errors (<a href="https://redirect.github.com/openai/openai-python/issues/3964">#3964</a>) (<a href="https://github.com/openai/openai-python/commit/5d4003c12d5df5a5faed35971cac3bcb711fdf7d">5d4003c</a>)</li>
<li><strong>api:</strong> document Responses not-found errors (<a href="https://redirect.github.com/openai/openai-python/issues/3959">#3959</a>) (<a href="https://github.com/openai/openai-python/commit/63099e739d25cb18f90cae93648471bf037bc46f">63099e7</a>)</li>
<li><strong>api:</strong> document stored chat completion errors (<a href="https://redirect.github.com/openai/openai-python/issues/3963">#3963</a>) (<a href="https://github.com/openai/openai-python/commit/a73fe0c3d404335a342d1251bd32709b8e3d76f2">a73fe0c</a>)</li>
</ul>
<h2><a href="https://github.com/openai/openai-python/compare/v3.19.1...v3.19.2">3.19.2</a> (2026-09-23)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>preserve single files for fallback extraction paths (<a href="https://redirect.github.com/openai/openai-python/issues/3875">#3875</a>) (<a href="https://github.com/openai/openai-python/commit/bfd3680c8d3b715bb3175b82cd0fa1c1fb53162f">bfd3680</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li><strong>api:</strong> clarify approximate web search location defaults (<a href="https://redirect.github.com/openai/openai-python/issues/3953">#3953</a>) (<a href="https://github.com/openai/openai-python/commit/a95c95ed372476168e9893723ff694ead5db8586">a95c95e</a>)</li>
<li><strong>api:</strong> clarify Realtime modality array definitions (<a href="https://redirect.github.com/openai/openai-python/issues/3954">#3954</a>) (<a href="https://github.com/openai/openai-python/commit/e79cf53878b1d8580fac3a46e375eb98d9ca161d">e79cf53</a>)</li>
<li><strong>api:</strong> correct fine-tuning bounds and Realtime response reference (<a href="https://redirect.github.com/openai/openai-python/issues/3949">#3949</a>) (<a href="https://github.com/openai/openai-python/commit/325a948a545add0201e082e778ca11b90ddb9426">325a948</a>)</li>
</ul>
<h2><a href="https://github.com/openai/openai-python/compare/v3.19.0...v3.19.1">3.19.1</a> (2026-09-23)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><strong>chat:</strong> preserve single-pass tool iterables (<a href="https://redirect.github.com/openai/openai-python/issues/3770">#3770</a>) (<a href="https://github.com/openai/openai-python/commit/33ffa1f9fa4f49553ab0287b9359283be818fe40">33ffa1f</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/openai/openai-python/commit/68b173a24fa9ebfc6b84694a39a0dd0f9a1e6087"><code>68b173a</code></a> release: 3.20.0 (<a href="https://redirect.github.com/openai/openai-python/issues/3957">#3957</a>)</li>
<li><a href="https://github.com/openai/openai-python/commit/0d35a2640458b64ed2ff4a7c9b1f1a1e5705336e"><code>0d35a26</code></a> fix(client): retry unmapped TLS transport errors (<a href="https://redirect.github.com/openai/openai-python/issues/3982">#3982</a>)</li>
<li><a href="https://github.com/openai/openai-python/commit/a380cf256abc2aa51cbf5d49437ae039b9aa9b12"><code>a380cf2</code></a> feat(responses): preserve detailed WebSocket accumulator snapshots (<a href="https://redirect.github.com/openai/openai-python/issues/3981">#3981</a>)</li>
<li><a href="https://github.com/openai/openai-python/commit/80e96860b5ccbfcf4a1c9dd9947fc31cd021037a"><code>80e9686</code></a> fix(live): preserve caller queues and prevent uncertain WebSocket replay (<a href="https://redirect.github.com/openai/openai-python/issues/3980">#3980</a>)</li>
<li><a href="https://github.com/openai/openai-python/commit/78074d7561b3ca7ade35357fcad26f5531f024c8"><code>78074d7</code></a> test(realtime): verify recovery boundaries and replacement credentials (<a href="https://redirect.github.com/openai/openai-python/issues/3979">#3979</a>)</li>
<li><a href="https://github.com/openai/openai-python/commit/a52805c2537422ad602eba2bf66072880ea3fd22"><code>a52805c</code></a> fix(realtime): retain configured queues without replaying attempted sends (<a href="https://redirect.github.com/openai/openai-python/issues/3">#3</a>...</li>
<li><a href="https://github.com/openai/openai-python/commit/a444e4256d9b9a2349d187f792dc4bfa2dfba533"><code>a444e42</code></a> test: verify Live grouper disposal on a shared Python WebSocket (<a href="https://redirect.github.com/openai/openai-python/issues/3977">#3977</a>)</li>
<li><a href="https://github.com/openai/openai-python/commit/d0207b48c043741ff483d7a8c945f8003d1ee714"><code>d0207b4</code></a> feat(responses): opt in to incremental WebSocket text and tool snapshots (<a href="https://redirect.github.com/openai/openai-python/issues/3973">#3973</a>)</li>
<li><a href="https://github.com/openai/openai-python/commit/4ef4129e85e81a285905755e57b392aa9e77f9bd"><code>4ef4129</code></a> fix(live): avoid hangs at fractional transcript grouping deadlines (<a href="https://redirect.github.com/openai/openai-python/issues/3970">#3970</a>)</li>
<li><a href="https://github.com/openai/openai-python/commit/f9c458b759e3756979fceebf50bffa78d9cf0b97"><code>f9c458b</code></a> fix(live): keep query parameters out of WebSocket endpoint paths (<a href="https://redirect.github.com/openai/openai-python/issues/3972">#3972</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/openai/openai-python/compare/v2.44.0...v3.20.0">compare view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
You are not authorized to merge this pull request.
This pull request can be merged automatically.
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Bumps openai from 2.44.0 to 3.20.0.
Release notes
Sourced from openai's releases.
... (truncated)
Changelog
Sourced from openai's changelog.
... (truncated)
Commits
68b173arelease: 3.20.0 (#3957)0d35a26fix(client): retry unmapped TLS transport errors (#3982)a380cf2feat(responses): preserve detailed WebSocket accumulator snapshots (#3981)80e9686fix(live): preserve caller queues and prevent uncertain WebSocket replay (#3980)78074d7test(realtime): verify recovery boundaries and replacement credentials (#3979)a52805cfix(realtime): retain configured queues without replaying attempted sends (#3...a444e42test: verify Live grouper disposal on a shared Python WebSocket (#3977)d0207b4feat(responses): opt in to incremental WebSocket text and tool snapshots (#3973)4ef4129fix(live): avoid hangs at fractional transcript grouping deadlines (#3970)f9c458bfix(live): keep query parameters out of WebSocket endpoint paths (#3972)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.