mapbench

Documentation → Reference

Formats, limits and quotas

Every ceiling in one place. These are the values this deployment is running — they are configured per installation, so a staging server may answer differently from production.

mapbench is in beta. These numbers are set to keep a shared server responsive, not because they are the right long-term answer. If one of them is in your way, say so — that is useful information at this stage.

Accepted file formats

FormatExtensionNotes
GeoJSON.geojson, .jsonThe simplest path in. WGS84 assumed unless the file says otherwise.
GeoPackage.gpkgMay contain several layers; each becomes its own dataset.
FlatGeobuf.fgbBest choice for something large — compact and fast to read.
Shapefile.zipZip the .shp, .shx, .dbf and .prj together.
KML / KMZ.kml, .kmz
CSV.csvNeeds coordinate columns.
GML.gml
GPX.gpx
PMTiles.pmtilesAlready tiled — stored as-is, and cannot be reprocessed.

The allowlist as configured here is: .csv, .fgb, .geojson, .gml, .gpkg, .gpx, .json, .kml, .kmz, .pmtiles, .zip. Anything else is refused at upload rather than failing later in a tiling job.

Raster data is not supported. mapbench tiles vector features.

Upload sizes

LimitValueWhat happens
Largest file 1 GiB Anything larger is refused. Convert to FlatGeobuf or GeoPackage — the same data is usually a fraction of the size of GeoJSON.
Direct-to-storage threshold 90 MiB Below this the file goes through the app; above it your browser uploads straight to storage, in parts. Nothing for you to choose — it switches on its own.
Uncompressed archive contents 4 GiB A .zip or .kmz that declares more than this uncompressed is refused before a single byte is read.
Layers per import 50 A multi-layer source or a bulk service import fanning out to more than this is refused. Import in batches.

Processing

LimitValueApplies to
Queued jobs per organisation 25 Everyone — people and agents alike. Anything beyond it is refused until earlier jobs finish.
Jobs per hour, per credential 20 API keys and connected agents.

There is no cap on how many datasets or maps you may keep, and no storage quota in this beta.

SQL queries

LimitValue
Rows returned1000
Queries per minute, in the app30
Queries per minute, per API key or agent10
Time before a query is given up onabout 70 seconds

Queries also run under a memory ceiling in their sandbox. A query that exceeds either bound is stopped rather than queued — narrow it with a WHERE clause or a bounding box. The row cap makes this a tool for checking and aggregating, not for exporting: to get a large result out, make it a model.

API requests

LimitValue
Requests per minute, per API key120

Exceeding it returns 429 with a Retry-After header saying how long to wait. Honour it rather than retrying immediately.

Things there is no limit on

  • The number of datasets, models, maps or projects you keep.
  • How many share links you mint, or how many people open one.
  • Map views and tile requests.

Known gaps in this beta

Stated plainly, because finding these out by hitting them is worse:

  • No scheduling. Nothing re-fetches, re-runs or refreshes on its own. Reprocessing an import and re-running a model are both manual.
  • Models do not cascade. Refreshing an input does not re-run the models built on it; you re-run them yourself, in order.
  • No raster support, and no rendering of a map to an image. The preview card on a share link is a generated graphic, not a screenshot.
  • No self-service sign-up. Accounts are created by invitation — request access.
  • No SLA, and no guarantee of data retention. Keep your source files. mapbench is a place to tile, style and publish them, not the only copy.
  • Sharing has no expiry or rotation in the web app — both exist through the API. See Publish and share a map.

See also