TiTiler Application
raw JSON → 2.0.2 verified Fri May 01 auth: no python
A modern dynamic tile server library built on top of FastAPI and Rasterio/GDAL. Version 2.0.2 is the latest stable release; it provides composable FastAPI routers for serving COG, STAC, and mosaic tiles. The package is part of the TiTiler ecosystem and is actively maintained by Development Seed.
pip install titiler-application Common errors
error ImportError: cannot import name 'TilerFactory' from 'titiler' ↓
cause Incorrect import path; TilerFactory moved to titiler.application.
fix
Use 'from titiler.application import TilerFactory'
error AttributeError: module 'titiler' has no attribute 'application' ↓
cause Missing or incomplete installation of titiler-application package.
fix
Install titiler-application: pip install titiler-application
error pydantic.error_wrappers.ValidationError: 1 validation error for TilerFactory ... ↓
cause In v2, TilerFactory requires explicit router addition; not all endpoints are auto-registered.
fix
Use TilerFactory().router and include it in the app manually.
Warnings
breaking In v2.0.0, the default TilerFactory no longer auto-includes all endpoints. You must explicitly add routers or configure settings. ↓
fix Review the new factory pattern: use TilerFactory() and .include_router() explicitly.
deprecated The titiler.mosaic metapackage is deprecated; use titiler-application directly. ↓
fix Install titiler-application instead of titiler.mosaic.
gotcha When deploying with AWS Lambda, you must set CPYTHON_GC_RETAIN to avoid memory issues with GDAL. ↓
fix Set environment variable CPYTHON_GC_RETAIN=1 in Lambda configuration.
gotcha In v2, the 'assets' parameter is required for STAC and mosaic endpoints; use 'assets=:all:' to select all bands. ↓
fix Always provide assets parameter, e.g., assets=:all:.
Imports
- TilerFactory wrong
from titiler import TilerFactorycorrectfrom titiler.application import TilerFactory - STACFactory wrong
from titiler.stac import STACFactorycorrectfrom titiler.application import STACFactory
Quickstart
from fastapi import FastAPI
from titiler.application import TilerFactory
from titiler.core.factory import MultiBandTilerFactory
from titiler.core.resources.enums import ImageType
app = FastAPI()
# COG tiler with default settings
cog_tiler = TilerFactory()
app.include_router(cog_tiler.router, prefix="/cog")
# Multi-band tiler
multi_tiler = MultiBandTilerFactory()
app.include_router(multi_tiler.router, prefix="/multi")
# Optional: enable CORS
from titiler.core.middleware import CORSMiddleware
app.add_middleware(CORSMiddleware, allow_origins=["*"])