# What changed in fastapi

> 49 changes in fastapi 0.129 to 0.143 from its official release notes, upgrade guides and advisories: 9 breaking, 2 deprecations, 12 new APIs and options. Each one cited. Sources checked 2026-10-17. HTML: https://unstale.sh/pypi/fastapi/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## fastapi 0.143

### Breaking changes

- Set this environment variable to true to retain automatic OpenTelemetry exporter setup from OTEL_* environment variables. (0.143.0) — [release notes](https://github.com/fastapi/fastapi/releases/tag/0.143.0)
- Set auto_configure to true in the FastAPI telemetry configuration to retain automatic OpenTelemetry exporter setup. (0.143.0) — [release notes](https://github.com/fastapi/fastapi/releases/tag/0.143.0)

### Fixes and other changes

- Fixes serialization of non-finite floats in JSONL and SSE streams. (0.143.3) — [release notes](https://github.com/fastapi/fastapi/releases/tag/0.143.3)
- Fixes blocking frontend fallback file checks. (0.143.2) — [release notes](https://github.com/fastapi/fastapi/releases/tag/0.143.2)
- Fixes included route metadata in iter_route_contexts(). (0.143.1) — [release notes](https://github.com/fastapi/fastapi/releases/tag/0.143.1)

## fastapi 0.142

### New APIs and options

- FastAPI adds native OpenTelemetry support. (0.142.0) — [release notes](https://github.com/fastapi/fastapi/releases/tag/0.142.0)

### Fixes and other changes

- FastAPI telemetry is isolated for excluded requests. (0.142.4) — [release notes](https://github.com/fastapi/fastapi/releases/tag/0.142.4)
- Cache OpenTelemetry tracers to preserve warning deduplication. (0.142.3) — [release notes](https://github.com/fastapi/fastapi/releases/tag/0.142.3)
- Startup is allowed to continue when automatic OpenTelemetry configuration fails. (0.142.2) — [release notes](https://github.com/fastapi/fastapi/releases/tag/0.142.2)
- Fixes repeated endpoint wrapping in included routers. (0.142.1) — [release notes](https://github.com/fastapi/fastapi/releases/tag/0.142.1)

## fastapi 0.141

### New APIs and options

- Adds app.frontend with check_dir="auto" to make local development more convenient with fastapi dev. (0.141.0) — [release notes](https://github.com/fastapi/fastapi/releases/tag/0.141.0)

### Fixes and other changes

- Fix support for background tasks and headers from dependencies in `app.frontend()`. (0.141.1) — [release notes](https://github.com/fastapi/fastapi/releases/tag/0.141.1)

## fastapi 0.140

### Performance

- Reduced memory usage in dependencies, which may lower FastAPI’s runtime memory consumption. (0.140.0) — [release notes](https://github.com/fastapi/fastapi/releases/tag/0.140.0)

### Fixes and other changes

- Fixes `status_code` being ignored for SSE and JSONL streaming endpoints. (0.140.13) — [release notes](https://github.com/fastapi/fastapi/releases/tag/0.140.13)
- Fixes line splitting to comply with the SSE spec. (0.140.12) — [release notes](https://github.com/fastapi/fastapi/releases/tag/0.140.12)
- Fixes response_model_* parameters being ignored for non-generator endpoints with Iterable return types. (0.140.11) — [release notes](https://github.com/fastapi/fastapi/releases/tag/0.140.11)
- Fix handling sequences with nested Annotated types. (0.140.10) — [release notes](https://github.com/fastapi/fastapi/releases/tag/0.140.10)
- Fixes `exclude_defaults` not being propagated to dictionary keys and values during encoding. (0.140.9) — [release notes](https://github.com/fastapi/fastapi/releases/tag/0.140.9)
- Fixes the stream item type being lost when using include_router(). (0.140.8) — [release notes](https://github.com/fastapi/fastapi/releases/tag/0.140.8)

## fastapi 0.139

### New APIs and options

- app.frontend() now supports dependencies, for example to enable automatic cookie authentication for the frontend. (0.139.0) — [release notes](https://github.com/fastapi/fastapi/releases/tag/0.139.0)

### Fixes and other changes

- Router route building is thread-safe, mainly benefiting tests running in parallel threads. (0.139.2) — [release notes](https://github.com/fastapi/fastapi/releases/tag/0.139.2)
- Frontend fallback now supports dotted paths such as /users/john.doe. (0.139.1) — [release notes](https://github.com/fastapi/fastapi/releases/tag/0.139.1)

## fastapi 0.138

### Breaking changes

- Returns 404 for methods other than GET or HEAD when there are no static file matches. (0.138.2) — [release notes](https://github.com/fastapi/fastapi/releases/tag/0.138.2)

### New APIs and options

- Adds support for serving a frontend from a directory using app.frontend, allowing developers to configure the frontend at a path such as /. (0.138.0) — [release notes](https://github.com/fastapi/fastapi/releases/tag/0.138.0)
- Adds support for serving a frontend from a directory using router.frontend, allowing developers to configure the frontend at a path such as /. (0.138.0) — [release notes](https://github.com/fastapi/fastapi/releases/tag/0.138.0)

## fastapi 0.137

### Breaking changes

- router.routes can now contain intermediate objects forming a tree, not just APIRoute objects; treat it as an internal implementation detail rather than iterating or modifying it as a flat list. (0.137.0) — [release notes](https://github.com/fastapi/fastapi/releases/tag/0.137.0)

### New APIs and options

- Adds iter_route_contexts() for advanced use cases that previously used router.routes. (0.137.2) — [release notes](https://github.com/fastapi/fastapi/releases/tag/0.137.2)
- APIRouter adds an experimental handle method, allowing a router to customize how it handles requests. (0.137.0) — [release notes](https://github.com/fastapi/fastapi/releases/tag/0.137.0)
- APIRouter adds an experimental matches method, allowing a router to customize how it matches requests, such as matching on a specific header. (0.137.0) — [release notes](https://github.com/fastapi/fastapi/releases/tag/0.137.0)

### Behavior and default changes

- APIRouter instances are preserved when included instead of having their routes copied, enabling router customization and saving memory in some cases. (0.137.0) — [release notes](https://github.com/fastapi/fastapi/releases/tag/0.137.0)
- Included routers and routes are no longer copied, so routes added after inclusion are reflected, and a subrouter can be included before its routes are added. (0.137.0) — [release notes](https://github.com/fastapi/fastapi/releases/tag/0.137.0)

### Fixes and other changes

- Typing checks for APIRoute are fixed. (0.137.1) — [release notes](https://github.com/fastapi/fastapi/releases/tag/0.137.1)
- Path operations in a prefixless router now allow an empty path. (0.137.1) — [release notes](https://github.com/fastapi/fastapi/releases/tag/0.137.1)

## fastapi 0.136

### Breaking changes

- With the default convert_underscores=True, underscore headers are no longer accepted. (0.136.3) — [release notes](https://github.com/fastapi/fastapi/releases/tag/0.136.3)

### Fixes and other changes

- Server Sent Event fields are validated to prevent applications from sending broken data. (0.136.2) — [release notes](https://github.com/fastapi/fastapi/releases/tag/0.136.2)
- FastAPI supports free-threaded Python 3.14t. (0.136.0) — [release notes](https://github.com/fastapi/fastapi/releases/tag/0.136.0)

## fastapi 0.135

### Breaking changes

- The April Fool's @app.vibe() decorator was removed. (0.135.4) — [release notes](https://github.com/fastapi/fastapi/releases/tag/0.135.4)
- The minimum supported Pydantic version is now 2.9.0, affecting which versions can be installed with FastAPI. (0.135.2) — [release notes](https://github.com/fastapi/fastapi/releases/tag/0.135.2)

### New APIs and options

- Adds support for the @app.vibe() decorator. (0.135.3) — [release notes](https://github.com/fastapi/fastapi/releases/tag/0.135.3)
- FastAPI adds support for Server-Sent Events (SSE). (0.135.0) — [release notes](https://github.com/fastapi/fastapi/releases/tag/0.135.0)

### Fixes and other changes

- Avoids yielding from a TaskGroup; it is used only as an async context manager and closed in the request async exit stack. (0.135.1) — [release notes](https://github.com/fastapi/fastapi/releases/tag/0.135.1)

## fastapi 0.134

### New APIs and options

- Endpoints can stream JSON Lines and binary data with yield. (0.134.0) — [release notes](https://github.com/fastapi/fastapi/releases/tag/0.134.0)

## fastapi 0.133

### New APIs and options

- Adds a FastAPI Agent Skill for use with library agent skills. (0.133.1) — [release notes](https://github.com/fastapi/fastapi/releases/tag/0.133.1)

### Behavior and default changes

- FastAPI now supports Starlette 1.0.0 and later. (0.133.0) — [release notes](https://github.com/fastapi/fastapi/releases/tag/0.133.0)

## fastapi 0.132

### Breaking changes

- FastAPI now rejects JSON requests without a valid JSON Content-Type header by default; set strict_content_type=False to disable the check. (0.132.0) — [release notes](https://github.com/fastapi/fastapi/releases/tag/0.132.0)

## fastapi 0.131

### Deprecations

- ORJSONResponse is deprecated. (0.131.0) — [release notes](https://github.com/fastapi/fastapi/releases/tag/0.131.0)
- UJSONResponse is deprecated. (0.131.0) — [release notes](https://github.com/fastapi/fastapi/releases/tag/0.131.0)

## fastapi 0.130

### Performance

- JSON responses are serialized with Pydantic in Rust when there is a Pydantic return type or response model, resulting in a 2x or greater performance increase. (0.130.0) — [release notes](https://github.com/fastapi/fastapi/releases/tag/0.130.0)

## fastapi 0.129

### Breaking changes

- Support for fastapi-slim is dropped and no further versions will be released; use fastapi[standard] or fastapi instead. (0.129.2) — [release notes](https://github.com/fastapi/fastapi/releases/tag/0.129.2)
