Skip to main content
The interactive API reference is generated from the OpenAPI contract and available under the API Reference group in the sidebar. The contract is served by the API itself at GET /api/v1/openapi.json and stored in openapi.json at the root of this repository. The API resource is named session for historical reasons; it represents a persistent project in the product (a workspace with map state, layers, files, chat history, and reports). The full endpoint list is generated from the source repository and stored in source/api-routes.json. If this page looks stale, regenerate the source pack:
Then sync the generated files:

Public API endpoints

For request/response schemas, use the interactive API Reference group in the sidebar, generated from the OpenAPI contract. Platform-internal endpoints under /api/internal/* are not part of the public API and are intentionally not listed here.

Supported upload types

POST /api/v1/sessions/{id}/files accepts the following file types (max 50MB per file, configurable via UPLOAD_MAX_SIZE_MB):

Capability scopes

API keys grant access through capability scopes. ["*"] (or an empty scopes array) grants all access; otherwise only the listed scopes are allowed.

Map actions

POST /api/v1/sessions/{id}/map/actions accepts an array of action objects. Each action requires a type; the parameters depend on the type. Legacy map.* prefixed aliases (for example map.flyTo) are also accepted. add_tile_layer sent without a layer_id is persisted by the backend (deduplicated by URL) and the created layer id is returned in the response.

View & camera

Layers

Basemap & masks

System & notifications