Install & Compatibility
Where this runs
tested against v0.16.1 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
muslpy 3.10–3.940 runs
installs and imports cleanly · install 0.0s · import 0.000s · 28.5MB
glibcpy 3.10–3.940 runs
installs and imports cleanly · install 2.4s · import 0.000s · 29MB
27MB installed
● package 27MB
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
Admin
✓ from starlette_admin.app import Admin
✗ from starlette_admin import Admin
The Admin class is located in the `app` submodule.
ModelView
✓ from starlette_admin.contrib.sqla import ModelView
✗ from starlette_admin.views import ModelView
ORM-specific ModelViews are located in `contrib.*` submodules (e.g., `sqla`, `beanie`). The base `ModelView` in `views` is abstract.
BaseModelView
✓ from starlette_admin.views import BaseModelView
This quickstart demonstrates how to integrate Starlette Admin with a FastAPI application using SQLAlchemy. It sets up a basic `User` model, initializes the admin interface with a `ModelView` for `User`, and mounts it to the FastAPI app. Ensure you install `starlette-admin[sqla]` and `uvicorn` to run this example.
import uvicorn
from fastapi import FastAPI
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.orm import declarative_base, sessionmaker
from starlette_admin.app import Admin
from starlette_admin.contrib.sqla import ModelView
# 1. Setup Database (SQLAlchemy Example)
DATABASE_URL = "sqlite:///./test.db"
engine = create_engine(DATABASE_URL, connect_args={"check_same_thread": False})
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
Base = declarative_base()
class User(Base):
__tablename__ = "users"
id = Column(Integer, primary_key=True, index=True)
name = Column(String)
email = Column(String, unique=True, index=True)
# Create tables
Base.metadata.create_all(bind=engine)
# 2. Setup FastAPI App
app = FastAPI()
# 3. Setup Starlette Admin
admin = Admin(engine, title="My Admin Dashboard")
# Add ModelViews
admin.add_view(ModelView(User))
# Mount Admin to FastAPI
admin.mount_to(app)
# Optional: Add a root route
@app.get("/", include_in_schema=False)
async def read_root():
return {"message": "Welcome to FastAPI with Starlette Admin!"}
if __name__ == "__main__":
# Populate some data if needed (run once)
with SessionLocal() as db:
if not db.query(User).first():
db.add(User(name="Alice", email="alice@example.com"))
db.add(User(name="Bob", email="bob@example.com"))
db.commit()
uvicorn.run(app, host="0.0.0.0", port=8000)
Debug
Known issues
gotchaWhen using ORM-specific ModelViews (e.g., `SQLAlchemyModelView`, `BeanieModelView`), ensure you install the correct extra dependencies (e.g., `starlette-admin[sqla]`, `starlette-admin[beanie]`) to avoid `ModuleNotFoundError`.fixInstall with `pip install "starlette-admin[<orm_name>]"` (e.g., `starlette-admin[sqla]`)
affects: All versions
breakingVersion 0.15.0 upgraded Odmantic support to v1.0+. If you were using Odmantic with an older version of `starlette-admin` (pre-0.15.0) and Odmantic v0.x, you might face breaking changes due to Odmantic's API changes.fixReview Odmantic v1.0 migration guides and update your Odmantic models and database interactions accordingly. Then, upgrade `starlette-admin`.
affects: <0.15.0 (when upgrading from older Odmantic)
gotchaAuthentication and authorization are not included by default. You must implement your own security layer (e.g., using `starlette.middleware.authentication.AuthMiddleware` or FastAPI's dependency injection) to protect your admin panel.fixImplement custom authentication/authorization using Starlette/FastAPI's security features and integrate it with Starlette Admin via custom routes or middleware.
affects: All versions
deprecatedOlder versions (pre-0.15.0) might trigger deprecation warnings related to `TemplateResponse` and `Jinja2Templates` usage from Starlette. These have been addressed in 0.15.0.fixUpgrade to `starlette-admin` version 0.15.0 or newer to resolve these warnings. No code changes are typically required on your end unless you've customized templates.
affects: <0.15.0
Upgrade
Version history
0.16.1latest on PyPI · released Jun 6, 2026
Audit
Dependencies
SQLAlchemyoptionalRequired for SQLAlchemyModelView. Installed via `[sqla]` extra.
beanieoptionalRequired for BeanieModelView (MongoDB ODM). Installed via `[beanie]` extra.
odmanticoptionalRequired for OdmanticModelView (MongoDB ODM). Installed via `[odmantic]` extra.
tortoise-ormoptionalRequired for TortoiseORMModelView. Installed via `[tortoise]` extra.