FastAPI

Frameworks & LibrariesMIT

High-performance web framework for building APIs with Python.

Latest 0.141.1 · by FastAPIWebsitePyPI · fastapiRSS

Release activity

Release activity — 30 releases across 16 days since Apr 1, 2026. Each cell is one day; darker means more releases that day. Nothing is recorded before Apr 1, 2026. Older weeks are hidden at this screen width.
JunJulAugSep
SundayNo releases on May 24, 2026No releases on May 31, 2026No releases on Jun 7, 20261 release on Jun 14, 2026No releases on Jun 21, 2026No releases on Jun 28, 2026No releases on Jul 5, 2026No releases on Jul 12, 2026No releases on Jul 19, 2026No releases on Jul 26, 2026No releases on Aug 2, 2026No releases on Aug 9, 2026No releases on Aug 16, 2026No releases on Aug 23, 2026No releases on Aug 30, 2026No releases on Sep 6, 2026
MondayNo releases on May 25, 2026No releases on Jun 1, 2026No releases on Jun 8, 20261 release on Jun 15, 2026No releases on Jun 22, 20261 release on Jun 29, 2026No releases on Jul 6, 2026No releases on Jul 13, 2026No releases on Jul 20, 20267 releases on Jul 27, 2026No releases on Aug 3, 2026No releases on Aug 10, 2026No releases on Aug 17, 2026No releases on Aug 24, 2026No releases on Aug 31, 2026No releases on Sep 7, 2026
TuesdayNo releases on May 26, 2026No releases on Jun 2, 2026No releases on Jun 9, 2026No releases on Jun 16, 2026No releases on Jun 23, 2026No releases on Jun 30, 2026No releases on Jul 7, 2026No releases on Jul 14, 2026No releases on Jul 21, 20266 releases on Jul 28, 2026No releases on Aug 4, 2026No releases on Aug 11, 2026No releases on Aug 18, 2026No releases on Aug 25, 2026No releases on Sep 1, 2026No releases on Sep 8, 2026
WednesdayNo releases on May 27, 2026No releases on Jun 3, 2026No releases on Jun 10, 2026No releases on Jun 17, 2026No releases on Jun 24, 20261 release on Jul 1, 2026No releases on Jul 8, 2026No releases on Jul 15, 2026No releases on Jul 22, 20262 releases on Jul 29, 2026No releases on Aug 5, 2026No releases on Aug 12, 2026No releases on Aug 19, 2026No releases on Aug 26, 2026No releases on Sep 2, 2026No releases on Sep 9, 2026
ThursdayNo releases on May 28, 2026No releases on Jun 4, 2026No releases on Jun 11, 20261 release on Jun 18, 20261 release on Jun 25, 2026No releases on Jul 2, 2026No releases on Jul 9, 20262 releases on Jul 16, 2026No releases on Jul 23, 2026No releases on Jul 30, 2026No releases on Aug 6, 2026No releases on Aug 13, 2026No releases on Aug 20, 2026No releases on Aug 27, 2026No releases on Sep 3, 2026No releases on Sep 10, 2026
FridayNo releases on May 29, 2026No releases on Jun 5, 2026No releases on Jun 12, 2026No releases on Jun 19, 2026No releases on Jun 26, 2026No releases on Jul 3, 2026No releases on Jul 10, 2026No releases on Jul 17, 20261 release on Jul 24, 2026No releases on Jul 31, 2026No releases on Aug 7, 2026No releases on Aug 14, 2026No releases on Aug 21, 2026No releases on Aug 28, 2026No releases on Sep 4, 2026
SaturdayNo releases on May 30, 2026No releases on Jun 6, 2026No releases on Jun 13, 20261 release on Jun 20, 2026No releases on Jun 27, 2026No releases on Jul 4, 2026No releases on Jul 11, 2026No releases on Jul 18, 2026No releases on Jul 25, 2026No releases on Aug 1, 2026No releases on Aug 8, 2026No releases on Aug 15, 2026No releases on Aug 22, 2026No releases on Aug 29, 2026No releases on Sep 5, 2026

30 releases since Apr 1, 2026, busiest day 7

Changelog

0.141.1

Latest
Fixed 1
  • Fix support for background tasks and headers from dependencies in app.frontend()

From FastAPI

Fixes
  • 🐛 Fix support for background tasks and headers from dependencies in app.frontend(). PR #16105 by @tiangolo.
Docs
View originalPermalink
How 0.141.1 went

0.141.0

Added 1
  • Add app.frontend(check_dir="auto") to make local development more convenient with fastapi dev

From FastAPI

Features
  • ✨ Add app.frontend(check_dir="auto"), to make local development more convenient with fastapi dev. PR #16102 by @tiangolo.
View originalPermalink
How 0.141.0 went

0.140.13

Fixed 1
  • Fix status_code being ignored for SSE and JSONL streaming endpoints

From FastAPI

Fixes
  • 🐛 Fix status_code being ignored for SSE and JSONL streaming endpoints. PR #15937 by @SAURABHSALVE.
Docs
View originalPermalink
How 0.140.13 went

0.140.12

Fixed 1
  • Fix line splitting in format_sse_event to comply with SSE spec

From FastAPI

Fixes
  • 🐛 Fix line splitting in format_sse_event to comply with SSE spec. PR #15515 by @Zawwarsami16.
View originalPermalink
How 0.140.12 went

0.140.11

Fixed 1
  • Fix response_model_* params ignored for non-generator endpoints with Iterable[..] return type

From FastAPI

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

0.140.10

Fixed 1
  • Fix handling sequences with nested Annotated types

From FastAPI

Fixes
Internal
View originalPermalink
How 0.140.10 went

0.140.9

Fixed 1
  • Fix exclude_defaults not propagated to dict keys and values in jsonable_encoder

From FastAPI

Fixes
  • 🐛 Fix exclude_defaults not propagated to dict keys and values in jsonable_encoder. PR #16043 by @MBGrao.
Internal
View originalPermalink
How 0.140.9 went

0.140.8

Fixed 1
  • Fix stream item type lost when using include_router()

From FastAPI

Fixes
  • 🐛 Fix stream item type lost when using include_router(). PR #15077 by @alex-raw.
View originalPermalink
How 0.140.8 went

0.140.7

Changed 1
  • Avoid flattening dependencies for OpenAPI

From FastAPI

Refactors
  • ⚡️ Avoid flattening dependencies for OpenAPI. PR #16076 by @tiangolo.
Internal
View originalPermalink
How 0.140.7 went

0.140.6

Changed 1
  • Avoid flattening dependencies for request parameters, mainly for OpenAPI

From FastAPI

Refactors
  • ⚡️ Avoid flattening dependencies for request parameters, mainly for OpenAPI. PR #16073 by @tiangolo.
View originalPermalink
How 0.140.6 went

0.140.5

Changed 1
  • Avoid flattening dependencies for body fields

From FastAPI

Refactors
  • ⚡️ Avoid flattening dependencies for body fields. PR #16071 by @tiangolo.
View originalPermalink
How 0.140.5 went

0.140.4

Changed 1
  • Skip unused dependency repeat bookkeeping for performance improvement

From FastAPI

Refactors
  • ⚡️ Skip unused dependency repeat bookkeeping. PR #16069 by @tiangolo.
View originalPermalink
How 0.140.4 went

0.140.3

Changed 1
  • Avoid repeated dependency flattening in OpenAPI

From FastAPI

Refactors
  • ⚡️ Avoid repeated dependency flattening in OpenAPI. PR #16067 by @tiangolo.
View originalPermalink
How 0.140.3 went

0.140.2

Changed 1
  • Stop retaining flat dependency trees

From FastAPI

Refactors
Internal
View originalPermalink
How 0.140.2 went

0.140.1

Changed 1
  • Update the lru_cache limit for dependencies to account for large apps

From FastAPI

Refactors
  • ♻️ Update the lru_cache limit for dependencies to account for large apps. PR #16062 by @tiangolo.
View originalPermalink
How 0.140.1 went

0.140.0

Changed 1
  • Reduce memory usage in dependencies

From FastAPI

Refactors
Docs
Internal
View originalPermalink
How 0.140.0 went

0.139.2

Fixed 1
  • Refactor router route building to make it thread-safe for tests running in parallel threads

From FastAPI

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

0.139.1

Fixed 1
  • Fix frontend fallback support for dotted paths like /users/john.doe

From FastAPI

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
Internal
View originalPermalink
How 0.139.1 went

0.139.0

Added 1
  • Support dependencies in app.frontend() for automatic cookie authentication for the frontend

From FastAPI

Features
  • ✨ Support dependencies in app.frontend(), e.g. for automatic cookie authentication for the frontend. PR #15908 by @tiangolo.
Translations
Internal
View originalPermalink
How 0.139.0 went

0.138.2

Changed 1
  • Make app.frontend() return 404 for methods other than GET or HEAD with no static file matches

From FastAPI

Refactors
  • ♻️ Make app.frontend() return 404 for methods other than GET or HEAD with no static file matches. PR #15863 by @tiangolo.
Internal
View originalPermalink
How 0.138.2 went

0.138.1

Refactors
  • ♻️ Refactor Library Skills, make info easier to find for agents. PR #15841 by @tiangolo.
Internal
View originalPermalink
How 0.138.1 went

0.138.0

Added 1
  • Add support for app.frontend("/", directory="dist") and router.frontend("/", directory="dist")

From FastAPI

Features
  • ✨ Add support for app.frontend("/", directory="dist") and router.frontend("/", directory="dist"). PR #15800 by @tiangolo.
Docs
Translations
Internal
View originalPermalink
How 0.138.0 went

0.137.2

Added 1
  • Add iter_route_contexts() for advanced use cases that used to use router.routes
Fixed 1
  • Fix broken Markdown in Korean custom response docs

From FastAPI

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 translations for fr (update-outdated). PR #15761 by @tiangolo.
  • 🌐 Update translations for zh-hant (update-outdated). PR #15760 by @tiangolo.
  • 🌐 Update translations for de (update-outdated). PR #15759 by @tiangolo.
  • 🌐 Update translations for ko (update-outdated). PR #15757 by @tiangolo.
  • 🌐 Update translations for uk (update-outdated). PR #15756 by @tiangolo.
  • 🌐 Update translations for zh (update-outdated). PR #15755 by @tiangolo.
  • 🌐 Update translations for tr (update-outdated). PR #15754 by @tiangolo.
  • 🌐 Update translations for pt (update-outdated). PR #15753 by @tiangolo.
  • 🌐 Update translations for es (update-outdated). PR #15752 by @tiangolo.
  • 🌐 Update translations for ja (update-outdated). PR #15751 by @tiangolo.
  • 🌐 Update translations for ru (update-outdated). PR #15758 by @tiangolo.
Internal
View originalPermalink
How 0.137.2 went

0.137.1

Fixed 2
  • Fix typing checks for APIRoute
  • Allow empty path in path operation in prefixless router

From FastAPI

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.
View originalPermalink
How 0.137.1 went

0.137.0

Added 3
  • Adding routes (path operations) after a router is included now works as they are not copied
  • Including a subrouter in a main router can be done before adding routes to the subrouter
  • APIRouter has new methods .matches() and .handle() for customizing how routers match and handle requests
Changed 2
  • Refactor internals to preserve APIRouter and APIRoute instances instead of cloning them when including routers
  • router.routes is now a tree structure containing intermediate objects instead of a plain list of APIRoute objects

From FastAPI

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 "clone" it, or recreate it from scratch.

This would mean that in the end there was only one top level router, part of the app.

The way it is structured here is that there are a few additional classes to handle intermediate metadata for router and route inclusion. That way the information of "router X includes Y and Y includes Z" is stored somewhere, without affecting (recreating / cloning) the final route.

Non Objectives

Dependencies for 404: previously I intended to support dependencies that would be executed even for 404, but that would conflict with the fact that a router could not find a match, but the next router did find a match. Executing dependencies in the router that did not find a match would not make sense, they could consume the request, body, etc. This original idea was discarded.

Specific Breaking Changes

Now router.routes is no longer a plain list of APIRoute objects, it can contain these intermediate objects that can contain additional routers, forming a tree.

Any logic that depended on iterating on the router.routes directly would be affected, that logic cannot expect to be able to extract data from a plain list of routes, as it's no longer a plain list but a tree.

Additionally, any logic that iterated on router.routes to modify them would now also see these new objects, and would not see all the routes in the app.

router.routes should be considered an internal implementation detail, only passed around to the FastAPI functions that need it.

Features
  • Adding routes (path operations) after a router is included now works, they are reflected as they are not copied.
  • Including subrouter in mainrouter can be done before adding routes (path operations) to subrouter, because now the entire object is stored instead of copying the routes.
  • As routes are not copied, in some cases that might save some memory.
Alpha Features

This is not documented yet, so it's not officially supported yet and could change in the future.

But, as APIRoute and APIRouter instances are now preserved, they could be customized.

APIRouter has two new methods, .matches() and .handle(), counterpart to the existing ones in APIRoute. With this a router could customize how it matches and handles requests. For example, it could match only requests that include some specific header, for example for handling versions in headers.

Still, for now, consider this very experimental and potentially changing and breaking in the future.

Future Features Enabled
  • Custom APIRoute subclasses (undocumented, but already works as described above)
  • Custom APIRouter subclasses (undocumented, but already works as described above)
  • Dependencies per router
  • Exception handlers per router
  • Middleware per router
  • Other features planned
Docs
  • 📝 Update release notes. PR #15747 by @tiangolo.
  • 📝 Update FastAPI Cloud deployment instructions. PR #15724 by @alejsdev.
  • ✏️ Use Annotated in inline example in docs/en/docs/tutorial/body-multiple-params.md. PR #15591 by @TheArchons.
  • 📝 Remove "NGINX Unit" from the list of ASGI-servers in docs. PR #15475 by @angryfoxx.
  • 📝 Update docs/en/docs/tutorial/security/oauth2-jwt.md. PR #14781 by @zadevhub.
Translations
  • 🌐 Update translations for zh-hant (update-outdated). PR #15671 by @tiangolo.
  • 🌐 Update translations for es (update-outdated). PR #15670 by @tiangolo.
  • 🌐 Update translations for fr (update-outdated). PR #15669 by @tiangolo.
  • 🌐 Update translations for ja (update-outdated). PR #15668 by @tiangolo.
  • 🌐 Update translations for pt (update-outdated). PR #15667 by @tiangolo.
  • 🌐 Update translations for tr (update-outdated). PR #15666 by @tiangolo.
  • 🌐 Update translations for zh (update-outdated). PR #15665 by @tiangolo.
  • 🌐 Update translations for ko (update-outdated). PR #15664 by @tiangolo.
  • 🌐 Update translations for de (update-outdated). PR #15673 by @tiangolo.
  • 🌐 Update translations for uk (update-outdated). PR #15672 by @tiangolo.
  • 🌐 Update translations for ru (update-outdated). PR #15674 by @tiangolo.
Internal
View originalPermalink
How 0.137.0 went

0.136.3

Changed 1
  • Do not accept underscore headers when using convert_underscores=True (the default)

From FastAPI

Refactors
  • ♻️ Do not accept underscore headers when using convert_underscores=True (the default). PR #15589 by @tiangolo.
View originalPermalink
How 0.136.3 went

0.136.1

Changed 1
  • Update Pydantic v2 code to address deprecations

From FastAPI

Upgrades
  • ⬆️ Update Pydantic v2 code to address deprecations. PR #15101 by @svlandeg.
Internal
View originalPermalink
How 0.136.1 went

0.136.0

Added 1
  • Support free-threaded Python 3.14t

From FastAPI

Upgrades
View originalPermalink
How 0.136.0 went

0.135.4

Removed 1
  • Remove April Fool's @app.vibe() decorator

From FastAPI

Refactors
Internal
View originalPermalink
How 0.135.4 went

0.135.3

Added 1
  • Add support for @app.vibe()
Fixed 1
  • Fix typo for client_secret in OAuth2 form docstrings

From FastAPI

Features
Docs
  • ✏️ Fix typo for client_secret in OAuth2 form docstrings. PR #14946 by @bysiber.
Internal
View originalPermalink
How 0.135.3 went
View all

Discussion