Skip to content

fastgeoapi

fastgeoapi

An OGC API for data that is already cloud-native. Your GeoParquet, your PMTiles, your COG sit in a bucket, and something still needs a standard API in front of them: QGIS, a browser, a partner, an agent. fastgeoapi serves one straight from those formats, where they are, with pygeoapi as the engine — and because reading them means ranged requests over the network, it awaits those reads instead of parking a thread on each.

  • Cloud-native formats, in place

    GeoParquet queried by DuckDB and PMTiles read by byte range, from S3, GCS, Azure or Tigris. No load into a database, no pre-cut tile tree, no second copy — and the configuration can live in the same bucket.

    GeoParquet provider · PMTiles provider · Config from cloud storage

  • Async where waiting is the cost

    A ranged read is a round trip, and a map view asks for fifty at once. Those are awaited together rather than five at a time on a thread pool — with a guard in the test suite that fails if the loop blocks.

    Two faces for a provider

  • Standard, and only what you configured

    OGC API — Features, Tiles, Processes, Records, EDR and STAC, from pygeoapi unchanged. The route table and /conformance are built from your resources, so they describe this server rather than the catalogue.

    Why fastgeoapi

  • Behind authentication, and usable by agents

    OAuth2 with JWKS, an API key or Open Policy Agent in front; an MCP endpoint with its own authorization server behind, so a client like Claude can query your collections as tools.

    Getting started · MCP server

Where to start

If you are standing a server up, read Getting started and then the configuration reference.

If you are changing a configuration that already runs, the editor will tell you whether it builds before you save it.

If you are connecting an agent, start at MCP getting started.

Live demo

A running instance is at fastgeoapi.fly.dev, on one vCPU in Paris. Four of its collections are cloud-native formats served in place: Overture Maps places, as GeoParquet and as an 18 GB PMTiles archive, both read where Overture publishes them in us-west-2; and a Lazio road extract in the same two shapes, staged in a bucket beside the server — the pair that shows what locality is worth. Its OpenAPI document is published here, and Using fastgeoapi from QGIS puts two of those collections on a map.

Nothing about it is private: the configuration it serves is readable, the datasets it names are readable, and the same document is pygeoapi-config.demo.yml in the repository — so it can be run, diffed and disagreed with. How to read it, and why your own should not be public.

Installation

pip install fastgeoapi
fastgeoapi run

The full instructions — including the authentication options, which are the part worth reading — are in Getting started.