SpatioTemporal Asset Catalog

February 10, 2026 ยท View on GitHub

The titiler.application package comes with a full FastAPI application with COG, STAC and MosaicJSON supports.

SpatioTemporal Asset Catalog

The /stac routes are based on titiler.core.factory.MultiBaseTilerFactory but with stacViewerExtension extension.

API

MethodURLOutputDescription
GET/stac/assetsJSONreturn available assets within the STAC item
GET/stac/infoJSONreturn asset's basic info
GET/stac/info.geojsonGeoJSONreturn asset's basic info as a GeoJSON feature
GET/stac/asset_statisticsJSONreturn per asset statistics
GET/stac/statisticsJSONreturn asset's statistics
POST/stac/statisticsGeoJSONreturn asset's statistics for a GeoJSON
GET/stac/tilesJSONList of OGC Tilesets available
GET/stac/tiles/{tileMatrixSetId}JSONOGC Tileset metadata
GET/stac/tiles/{tileMatrixSetId}/{z}/{x}/{y}[.{format}]image/bincreate a web map tile image from assets
GET/stac/{tileMatrixSetId}/map.htmlHTMLsimple map viewer
GET/stac/{tileMatrixSetId}/tilejson.jsonJSONreturn a Mapbox TileJSON document
GET/stac/point/{lon},{lat}JSONreturn pixel value from assets
GET/stac/bbox/{minx},{miny},{maxx},{maxy}[/{width}x{height}].{format}image/bincreate an image from part of assets
POST/stac/feature[/{width}x{height}][.{format}]image/bincreate an image from a geojson covering the assets
GET/stac/preview[/{width}x{height}][.{format}]image/bincreate a preview image from assets
GET/stac/viewerHTMLdemo webpage (from titiler.extensions.stacViewerExtension)
GET/stac/WMTSCapabilities.xmlXMLreturn OGC WMTS Get Capabilities (from titiler.extensions.wmts.wmtsExtension)

Description

Tiles

:endpoint:/stac/tiles/{tileMatrixSetId}/{z}/{x}/{y}[.{format}]

  • PathParams:

    • tileMatrixSetId (str): TileMatrixSet name (e.g WebMercatorQuad)
    • z (int): TMS tile's zoom level.
    • x (int): TMS tile's column.
    • y (int): TMS tile's row.
    • format (str): Output image format, default is set to None and will be either JPEG or PNG depending on masked value. Optional
  • QueryParams:

    • url (str): STAC Item URL. Required
    • assets (array[str]): asset names. Required
    • expression (str): rio-tiler's math expression (e.g b1/b2).
    • asset_as_band (bool): tell rio-tiler that each asset is a 1 band dataset.
    • tilesize (int): overwrite TMS tileWidth x tileHeight with fixed tilesize.
    • nodata (str, int, float): Overwrite internal Nodata value.
    • unscale (bool): Apply dataset internal Scale/Offset.
    • resampling (str): RasterIO resampling algorithm. Defaults to nearest.
    • reproject (str): WarpKernel resampling algorithm (only used when doing re-projection). Defaults to nearest.
    • rescale (array[str]): Comma (',') delimited Min,Max range (e.g rescale=0,1000, rescale=0,1000&rescale=0,3000&rescale=0,2000).
    • color_formula (str): rio-color formula.
    • colormap (str): JSON encoded custom Colormap.
    • colormap_name (str): rio-tiler color map name.
    • return_mask (bool): Add mask to the output data. Default is True.
    • buffer (float): Buffer on each side of the given tile. It must be a multiple of 0.5. Output tilesize will be expanded to tilesize + 2 * buffer (e.g 0.5 = 257x257, 1.0 = 258x258).
    • padding (int): Padding to apply to each tile edge. Helps reduce resampling artefacts along edges. Defaults to 0.
    • algorithm (str): Custom algorithm name (e.g hillshade).
    • algorithm_params (str): JSON encoded algorithm parameters.

Example:

  • https://myendpoint/stac/tiles/WebMercatorQuad/1/2/3?url=https://somewhere.com/item.json&assets=B01&assets=B00
  • https://myendpoint/stac/tiles/WebMercatorQuad/1/2/3.jpg?url=https://somewhere.com/item.json&assets=B01
  • https://myendpoint/stac/tiles/WorldCRS84Quad/1/2/3?url=https://somewhere.com/item.json&assets=B01&assets=B02expression=b1/b2&rescale=0,1000&colormap_name=cfastie

Preview

:endpoint:/stac/preview

:endpoint:/stac/preview/.{format}

:endpoint:/stac/preview/{width}x{height}.{format}

  • PathParams:

    • format (str, optional): Output image format, default is set to None and will be either JPEG or PNG depending on masked value. Also a QueryParam
    • height (int, optional): Force output image height. Also a QueryParam
    • width (int, optional): Force output image width. Also a QueryParam
  • QueryParams:

    • url (str): STAC Item URL. Required
    • assets (array[str]): asset names. Required
    • expression (str): rio-tiler's math expression (e.g b1/b2).
    • asset_as_band (bool): tell rio-tiler that each asset is a 1 band dataset.
    • max_size (int): Max image size, default is 1024.
    • dst_crs (str): Output Coordinate Reference System. Default to dataset's CRS.
    • nodata (str, int, float): Overwrite internal Nodata value.
    • unscale (bool): Apply dataset internal Scale/Offset.
    • resampling (str): RasterIO resampling algorithm. Defaults to nearest.
    • reproject (str): WarpKernel resampling algorithm (only used when doing re-projection). Defaults to nearest.
    • rescale (array[str]): Comma (',') delimited Min,Max range (e.g rescale=0,1000, rescale=0,1000&rescale=0,3000&rescale=0,2000).
    • color_formula (str): rio-color formula.
    • colormap (str): JSON encoded custom Colormap.
    • colormap_name (str): rio-tiler color map name.
    • return_mask (bool): Add mask to the output data. Default is True.
    • algorithm (str): Custom algorithm name (e.g hillshade).
    • algorithm_params (str): JSON encoded algorithm parameters.

!!! important - if height or width is provided max_size will be ignored.

Example:

  • https://myendpoint/stac/preview?url=https://somewhere.com/item.json&assets=B01
  • https://myendpoint/stac/preview.jpg?url=https://somewhere.com/item.json&assets=B01
  • https://myendpoint/stac/preview/100x100.jpg?url=https://somewhere.com/item.json&assets=B01
  • https://myendpoint/stac/preview?url=https://somewhere.com/item.json&assets=B01&assets=B02expression=b1/b2&rescale=0,1000&colormap_name=cfastie

Bbox

:endpoint:/stac/bbox/{minx},{miny},{maxx},{maxy}.{format}

:endpoint:/stac/bbox/{minx},{miny},{maxx},{maxy}/{width}x{height}.{format}

  • PathParams:

    • minx,miny,maxx,maxy (str): Comma (',') delimited bounding box in WGS84.
    • format (str): Output image format.
    • height (int, optional): Force output image height. Also a QueryParam
    • width (int, optional): Force output image width. Also a QueryParam
  • QueryParams:

    • url (str): STAC Item URL. Required
    • assets (array[str]): asset names. Required
    • expression (str): rio-tiler's math expression (e.g b1/b2).
    • asset_as_band (bool): tell rio-tiler that each asset is a 1 band dataset.
    • coord_crs (str): Coordinate Reference System of the input coordinates. Default to epsg:4326.
    • dst_crs (str): Output Coordinate Reference System. Default to coord_crs.
    • max_size (int): Max image size.
    • nodata (str, int, float): Overwrite internal Nodata value.
    • unscale (bool): Apply dataset internal Scale/Offset.
    • resampling (str): RasterIO resampling algorithm. Defaults to nearest.
    • reproject (str): WarpKernel resampling algorithm (only used when doing re-projection). Defaults to nearest.
    • rescale (array[str]): Comma (',') delimited Min,Max range (e.g rescale=0,1000, rescale=0,1000&rescale=0,3000&rescale=0,2000).
    • color_formula (str): rio-color formula.
    • colormap (str): JSON encoded custom Colormap.
    • colormap_name (str): rio-tiler color map name.
    • return_mask (bool): Add mask to the output data. Default is True.
    • algorithm (str): Custom algorithm name (e.g hillshade).
    • algorithm_params (str): JSON encoded algorithm parameters.

!!! important - if height or width is provided max_size will be ignored.

Example:

  • https://myendpoint/stac/bbox/0,0,10,10.png?url=https://somewhere.com/item.json&assets=B01
  • https://myendpoint/stac/bbox/0,0,10,10/100x100.png?url=https://somewhere.com/item.json&assets=B01
  • https://myendpoint/stac/bbox/0,0,10,10.png?url=https://somewhere.com/item.json&assets=B01&assets=B02expression=b1/b2&rescale=0,1000&colormap_name=cfastie

OGC Maps API - GetMap

:endpoint:/stac/map

  • QueryParams:
    • url (str): STAC Item URL. Required
    • assets (array[str]): asset names. Required
    • expression (str): rio-tiler's math expression (e.g b1/b2).
    • asset_as_band (bool): tell rio-tiler that each asset is a 1 band dataset.
    • nodata (str, int, float): Overwrite internal Nodata value.
    • unscale (bool): Apply dataset internal Scale/Offset.
    • resampling (str): RasterIO resampling algorithm. Defaults to nearest.
    • reproject (str): WarpKernel resampling algorithm (only used when doing re-projection). Defaults to nearest.
    • rescale (array[str]): Comma (',') delimited Min,Max range (e.g rescale=0,1000, rescale=0,1000&rescale=0,3000&rescale=0,2000).
    • color_formula (str): rio-color formula.
    • colormap (str): JSON encoded custom Colormap.
    • colormap_name (str): rio-tiler color map name.
    • return_mask (bool): Add mask to the output data. Default is True.
    • algorithm (str): Custom algorithm name (e.g hillshade).
    • algorithm_params (str): JSON encoded algorithm parameters.
    • bbox (str): Comma (',') delimited bounding box.
    • bbox-crs (str, optional): Coordinate Reference System of the input coordinates. Default to epsg:4326.
    • crs (str, optional): Output Coordinate Reference System. Default to dataset'crs.
    • height (int, optional): Force output image height. Also a QueryParam
    • width (int, optional): Force output image width. Also a QueryParam
    • f (str): Output image format

Feature

:endpoint:/stac/feature - [POST]

:endpoint:/stac/feature.{format} - [POST]

:endpoint:/stac/feature/{width}x{height}.{format} - [POST]

  • Body:

    • feature (JSON): A valid GeoJSON feature (Polygon or MultiPolygon)
  • PathParams:

    • format (str, optional): Output image format. Also a QueryParam
    • height (int, optional): Force output image height. Also a QueryParam
    • width (int, optional): Force output image width. Also a QueryParam
  • QueryParams:

    • url (str): STAC Item URL. Required
    • assets (array[str]): asset names. Required
    • expression (str): rio-tiler's math expression (e.g b1/b2).
    • asset_as_band (bool): tell rio-tiler that each asset is a 1 band dataset.
    • coord_crs (str): Coordinate Reference System of the input geometry coordinates. Default to epsg:4326.
    • dst_crs (str): Output Coordinate Reference System. Default to coord_crs.
    • max_size (int): Max image size.
    • nodata (str, int, float): Overwrite internal Nodata value.
    • unscale (bool): Apply dataset internal Scale/Offset.
    • resampling (str): RasterIO resampling algorithm. Defaults to nearest.
    • reproject (str): WarpKernel resampling algorithm (only used when doing re-projection). Defaults to nearest.
    • rescale (array[str]): Comma (',') delimited Min,Max range (e.g rescale=0,1000, rescale=0,1000&rescale=0,3000&rescale=0,2000).
    • color_formula (str): rio-color formula.
    • colormap (str): JSON encoded custom Colormap.
    • colormap_name (str): rio-tiler color map name.
    • return_mask (bool): Add mask to the output data. Default is True.
    • algorithm (str): Custom algorithm name (e.g hillshade).
    • algorithm_params (str): JSON encoded algorithm parameters.

!!! important - if height or width is provided max_size will be ignored.

Example:

  • https://myendpoint/stac/feature?url=https://somewhere.com/item.json&assets=B01
  • https://myendpoint/stac/feature.png?url=https://somewhere.com/item.json&assets=B01
  • https://myendpoint/stac/feature/100x100.png?url=https://somewhere.com/item.json&assets=B01&rescale=0,1000&colormap_name=cfastie

Point

:endpoint:/cog/point/{lon},{lat}

  • PathParams:

    • lon,lat, (str): Comma (',') delimited point Longitude and Latitude WGS84.
  • QueryParams:

    • url (str): STAC Item URL. Required
    • assets (array[str]): asset names. Required
    • expression (str): rio-tiler's math expression (e.g b1/b2).
    • asset_as_band (bool): tell rio-tiler that each asset is a 1 band dataset.
    • asset_bidx (array[str]): Per asset band math expression (e.g Asset1|1,2,3).
    • coord_crs (str): Coordinate Reference System of the input coordinates. Default to epsg:4326.
    • nodata (str, int, float): Overwrite internal Nodata value.
    • unscale (bool): Apply dataset internal Scale/Offset.
    • resampling (str): RasterIO resampling algorithm. Defaults to nearest.

Example:

  • https://myendpoint/stac/point/0,0?url=https://somewhere.com/item.json&assets=B01

TilesJSON

:endpoint:/stac/{tileMatrixSetId}/tilejson.json tileJSON document

  • PathParams:

    • tileMatrixSetId (str): TileMatrixSet name (e.g WebMercatorQuad)
  • QueryParams:

    • url (str): STAC Item URL. Required
    • assets (array[str]): asset names. Required
    • expression (str): rio-tiler's math expression (e.g b1/b2).
    • asset_as_band (bool): tell rio-tiler that each asset is a 1 band dataset.
    • tile_format (str): Output image format, default is set to None and will be either JPEG or PNG depending on masked value.
    • tilesize (int): overwrite TMS tileWidth x tileHeight with fixed tilesize. Defaults to 512.
    • minzoom (int): Overwrite default minzoom.
    • maxzoom (int): Overwrite default maxzoom.
    • nodata (str, int, float): Overwrite internal Nodata value.
    • unscale (bool): Apply dataset internal Scale/Offset.
    • resampling (str): RasterIO resampling algorithm. Defaults to nearest.
    • reproject (str): WarpKernel resampling algorithm (only used when doing re-projection). Defaults to nearest.
    • rescale (array[str]): Comma (',') delimited Min,Max range (e.g rescale=0,1000, rescale=0,1000&rescale=0,3000&rescale=0,2000).
    • color_formula (str): rio-color formula.
    • colormap (str): JSON encoded custom Colormap.
    • colormap_name (str): rio-tiler color map name.
    • return_mask (bool): Add mask to the output data. Default is True.
    • buffer (float): Buffer on each side of the given tile. It must be a multiple of 0.5. Output tilesize will be expanded to tilesize + 2 * buffer (e.g 0.5 = 257x257, 1.0 = 258x258).
    • padding (int): Padding to apply to each tile edge. Helps reduce resampling artefacts along edges. Defaults to 0.
    • algorithm (str): Custom algorithm name (e.g hillshade).
    • algorithm_params (str): JSON encoded algorithm parameters.

Example:

  • https://myendpoint/stac/WebMercatorQuad/tilejson.json?url=https://somewhere.com/item.json&assets=B01
  • https://myendpoint/stac/WebMercatorQuad/tilejson.json?url=https://somewhere.com/item.json&assets=B01&tile_format=png
  • https://myendpoint/stac/WorldCRS84Quad/tilejson.json?url=https://somewhere.com/item.json&tilesize=256&assets=B01&assets=B02&expression=b1/b2

Map

:endpoint:/stac/{tileMatrixSetId}/map.html Simple viewer

  • PathParams:

    • tileMatrixSetId (str): TileMatrixSet name (e.g WebMercatorQuad)
  • QueryParams:

    • url (str): STAC Item URL. Required
    • assets (array[str]): asset names. Required
    • expression (str): rio-tiler's math expression (e.g b1/b2).
    • asset_as_band (bool): tell rio-tiler that each asset is a 1 band dataset.
    • tile_format (str): Output image format, default is set to None and will be either JPEG or PNG depending on masked value.
    • tilesize (int): overwrite TMS tileWidth x tileHeight with fixed tilesize. Defaults to 256.
    • minzoom (int): Overwrite default minzoom.
    • maxzoom (int): Overwrite default maxzoom.
    • nodata (str, int, float): Overwrite internal Nodata value.
    • unscale (bool): Apply dataset internal Scale/Offset.
    • resampling (str): RasterIO resampling algorithm. Defaults to nearest.
    • reproject (str): WarpKernel resampling algorithm (only used when doing re-projection). Defaults to nearest.
    • rescale (array[str]): Comma (',') delimited Min,Max range (e.g rescale=0,1000, rescale=0,1000&rescale=0,3000&rescale=0,2000).
    • color_formula (str): rio-color formula.
    • colormap (str): JSON encoded custom Colormap.
    • colormap_name (str): rio-tiler color map name.
    • return_mask (bool): Add mask to the output data. Default is True.
    • buffer (float): Buffer on each side of the given tile. It must be a multiple of 0.5. Output tilesize will be expanded to tilesize + 2 * buffer (e.g 0.5 = 257x257, 1.0 = 258x258).
    • padding (int): Padding to apply to each tile edge. Helps reduce resampling artefacts along edges. Defaults to 0.
    • algorithm (str): Custom algorithm name (e.g hillshade).
    • algorithm_params (str): JSON encoded algorithm parameters.

Example:

  • https://myendpoint/stac/WebMercatorQuad/tilejson.json?url=https://somewhere.com/item.json&assets=B01
  • https://myendpoint/stac/WebMercatorQuad/tilejson.json?url=https://somewhere.com/item.json&assets=B01&tile_format=png
  • https://myendpoint/stac/WorldCRS84Quad/tilejson.json?url=https://somewhere.com/item.json&tilesize=512&expression=B01/B02

Info

:endpoint:/stac/info - Return basic info on STAC item's COG.

  • QueryParams:
    • url (str): STAC Item URL. Required
    • assets (array[str]): asset names. Required

Example:

  • https://myendpoint/stac/info?url=https://somewhere.com/item.json&assets=B01

!!! note

Use `assets=:all:` to use all available assets

:endpoint:/stac/info.geojson - Return basic info on STAC item's COG as a GeoJSON feature

  • QueryParams:
    • url (str): STAC Item URL. Required
    • assets (array[str]): asset names. Required
    • crs (str): Geographic Coordinate Reference System. Default to epsg:4326.

!!! note

Use `assets=:all:` to use all available assets

:endpoint:/stac/assets - Return the list of available assets

Example:

  • https://myendpoint/stac/assets?url=https://somewhere.com/item.json

Statistics

:endpoint:/stac/asset_statistics - [GET]

  • QueryParams:
    • url (str): STAC Item URL. Required
    • assets (array[str]): asset names. Required
    • max_size (int): Max image size from which to calculate statistics, default is 1024.
    • height (int): Force image height from which to calculate statistics.
    • width (int): Force image width from which to calculate statistics.
    • nodata (str, int, float): Overwrite internal Nodata value.
    • unscale (bool): Apply dataset internal Scale/Offset.
    • resampling (str): RasterIO resampling algorithm. Defaults to nearest.
    • categorical (bool): Return statistics for categorical dataset, default is false.
    • c (array[float]): Pixels values for categories.
    • p (array[int]): Percentile values.
    • histogram_bins (str): Histogram bins.
    • histogram_range (str): Comma (',') delimited Min,Max histogram bounds

Example:

  • https://myendpoint/stac/statistics?url=https://somewhere.com/item.json&assets=B01&categorical=true&c=1&c=2&c=3&p=2&p98

!!! note

Use `assets=:all:` to use all available assets

:endpoint:/stac/statistics - [GET]

  • QueryParams:
    • url (str): STAC Item URL. Required
    • assets (array[str]): asset names. Required
    • expression (str): rio-tiler's math expression (e.g b1/b2).
    • asset_as_band (bool): tell rio-tiler that each asset is a 1 band dataset.
    • max_size (int): Max image size from which to calculate statistics, default is 1024.
    • height (int): Force image height from which to calculate statistics.
    • width (int): Force image width from which to calculate statistics.
    • nodata (str, int, float): Overwrite internal Nodata value.
    • unscale (bool): Apply dataset internal Scale/Offset.
    • resampling (str): RasterIO resampling algorithm. Defaults to nearest.
    • algorithm (str): Custom algorithm name (e.g hillshade).
    • algorithm_params (str): JSON encoded algorithm parameters.
    • categorical (bool): Return statistics for categorical dataset, default is false.
    • c (array[float]): Pixels values for categories.
    • p (array[int]): Percentile values.
    • histogram_bins (str): Histogram bins.
    • histogram_range (str): Comma (',') delimited Min,Max histogram bounds

Example:

  • https://myendpoint/stac/statistics?url=https://somewhere.com/item.json&assets=B01&categorical=true&c=1&c=2&c=3&p=2&p98

!!! note

Use `assets=:all:` to use all available assets

:endpoint:/stac/statistics - [POST]

  • Body:

    • feature (JSON): A valid GeoJSON feature or FeatureCollection
  • QueryParams:

    • url (str): STAC Item URL. Required
    • assets (array[str]): asset names. Required
    • expression (str): rio-tiler's math expression (e.g b1/b2).
    • asset_as_band (bool): tell rio-tiler that each asset is a 1 band dataset.
    • coord_crs (str): Coordinate Reference System of the input geometry coordinates. Default to epsg:4326.
    • dst_crs (str): Output Coordinate Reference System. Default to coord_crs.
    • max_size (int): Max image size from which to calculate statistics.
    • height (int): Force image height from which to calculate statistics.
    • width (int): Force image width from which to calculate statistics.
    • nodata (str, int, float): Overwrite internal Nodata value.
    • unscale (bool): Apply dataset internal Scale/Offset.
    • resampling (str): RasterIO resampling algorithm. Defaults to nearest.
    • reproject (str): WarpKernel resampling algorithm (only used when doing re-projection). Defaults to nearest.
    • algorithm (str): Custom algorithm name (e.g hillshade).
    • algorithm_params (str): JSON encoded algorithm parameters.
    • categorical (bool): Return statistics for categorical dataset, default is false.
    • c (array[float]): Pixels values for categories.
    • p (array[int]): Percentile values.
    • histogram_bins (str): Histogram bins.
    • histogram_range (str): Comma (',') delimited Min,Max histogram bounds

Example:

  • https://myendpoint/stac/statistics?url=https://somewhere.com/item.json&assets=B01&categorical=true&c=1&c=2&c=3&p=2&p98

!!! note

Use `assets=:all:` to use all available assets

Viewer

:endpoint:/stac/viewer - STAC viewer

  • QueryParams:
    • url: STAC Item URL. Optional

Example:

  • https://myendpoint/stac/viewer?url=https://somewhere.com/item.json