fastapi-versioning
api versioning for fastapi web applications
Decision gist · record as of 2026-08-14
Yes, if you are on a stable FastAPI version and need simple API versioning without external infrastructure. No, if you require ongoing maintenance or compatibility with the latest FastAPI releases—the package is abandoned and may break with future updates. Consider it a working solution for legacy projects or prototypes, not for new production systems expecting long-term support.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.6 or later; package is abandoned and may not be compatible with recent FastAPI or Starlette versions.
- Low friction installation with only fastapi and starlette as runtime dependencies.
- However, the package is abandoned as of 2021-08-24 with no commits since 2023-07-25, so it will not receive maintenance or updates for newer FastAPI versions.
License · maintenance · safety
permissive license (permissive) — Licensed under MIT (permissive), allowing commercial and private use with minimal restrictions.
last release 2021-08-24 (1816 days) · last repo commit 2023-07-25 · 847 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 84,080 downloads/mo, #14,028 on PyPI
Alternatives
Verify before relying
pip install fastapi-versioning
from fastapi import FastAPI
from fastapi_versioning import VersionedFastAPI, version
app = FastAPI(title="My App")
@app.get("/greet")
@version(1, 0)
def greet_v1():
return "Hello"
app = VersionedFastAPI(app)- Compatibility with current FastAPI and Starlette versions (last release was 2021-08-24)
- Whether the package works with Python versions beyond 3.8 (classifiers only list up to 3.8)
What it is and what it does
fastapi-versioning is a decorator-based library that lets you define multiple versions of the same endpoint in a single FastAPI application and automatically generates separate URL paths for each version. You decorate endpoint functions with @version(major, minor) or @version(major), and the VersionedFastAPI wrapper transforms your app to create versioned routes like /v1_0/endpoint and /v1_1/endpoint, each with its own OpenAPI documentation. It also optionally generates /latest routes that point to the most recent version.
The package depends on fastapi and starlette as its only runtime dependencies, making it lightweight to add to an existing FastAPI project. However, the project is abandoned—the last release was 2021-08-24 and the last commit was 2023-07-25—so it will not receive updates for newer FastAPI or Starlette releases, which may cause compatibility issues over time.
Use it for
- Maintain multiple API versions in a single codebase without duplicating route handlers or creating separate applications.
- Gradually deprecate old API versions while supporting new ones, with each version accessible at its own URL path.
- Generate separate OpenAPI documentation and Swagger UI for each API version so clients can see what changed.
- Support a /latest endpoint that automatically reflects the newest API version without hardcoding version numbers in client code.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you are on a stable FastAPI version and need simple API versioning without external infrastructure.
No, if you require ongoing maintenance or compatibility with the latest FastAPI releases—the package is abandoned and may break with future updates. Consider it a working solution for legacy projects or prototypes, not for new production systems expecting long-term support.
Install
fastapi-versioning on PyPI
Before you install
Low friction installation with only fastapi and starlette as runtime dependencies. However, the package is abandoned as of 2021-08-24 with no commits since 2023-07-25, so it will not receive maintenance or updates for newer FastAPI versions.
Requires Python 3.6 or later; package is abandoned and may not be compatible with recent FastAPI or Starlette versions.
License in practice
Licensed under MIT (permissive), allowing commercial and private use with minimal restrictions.
Quickstart
pip install fastapi-versioning
from fastapi import FastAPI
from fastapi_versioning import VersionedFastAPI, version
app = FastAPI(title="My App")
@app.get("/greet")
@version(1, 0)
def greet_v1():
return "Hello"
app = VersionedFastAPI(app)
Verify before relying
- Compatibility with current FastAPI and Starlette versions (last release was 2021-08-24)
- Whether the package works with Python versions beyond 3.8 (classifiers only list up to 3.8)
Package facts
| License | permissive license permissive |
| Python support | Supports the current Python release >=3.6 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 2 packagesfastapistarlette |
| Maintenance | Abandoned 1,816 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 84,080 / month, #14,028 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | License :: OSI Approved :: MIT LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3.6Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8 |
Evidence: fastapi_versioning-0.10.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “fastapi api versioning”
- fastapi-versioningAdds API versioning to FastAPI applications by decorating endpoints…
- cadwynCadwyn generates older API versions automatically from your newest…
- bauplanBauplan is a CLI and SDK for interacting with a code-first data…
Give your agent the search over MCP, or paste the wish link into any chat.
More Dynamic Content packages
MarkupSafe provides a text object that escapes special characters so untrusted strings can be safely embedded in HTML and XML without injection attacks.
Jinja2 is a templating engine that renders dynamic content by combining templates with Python-like syntax and data, supporting template inheritance, macros, autoescaping, and sandboxed execution.
Soupsieve is a CSS selector library designed to work with Beautiful Soup 4 to select, match, and filter HTML and XML elements using modern CSS selectors from CSS level 1 through CSS level 4 specifications.
Install it if you use Beautiful Soup for HTML or XML parsing and want modern CSS selector support.
Werkzeug is a WSGI utility library providing request/response objects, URL routing, an interactive debugger, HTTP utilities, and a development server for building web applications.
Flask is a lightweight WSGI web application framework for building web applications in Python, from simple single-page sites to complex multi-route applications.
Mako compiles Python-embedded templates into Python modules for fast rendering, supporting layout inheritance, custom functions, and direct Python expressions within template syntax.
See also fastapi-decorators · fastapi · fastapi-healthchecks · fastapi-auth0 · fastapi-cache2 · fastapi-socketio · fastapi-limiter · fastapi-utils · fastapi-cloudauth · cadwyn