Catalog / Backend

FastAPI changelog

Python web framework that builds request validation and an OpenAPI schema from type hints, running on Starlette and Pydantic.

SubscribeFastAPI as markdown, for pasting into a model
Latest
0.141.1
Shipped
29 Jul 20261 month ago
Collected
60 releasesback to 10 Dec 2025
Source
fastapi/fastapi
Project
fastapi.tiangolo.com
Advisories
1 publishednewest 2021
Breaking
7 releasestagged by the publisher
Feed
RSS

Read today, the first day on record. Collection status

Version history

0.x60 releases
0.141.1

Fixes 🐛 Fix support for background tasks and headers from dependencies in app.frontend(). PR #16105 by @tiangolo. Docs 📝 Document FASTAPI_ENV in FastAPI CLI guide. PR #16104 by @tiangolo.

fixed
0.141.0

Features âœĻ Add app.frontend(check_dir="auto"), to make local development more convenient with fastapi dev. PR #16102 by @tiangolo.

added
0.140.13

Fixes 🐛 Fix status_code being ignored for SSE and JSONL streaming endpoints. PR #15937 by @SAURABHSALVE. Docs 📝 Fix format_sse_event docstring rendering of \n\n terminator. PR #15613 by @AshNicolus. 📝 Add API reference page for fastapi.s

addedfixed
0.140.12

Fixes 🐛 Fix line splitting in format_sse_event to comply with SSE spec. PR #15515 by @Zawwarsami16.

fixed
0.140.11

Fixes 🐛 Fix response_model_* params ignored for non-generator endpoints with Iterable[..] return type. PR #15093 by @YuriiMotov.

fixed
0.140.10

Fixes 🐛 Fix handling sequences with nested Annotated types. PR #14874 by @YuriiMotov. Internal 🐛 Accept any base test failure as regression. PR #16092 by @tiangolo. 🐛 Preserve pytest exit code in regression check. PR #16091 by @tiangolo.

fixed
0.140.9

Fixes 🐛 Fix exclude_defaults not propagated to dict keys and values in jsonable_encoder. PR #16043 by @MBGrao. Internal ⮆ Bump gitpython from 3.1.50 to 3.1.54. PR #16047 by @dependabot[bot]. ⮆ Bump pymdown-extensions from 10.21.3 to 11.0.

fixed
0.140.8

Fixes 🐛 Fix stream item type lost when using include_router(). PR #15077 by @alex-raw.

fixed
0.140.7

Refactors ⚡ïļ Avoid flattening dependencies for OpenAPI. PR #16076 by @tiangolo. Internal ⮆ïļ Upgrade latest-changes to 0.7.1. PR #16077 by @tiangolo. 👷 Add OpenAPI dependency benchmarks. PR #16075 by @tiangolo.

added
0.140.6

Refactors ⚡ïļ Avoid flattening dependencies for request parameters, mainly for OpenAPI. PR #16073 by @tiangolo.

0.140.5

Refactors ⚡ïļ Avoid flattening dependencies for body fields. PR #16071 by @tiangolo.

0.140.4

Refactors ⚡ïļ Skip unused dependency repeat bookkeeping. PR #16069 by @tiangolo.

0.140.3

Refactors ⚡ïļ Avoid repeated dependency flattening in OpenAPI. PR #16067 by @tiangolo.

0.140.2

Refactors ⚡ïļ Stop retaining flat dependency trees. PR #16065 by @tiangolo. Internal 👷 Add new memory benchmark. PR #16064 by @tiangolo.

added
0.140.1

Refactors â™ŧïļ Update the lru_cache limit for dependencies to account for large apps. PR #16062 by @tiangolo.

changed
0.140.0

Refactors ⚡ïļ Reduce memory usage in dependencies. PR #16049 by @tiangolo. Docs 📝 Fix links in docs. PR #15967 by @YuriiMotov. 📝 Add Library Skills documentation. PR #16041 by @tiangolo. 📝 Update docs to use uv projects by default. PR #16

addedchanged
0.139.2

Fixes 🐛 Refactor router route building to make it thread-safe, mainly relevant for tests running in parallel threads (uncommon). PR #16013 by @tiangolo.

fixed
0.139.1

Fixes 🐛 Fix frontend fallback support for doted paths like /users/john.doe. PR #16011 by @tiangolo. Docs 📝 Fix topic repository list not being displayed and skip_users not being applied. PR #15995 by @YuriiMotov. Translations 🌐 Update tr

addedfixedchanged
0.139.0

Features âœĻ Support dependencies in app.frontend(), e.g. for automatic cookie authentication for the frontend. PR #15908 by @tiangolo. Translations 🌐 Update translations for fr (update-outdated). PR #15897 by @tiangolo. 🌐 Update translatio

addedchanged
0.138.2

Refactors â™ŧïļ Make app.frontend() return 404 for methods other than GET or HEAD with no static file matches. PR #15863 by @tiangolo. Internal 🔧 Update sponsors: remove Stainless. PR #15862 by @tiangolo. â™ŧïļ Refactor how sponsors data is hand

changed
0.138.1

Refactors â™ŧïļ Refactor Library Skills, make info easier to find for agents. PR #15841 by @tiangolo. Internal 👷 Simplify pull request workflow triggers. PR #15836 by @tiangolo. 👷 Update issue-manager to 0.7.1. PR #15833 by @tiangolo. ⮆ïļ Upd

securityaddedchanged
0.138.0

Features âœĻ Add support for app.frontend("/", directory="dist") and router.frontend("/", directory="dist"). PR #15800 by @tiangolo. Read the docs: Frontend. Docs 📝 Fix typo in release notes. PR #15807 by @tiangolo. 📝 Add app.frontend() ins

addedchanged
0.137.2

Features âœĻ Add iter_route_contexts() for advanced use cases that used to use router.routes (e.g. Jupyverse). PR #15785 by @tiangolo. Translations 🌐 Fix broken Markdown in Korean custom response docs. PR #15774 by @kooqooo. 🌐 Update transl

addedchanged
0.137.1

Fixes ðŸšĻ Fix typing checks for APIRoute. PR #15765 by @tiangolo. 🐛 Fix bug, allow empty path in path operation in prefixless router. PR #15763 by @tiangolo.

fixed
0.137.0

Breaking Changes â™ŧïļ Refactor internals to preserve APIRouter and APIRoute instances. PR #15745 by @tiangolo. Unblocks âœĻ SO MANY THINGS âœĻ Before this, router.include_router(other_router) would take each path operation from other_router and "

breakingsecurityadded
0.136.3

Refactors â™ŧïļ Do not accept underscore headers when using convert_underscores=True (the default). PR #15589 by @tiangolo.

0.136.2

Refactors â™ŧïļ Validate Server Sent Event fields to avoid applications from sending broken data. PR #15588 by @tiangolo. Docs 📝 Document --entrypoint CLI option. PR #15464 by @YuriiMotov. 📝 Update and simplify docs about help and management

securityaddedchanged
0.136.1

Upgrades ⮆ïļ Update Pydantic v2 code to address deprecations. PR #15101 by @svlandeg. Internal ðŸ”Ļ Tweak translation script. PR #15174 by @YuriiMotov. ⮆ Bump mkdocs-material from 9.7.1 to 9.7.6. PR #15408 by @dependabot[bot]. ⮆ Bump inline-sn

addedchanged
0.136.0

Upgrades ⮆ïļ Support free-threaded Python 3.14t. PR #15149 by @svlandeg.

0.135.4

Refactors ðŸ”Ĩ Remove April Fool's @app.vibe() ðŸĪŠ. PR #15363 by @tiangolo. Internal ⮆ Bump cryptography from 46.0.5 to 46.0.7. PR #15314 by @dependabot[bot]. ⮆ Bump strawberry-graphql from 0.307.1 to 0.312.3. PR #15309 by @dependabot[bot]. ðŸ”Ļ

added
0.135.3

Features âœĻ Add support for @app.vibe(). PR #15280 by @tiangolo. New docs: Vibe Coding. Docs ✏ïļ Fix typo for client_secret in OAuth2 form docstrings. PR #14946 by @bysiber. Internal ðŸ‘Ĩ Update FastAPI People - Experts. PR #15279 by @tiangolo.

addedchanged
0.135.2

Upgrades ⮆ïļ Increase lower bound to pydantic >=2.9.0. and fix the test suite. PR #15139 by @svlandeg. Docs 📝 Add missing last release notes dates. PR #15202 by @tiangolo. 📝 Update docs for contributors and team members regarding translati

addedchanged
0.135.1

Fixes 🐛 Fix, avoid yield from a TaskGroup, only as an async context manager, closed in the request async exit stack. PR #15038 by @tiangolo. Docs ✏ïļ Fix typo in docs/en/docs/_llm-test.md. PR #15007 by @adityagiri3600. 📝 Update Skill, opti

fixedchanged
0.135.0

Features âœĻ Add support for Server Sent Events. PR #15030 by @tiangolo. New docs: Server-Sent Events (SSE).

added
0.134.0

Features âœĻ Add support for streaming JSON Lines and binary data with yield. PR #15022 by @tiangolo. This also upgrades Starlette from >=0.40.0 to >=0.46.0, as it's needed to properly unrwap and re-raise exceptions from exception groups. New

addedchanged
0.133.1

Features 🔧 Add FastAPI Agent Skill. PR #14982 by @tiangolo. Read more about it in Library Agent Skills. Internal ✅ Fix all tests are skipped on Windows. PR #14994 by @YuriiMotov.

added
0.133.0

Upgrades ⮆ïļ Add support for Starlette 1.0.0+. PR #14987 by @tiangolo.

added
0.132.1

Refactors â™ŧïļ Refactor logic to handle OpenAPI and Swagger UI escaping data. PR #14986 by @tiangolo. Internal ðŸ‘Ĩ Update FastAPI People - Experts. PR #14972 by @tiangolo. 👷 Allow skipping benchmark job in test workflow. PR #14974 by @YuriiMo

changed
0.132.0

Breaking Changes 🔒ïļ Add strict_content_type checking for JSON requests. PR #14978 by @tiangolo. Now FastAPI checks, by default, that JSON requests have a Content-Type header with a valid JSON value, like application/json, and rejects reque

breakingaddedchanged
0.131.0

Breaking Changes 🗑ïļ Deprecate ORJSONResponse and UJSONResponse. PR #14964 by @tiangolo.

breakingdeprecated
0.130.0

Features âœĻ Serialize JSON response with Pydantic (in Rust), when there's a Pydantic return type or response model. PR #14962 by @tiangolo. This results in 2x (or more) performance increase for JSON responses. New docs: Custom Response - JSO

added
0.129.2

Internal ⮆ïļ Upgrade pytest. PR #14959 by @tiangolo. 👷 Fix CI, do not attempt to publish fastapi-slim. PR #14958 by @tiangolo. ➖ Drop support for fastapi-slim, no more versions will be released, use only "fastapi[standard]" or fastapi. PR #

changed
0.129.1

Fixes â™ŧïļ Fix JSON Schema for bytes, use "contentMediaType": "application/octet-stream" instead of "format": "binary". PR #14953 by @tiangolo. Docs ðŸ”Ļ Add Kapa.ai widget (AI chatbot). PR #14938 by @tiangolo. ðŸ”Ĩ Remove Python 3.9 specific fil

addedfixedchanged
0.129.0

Breaking Changes ➖ Drop support for Python 3.9. PR #14897 by @tiangolo. Refactors ðŸŽĻ Update internal types for Python 3.10. PR #14898 by @tiangolo. Docs 📝 Update highlights in webhooks docs. PR #14905 by @tiangolo. 📝 Update source example

breakingchanged
0.128.8

Docs 📝 Fix grammar in docs/en/docs/tutorial/first-steps.md. PR #14708 by @SanjanaS10. Internal ðŸ”Ļ Tweak PDM hook script. PR #14895 by @tiangolo. â™ŧïļ Update build setup for fastapi-slim, deprecate it, and make it only depend on fastapi. PR #

changeddeprecated
0.128.7

Features âœĻ Show a clear error on attempt to include router into itself. PR #14258 by @JavierSanchezCastro. âœĻ Replace dict by Mapping on HTTPException.headers. PR #12997 by @rijenkii. Refactors â™ŧïļ Simplify reading files in memory, do it sequ

changed
0.128.6

Fixes 🐛 Fix on_startup and on_shutdown parameters of APIRouter. PR #14873 by @YuriiMotov. Translations 🌐 Update translations for zh (update-outdated). PR #14843 by @tiangolo. Internal ✅ Fix parameterized tests with snapshots. PR #14875 by

fixedchanged
0.128.5

Refactors â™ŧïļ Refactor and simplify Pydantic v2 (and v1) compatibility internal utils. PR #14862 by @tiangolo. Internal ✅ Add inline snapshot tests for OpenAPI before changes from Pydantic v2. PR #14864 by @tiangolo.

added
0.128.4

Refactors â™ŧïļ Refactor internals, simplify Pydantic v2/v1 utils, create_model_field, better types for lenient_issubclass. PR #14860 by @tiangolo. â™ŧïļ Simplify internals, remove Pydantic v1 only logic, no longer needed. PR #14857 by @tiangolo.

changed
0.128.3

Refactors â™ŧïļ Re-implement on_event in FastAPI for compatibility with the next Starlette, while keeping backwards compatibility. PR #14851 by @tiangolo. Upgrades ⮆ïļ Upgrade Starlette supported version range to starlette>=0.40.0,<1.0.0. PR #1

changed
0.128.2

Features âœĻ Add support for PEP695 TypeAliasType. PR #13920 by @cstruct. âœĻ Allow Response type hint as dependency annotation. PR #14794 by @jonathan-fulton. Fixes 🐛 Fix using Json[list[str]] type (issue #10997). PR #14616 by @mkanetsuna. Do

addedfixedchanged
0.128.1

Features âœĻ Add viewport meta tag to improve Swagger UI on mobile devices. PR #14777 by @Joab0. ðŸšļ Improve error message for invalid query parameter type annotations. PR #14479 by @retwish. Fixes 🐛 Update ValidationError schema to include i

addedfixedchanged
0.128.0

Breaking Changes ➖ Drop support for pydantic.v1. PR #14609 by @tiangolo. Internal ✅ Run performance tests only on Pydantic v2. PR #14608 by @tiangolo.

breaking
0.127.1

Refactors 🔊 Add a custom FastAPIDeprecationWarning. PR #14605 by @tiangolo. Docs 📝 Add documentary to website. PR #14600 by @tiangolo. Translations 🌐 Update translations for de (update-outdated). PR #14602 by @nilslindemann. 🌐 Update tr

addedchanged
0.127.0

Breaking Changes 🔊 Add deprecation warnings when using pydantic.v1. PR #14583 by @tiangolo. Translations 🔧 Add LLM prompt file for Korean, generated from the existing translations. PR #14546 by @tiangolo. 🔧 Add LLM prompt file for Japane

breakingaddeddeprecated
0.126.0

Upgrades ➖ Drop support for Pydantic v1, keeping short temporary support for Pydantic v2's pydantic.v1. PR #14575 by @tiangolo. The minimum version of Pydantic installed is now pydantic >=2.7.0. The standard dependencies now include pydanti

added
0.125.0

Breaking Changes 🔧 Drop support for Python 3.8. PR #14563 by @tiangolo. This would actually not be a breaking change as no code would really break. Any Python 3.8 installer would just refuse to install the latest version of FastAPI and wou

breakingaddedchanged
0.124.4

Fixes 🐛 Fix parameter aliases. PR #14371 by @YuriiMotov.

fixed
0.124.3

Fixes 🐛 Fix support for tagged union with discriminator inside of Annotated with Body(). PR #14512 by @tiangolo. Refactors ✅ Add set of tests for request parameters and alias. PR #14358 by @YuriiMotov. Docs 📝 Tweak links format. PR #14505

addedfixedchanged
0.124.2

Fixes 🐛 Fix support for if TYPE_CHECKING, non-evaluated stringified annotations. PR #14485 by @tiangolo.

fixed