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 "
FastAPI breaking changes
The 7 releases whose own notes call out a breaking change, out of 60 the archive holds. Scattered one per release page, this is a run nobody can see; gathered, it is the shape of how often FastAPI asks you to change your code.
- Tagged breaking
- 7of 60 releases
- Roughly
- 1 in 9releases held here
- Most recent
- 14 Jun 20263 months ago
- Across
- 6 monthsback to 17 Dec 2025
How this is decided
A release appears here because the word breaking is in the notes its publisher wrote, not because anyone here read the diff. That cuts both ways. A release that changed an API without using the word is missing from this page, and a release that used the word about something minor is on it. It is the publisher’s own signal, reported rather than judged, which is the same rule the security page follows.
Newest first
All FastAPI releasesBreaking 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.
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
Breaking Changes ➖ Drop support for pydantic.v1. PR #14609 by @tiangolo. Internal ✅ Run performance tests only on Pydantic v2. PR #14608 by @tiangolo.
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
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