FastAPI Release Notes

Last updated: Feb 21, 2026

  • Feb 21, 2026
    • Date parsed from source:
      Feb 21, 2026
    • First seen by Releasebot:
      Feb 21, 2026

    FastAPI by Tiangolo

    0.129.1

    A fresh release brings fixes to JSON Schema, a new Kapa.ai widget, translation updates across many languages, and docs improvements. It also cleans up Python 3.9 files and bumps dependencies while tightening JWT timing protections.

    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 files, no longer needed after updating translations. PR #14931 by @tiangolo.
    • šŸ“ Update docs for JWT to prevent timing attacks. PR #14908 by @tiangolo.

    Translations

    • āœļø Fix several typos in ru translations. PR #14934 by @argoarsiks.
    • 🌐 Update translations for ko (update-all and add-missing). PR #14923 by @YuriiMotov.
    • 🌐 Update translations for uk (add-missing). PR #14922 by @YuriiMotov.
    • 🌐 Update translations for zh-hant (update-all and add-missing). PR #14921 by @YuriiMotov.
    • 🌐 Update translations for fr (update-all and add-missing). PR #14920 by @YuriiMotov.
    • 🌐 Update translations for de (update-all) . PR #14910 by @YuriiMotov.
    • 🌐 Update translations for ja (update-all). PR #14916 by @YuriiMotov.
    • 🌐 Update translations for pt (update-all). PR #14912 by @YuriiMotov.
    • 🌐 Update translations for es (update-all and add-missing). PR #14911 by @YuriiMotov.
    • 🌐 Update translations for zh (update-all). PR #14917 by @YuriiMotov.
    • 🌐 Update translations for uk (update-all). PR #14914 by @YuriiMotov.
    • 🌐 Update translations for tr (update-all). PR #14913 by @YuriiMotov.
    • 🌐 Update translations for ru (update-outdated). PR #14909 by @YuriiMotov.

    Internal

    • šŸ‘· Always run tests on push to master branch and when run by scheduler. PR #14940 by @YuriiMotov.
    • šŸŽØ Upgrade typing syntax for Python 3.10. PR #14932 by @tiangolo.
    • ⬆ Bump cryptography from 46.0.4 to 46.0.5. PR #14892 by @dependabot[bot].
    • ⬆ Bump pillow from 12.1.0 to 12.1.1. PR #14899 by @dependabot[bot].
    Original source Report a problem
  • Feb 12, 2026
    • Date parsed from source:
      Feb 12, 2026
    • First seen by Releasebot:
      Feb 21, 2026

    FastAPI by Tiangolo

    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 examples and docs from Python 3.9 to 3.10. PR #14900 by @tiangolo.

    Internal

    • šŸ”Ø Update docs.py scripts to migrate Python 3.9 to Python 3.10. PR #14906 by @tiangolo.
    Original source Report a problem
  • All of your release notes in one feed

    Join Releasebot and get updates from Tiangolo and hundreds of other software products.

  • Feb 10, 2026
    • Date parsed from source:
      Feb 10, 2026
    • First seen by Releasebot:
      Feb 21, 2026

    FastAPI by Tiangolo

    0.128.7

    New release introduces clearer errors when a router is added into itself and improves HTTPException header handling. It also streamlines in memory file reads and updates docs tags for definitions. Additional tests and workflow tweaks boost reliability and clarity.

    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 sequentially instead of (fake) parallel. PR #14884 by @tiangolo.

    Docs

    • šŸ“ Use dfn tag for definitions instead of abbr in docs. PR #14744 by @YuriiMotov.

    Internal

    • āœ… Tweak comment in test to reference PR. PR #14885 by @tiangolo.
    • šŸ”§ Update LLM-prompt for abbr and dfn tags. PR #14747 by @YuriiMotov.
    • āœ… Test order for the submitted byte Files. PR #14828 by @valentinDruzhinin.
    • šŸ”§ Configure test workflow to run tests with inline-snapshot=review. PR #14876 by @YuriiMotov.
    Original source Report a problem
  • Feb 9, 2026
    • Date parsed from source:
      Feb 9, 2026
    • First seen by Releasebot:
      Feb 21, 2026

    FastAPI by Tiangolo

    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 @YuriiMotov.
    Original source Report a problem
  • Feb 8, 2026
    • Date parsed from source:
      Feb 8, 2026
    • First seen by Releasebot:
      Feb 21, 2026

    FastAPI by Tiangolo

    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.

    Original source Report a problem
  • Feb 6, 2026
    • Date parsed from source:
      Feb 6, 2026
    • First seen by Releasebot:
      Feb 21, 2026

    FastAPI by Tiangolo

    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 #14853 by @tiangolo.

    Translations

    • 🌐 Update translations for ru (update-outdated). PR #14834 by @tiangolo.

    Internal

    • šŸ‘· Run tests with Starlette from git. PR #14849 by @tiangolo.

    • šŸ‘· Run tests with lower bound uv sync, upgrade fastapi[all] minimum dependencies: ujson >=5.8.0, orjson >=3.9.3. PR #14846 by @tiangolo.

    Original source Report a problem
  • Feb 5, 2026
    • Date parsed from source:
      Feb 5, 2026
    • First seen by Releasebot:
      Feb 21, 2026

    FastAPI by Tiangolo

    0.128.2

    New features add PEP695 TypeAliasType support and Response type hints as dependencies, plus a bug fix for Json[list[str]]. Documentation and translations updates broaden language coverage and improve docs. Internal config and script improvements accompany the release.

    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.

    Docs

    • šŸ“ Update docs for translations. PR #14830 by @tiangolo.
    • šŸ“ Fix duplicate word in advanced-dependencies.md. PR #14815 by @Rayyan-Oumlil.

    Translations

    • 🌐 Enable Traditional Chinese translations. PR #14842 by @tiangolo.
    • 🌐 Enable French docs translations. PR #14841 by @tiangolo.
    • 🌐 Update translations for fr (translate-page). PR #14837 by @tiangolo.
    • 🌐 Update translations for de (update-outdated). PR #14836 by @tiangolo.
    • 🌐 Update translations for pt (update-outdated). PR #14833 by @tiangolo.
    • 🌐 Update translations for ko (update-outdated). PR #14835 by @tiangolo.
    • 🌐 Update translations for es (update-outdated). PR #14832 by @tiangolo.
    • 🌐 Update translations for tr (update-outdated). PR #14831 by @tiangolo.
    • 🌐 Update translations for tr (add-missing). PR #14790 by @tiangolo.
    • 🌐 Update translations for fr (update-outdated). PR #14826 by @tiangolo.
    • 🌐 Update translations for zh-hant (update-outdated). PR #14825 by @tiangolo.
    • 🌐 Update translations for uk (update-outdated). PR #14822 by @tiangolo.
    • šŸ”Ø Update docs and translations scripts, enable Turkish. PR #14824 by @tiangolo.

    Internal

    • šŸ”Ø Add max pages to translate to configs. PR #14840 by @tiangolo.
    Original source Report a problem
  • Feb 4, 2026
    • Date parsed from source:
      Feb 4, 2026
    • First seen by Releasebot:
      Feb 21, 2026

    FastAPI by Tiangolo

    0.128.1

    A broad release brings mobile friendly Swagger UI tweaks, tighter parameter and typing fixes, header sanitization, and OpenAPI refinements along with extensive docs and translations updates. It also includes refactors, dependency bumps, and CI/testing improvements.

    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 input and ctx. PR #14791 by @jonathan-fulton.
    • šŸ› Fix TYPE_CHECKING annotations for Python 3.14 (PEP 649). PR #14789 by @mgu.
    • šŸ› Strip whitespaces from Authorization header credentials. PR #14786 by @WaveTheory1.
    • šŸ› Fix OpenAPI duplication of anyOf refs for app-level responses with specified content and model as Union. PR #14463 by @DJMcoder.

    Refactors

    • šŸŽØ Tweak types for mypy. PR #14816 by @tiangolo.
    • šŸ·ļø Re-export IncEx type from Pydantic instead of duplicating it. PR #14641 by @mvanderlee.
    • šŸ’” Update comment for Pydantic internals. PR #14814 by @tiangolo.

    Docs

    • šŸ“ Update docs for contributing translations, simplify title. PR #14817 by @tiangolo.
    • šŸ“ Fix typing issue in docs_src/app_testing/app_b code example. PR #14573 by @timakaa.
    • šŸ“ Fix example of license identifier in documentation. PR #14492 by @johnson-earls.
    • šŸ“ Add banner to translated pages. PR #14809 by @YuriiMotov.
    • šŸ“ Add links to related sections of docs to docstrings. PR #14776 by @YuriiMotov.
    • šŸ“ Update embedded code examples to Python 3.10 syntax. PR #14758 by @YuriiMotov.
    • šŸ“ Fix dependency installation command in docs/en/docs/contributing.md. PR #14757 by @YuriiMotov.
    • šŸ“ Use return type annotation instead of response_model when possible. PR #14753 by @YuriiMotov.
    • šŸ“ Use WSGIMiddleware from a2wsgi instead of deprecated fastapi.middleware.wsgi.WSGIMiddleware. PR #14756 by @YuriiMotov.
    • šŸ“ Fix minor typos in release notes. PR #14780 by @whyvineet.
    • šŸ› Fix copy button in custom.js. PR #14722 by @fcharrier.
    • šŸ“ Add contribution instructions about LLM generated code and comments and automated tools for PRs. PR #14706 by @tiangolo.
    • šŸ“ Update docs for management tasks. PR #14705 by @tiangolo.
    • šŸ“ Update docs about managing translations. PR #14704 by @tiangolo.
    • šŸ“ Update docs for contributing with translations. PR #14701 by @tiangolo.
    • šŸ“ Specify language code for code block. PR #14656 by @YuriiMotov.

    Translations

    • 🌐 Improve LLM prompt of uk documentation. PR #14795 by @roli2py.
    • 🌐 Update translations for ja (update-outdated). PR #14588 by @tiangolo.
    • 🌐 Update translations for uk (update outdated, found by fixer tool). PR #14739 by @YuriiMotov.
    • 🌐 Update translations for tr (update-outdated). PR #14745 by @tiangolo.
    • 🌐 Update llm-prompt.md for Korean language. PR #14763 by @seuthootDev.
    • 🌐 Update translations for ko (update outdated, found by fixer tool). PR #14738 by @YuriiMotov.
    • 🌐 Update translations for de (update-outdated). PR #14690 by @tiangolo.
    • 🌐 Update LLM prompt for Russian translations. PR #14733 by @YuriiMotov.
    • 🌐 Update translations for ru (update-outdated). PR #14693 by @tiangolo.
    • 🌐 Update translations for pt (update-outdated). PR #14724 by @tiangolo.
    • 🌐 Update Korean LLM prompt. PR #14740 by @hard-coders.
    • 🌐 Improve LLM prompt for Turkish translations. PR #14728 by @Kadermiyanyedi.
    • 🌐 Update portuguese llm-prompt.md. PR #14702 by @ceb10n.
    • 🌐 Update LLM prompt instructions file for French. PR #14618 by @tiangolo.
    • 🌐 Update translations for ko (add-missing). PR #14699 by @tiangolo.
    • 🌐 Update translations for ko (update-outdated). PR #14589 by @tiangolo.
    • 🌐 Update translations for uk (update-outdated). PR #14587 by @tiangolo.
    • 🌐 Update translations for es (update-outdated). PR #14686 by @tiangolo.
    • šŸ”§ Add LLM prompt file for Turkish, generated from the existing translations. PR #14547 by @tiangolo.
    • šŸ”§ Add LLM prompt file for Traditional Chinese, generated from the existing translations. PR #14550 by @tiangolo.
    • šŸ”§ Add LLM prompt file for Simplified Chinese, generated from the existing translations. PR #14549 by @tiangolo.

    Internal

    • ā¬‡ļø Downgrade LLM translations model to GPT-5 to reduce mistakes. PR #14823 by @tiangolo.
    • šŸ› Fix translation script commit in place. PR #14818 by @tiangolo.
    • šŸ”Ø Update translation script to retry if LLM-response doesn't pass validation with Translation Fixer tool. PR #14749 by @YuriiMotov.
    • šŸ‘· Run tests only on relevant code changes (not on docs). PR #14813 by @tiangolo.
    • šŸ‘· Run mypy by pre-commit. PR #14806 by @YuriiMotov.
    • ⬆ Bump ruff from 0.14.3 to 0.14.14. PR #14798 by @dependabot[bot].
    • ⬆ Bump pyasn1 from 0.6.1 to 0.6.2. PR #14804 by @dependabot[bot].
    • ⬆ Bump sqlmodel from 0.0.27 to 0.0.31. PR #14802 by @dependabot[bot].
    • ⬆ Bump mkdocs-macros-plugin from 1.4.1 to 1.5.0. PR #14801 by @dependabot[bot].
    • ⬆ Bump gitpython from 3.1.45 to 3.1.46. PR #14800 by @dependabot[bot].
    • ⬆ Bump typer from 0.16.0 to 0.21.1. PR #14799 by @dependabot[bot].
    • šŸ‘„ Update FastAPI GitHub topic repositories. PR #14803 by @tiangolo.
    • šŸ‘„ Update FastAPI People - Contributors and Translators. PR #14796 by @tiangolo.
    • šŸ”§ Ensure that an edit to uv.lock gets the internal label. PR #14759 by @svlandeg.
    • šŸ”§ Update sponsors: remove Requestly. PR #14735 by @tiangolo.
    • šŸ”§ Update sponsors, LambdaTest changes to TestMu AI. PR #14734 by @tiangolo.
    • ⬆ Bump actions/cache from 4 to 5. PR #14511 by @dependabot[bot].
    • ⬆ Bump actions/upload-artifact from 5 to 6. PR #14525 by @dependabot[bot].
    • ⬆ Bump actions/download-artifact from 6 to 7. PR #14526 by @dependabot[bot].
    • šŸ‘· Tweak CI input names. PR #14688 by @tiangolo.
    • šŸ”Ø Refactor translation script to allow committing in place. PR #14687 by @tiangolo.
    • šŸ› Fix translation script path. PR #14685 by @tiangolo.
    • āœ… Enable tests in CI for scripts. PR #14684 by @tiangolo.
    • šŸ”§ Add pre-commit local script to fix language translations. PR #14683 by @tiangolo.
    • ā¬†ļø Migrate to uv. PR #14676 by @DoctorJohn.
    • šŸ”Ø Add LLM translations tool fixer. PR #14652 by @YuriiMotov.
    • šŸ‘„ Update FastAPI People - Sponsors. PR #14626 by @tiangolo.
    • šŸ‘„ Update FastAPI GitHub topic repositories. PR #14630 by @tiangolo.
    • šŸ‘„ Update FastAPI People - Contributors and Translators. PR #14625 by @tiangolo.
    • 🌐 Update translation prompts. PR #14619 by @tiangolo.
    • šŸ”Ø Update LLM translation script to guide reviewers to change the prompt. PR #14614 by @tiangolo.
    • šŸ‘· Do not run translations on cron while finishing updating existing languages. PR #14613 by @tiangolo.
    • šŸ”„ Remove test variants for Pydantic v1 in test_request_params. PR #14612 by @tiangolo.
    • šŸ”„ Remove Pydantic v1 specific test variants. PR #14611 by @tiangolo.
    Original source Report a problem

This is the end. You've seen all the release notes in this feed!

Related products