Catalog / FastAPI

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.

0.137.0breakingsecurityadded

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 "

0.132.0breakingaddedchanged

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

0.131.0breakingdeprecated

Breaking Changes 🗑️ Deprecate ORJSONResponse and UJSONResponse. PR #14964 by @tiangolo.

0.129.0breakingchanged

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

0.128.0breaking

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

0.127.0breakingaddeddeprecated

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

0.125.0breakingaddedchanged

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