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.
Catalog / Backend
FastAPI changelog
Python web framework that builds request validation and an OpenAPI schema from type hints, running on Starlette and Pydantic.
- 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
Features âĻ Add app.frontend(check_dir="auto"), to make local development more convenient with fastapi dev. PR #16102 by @tiangolo.
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
Fixes ð Fix line splitting in format_sse_event to comply with SSE spec. PR #15515 by @Zawwarsami16.
Fixes ð Fix response_model_* params ignored for non-generator endpoints with Iterable[..] return type. PR #15093 by @YuriiMotov.
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.
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.
Fixes ð Fix stream item type lost when using include_router(). PR #15077 by @alex-raw.
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.
Refactors âĄïļ Avoid flattening dependencies for request parameters, mainly for OpenAPI. PR #16073 by @tiangolo.
Refactors âĄïļ Avoid flattening dependencies for body fields. PR #16071 by @tiangolo.
Refactors âĄïļ Skip unused dependency repeat bookkeeping. PR #16069 by @tiangolo.
Refactors âĄïļ Avoid repeated dependency flattening in OpenAPI. PR #16067 by @tiangolo.
Refactors âĄïļ Stop retaining flat dependency trees. PR #16065 by @tiangolo. Internal ð· Add new memory benchmark. PR #16064 by @tiangolo.
Refactors âŧïļ Update the lru_cache limit for dependencies to account for large apps. PR #16062 by @tiangolo.
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
Fixes ð Refactor router route building to make it thread-safe, mainly relevant for tests running in parallel threads (uncommon). PR #16013 by @tiangolo.
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
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
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
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
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
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
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.
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 "
Refactors âŧïļ Do not accept underscore headers when using convert_underscores=True (the default). PR #15589 by @tiangolo.
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
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
Upgrades âŽïļ Support free-threaded Python 3.14t. PR #15149 by @svlandeg.
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]. ðĻ
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.
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
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
Features âĻ Add support for Server Sent Events. PR #15030 by @tiangolo. New docs: Server-Sent Events (SSE).
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
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.
Upgrades âŽïļ Add support for Starlette 1.0.0+. PR #14987 by @tiangolo.
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
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
Breaking Changes ðïļ Deprecate ORJSONResponse and UJSONResponse. PR #14964 by @tiangolo.
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
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 #
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
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
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 #
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
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
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.
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.
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
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
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
Breaking Changes â Drop support for pydantic.v1. PR #14609 by @tiangolo. Internal â Run performance tests only on Pydantic v2. PR #14608 by @tiangolo.
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
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
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
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
Fixes ð Fix parameter aliases. PR #14371 by @YuriiMotov.
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
Fixes ð Fix support for if TYPE_CHECKING, non-evaluated stringified annotations. PR #14485 by @tiangolo.