Skip to content

50,000 free calls a month, card-free. Get an API key →

Documentation menu
docs / api
Reference

API endpoints

84 public endpoints, one page each. Every page on this index is generated at build time from the document the gateway publishes at /openapi.json, so what you read here is what that deployment declares, not a second copy of it maintained by hand.

gateway 0.3.0 · read from https://api.mapmap.ai/openapi.json on 2026-09-17 · 33 admin and console operations are not listed

The rules these endpoints share, authentication, coordinate order, quotas, the error model and the ADR tunnel codes, are defined once on API conventions. For the narrative version with worked requests, read the API reference guide.

assets

Static map assets: SDF font glyph ranges and sprite sheets referenced by compiled styles. Public, unmetered, immutable caching

boundaries

Administrative boundary lookup: point-in-polygon against the Valhalla admins.sqlite. Standard price class, metered per request. 501 unless the operator sets SN_ADMIN_BOUNDARIES_DB. OSM-derived (ODbL) — see docs/THIRD-PARTY-NOTICES.md

clearance

Measured overhead clearance along a route, from baked survey geometry (crates/sn-clearance). A within-survey difference with a stated uncertainty bound, never a signed or legal clearance and never a pass over ground the survey did not cover. Standard price class, never premium: a safety check carries no extra charge. 501 unless the deployment publishes at least one clearance artefact

collection

compliance

Metered ADR compliance endpoints

coordinates

Reprojection between reference systems, and the published list of the ones it will do it for. Every supported CRS states its own datum-shift error, and a code outside the table is refused by name rather than approximated. Standard price class, one unit per request whatever it carries

elevation

Point and along-route elevation via Valhalla's native /height action. Honest per-sample source/resolution metadata and a null (never a guess) wherever the engine has no DEM tile coverage. Standard price class, metered per request. 501 unless the operator sets SN_ELEVATION_ENABLED=true (off by default until DEM tiles are staged)

feedback

Integration retros: the structured end-of-integration report an agent (or human) submits once — what was built, problems, gotchas, wins and docs gaps. Key-authenticated, never charged, rate-limited per key. Content is stored verbatim and treated as untrusted text

geocode

geocoding

Metered Photon geocoding proxy (forward and reverse): GeoJSON passthrough, Standard price class. 501 unless the operator sets SN_PHOTON_URL

map-issues

User map-error reports ("Report a map issue"): a pin, a category and an optional note, key-authenticated and metered at the Standard price class. Reports never edit map data directly — the team triages them (see the admin surface) and verified fixes flow into the deployment's OSM-overrides file and upstream OpenStreetMap contributions

meta

Unauthenticated service metadata

oauth

OAuth 2.1 authorization server: RFC 8414 discovery, RFC 7591 dynamic client registration, and the token endpoint. Public clients only (PKCE S256, no client secrets), rotating refresh tokens with reuse-revokes-chain, and client-id metadata document (CIMD) clients. An issued `sno_` access token resolves in the auth layer to a real API key, so every existing quota, metering and billing rule applies unchanged. The interactive authorization page lives on the website (SN_OAUTH_AUTHORIZE_URL); 501 unless the deployment has one

places

Customer places ("bring your own places"): per-key proprietary place datasets with full-text and nearest search over the caller's own tantivy index. Never merged into OSM-derived data (ODbL boundary). All routes key-authenticated and metered at the Standard price class

pointclouds

routing

Metered routing endpoints

POST/centroid

Finds the least-cost meeting point of several locations (see module docs).

POST/isochrone

Isochrone endpoint (see module docs).

POST/locate

Snaps each location to the road graph (see module docs).

POST/matrix

Matrix endpoint (see module docs).

POST/optimise

Route-optimisation endpoint (see module docs). `/optimize` is an alias.

POST/optimise/replan

Re-plan a fleet mid-shift (see module docs). `/optimize/replan` is an alias.

POST/route

Valhalla-compatible route endpoint (see module docs).

POST/route/along

Along-route search endpoint (see module docs).

POST/route/progress

Progress endpoint (see module docs).

POST/route/report

Report endpoint (see module docs).

GET/route/v1/{profile}/{coordinates}

OSRM-compatible route endpoint (see module docs).

POST/trace_attributes

Map matching to per-edge attributes (see module docs).

POST/trace_route

Map matching to a route (see module docs).

POST/v1/cameras/along

Safety cameras along a route shape (see module docs).

POST/v1/charging/along

Best EV chargers along a route (see module docs).

POST/v1/cluster

Capacity-constrained clustering (see module docs).

POST/v1/ev/plan

Plans an EV journey with its charge stops (see module docs).

POST/v1/fuel/along

Cheapest fuel along a route (see module docs).

POST/v1/incidents/along

Traffic incidents and closures along a route shape (see module docs).

POST/v1/jobs/matrix

Submit a matrix to the asynchronous lane.

POST/v1/jobs/optimise

Submit an optimisation problem to the asynchronous lane.

POST/v1/jobs/replan

Submit a mid-shift re-plan to the asynchronous lane.

POST/v1/weather/along

Forecast weather along a route, aligned to each point's ETA (see module docs).

GET/v1/zones

The curated UK zone dataset, with provenance.

self-serve

Agent-first self-serve keys: one-call signup, magic-link verification, quota-free status poll. Beyond the free tier, 402 responses use the x402 machine-payment wire format

static-maps

Rendered map images for callers that can look at a map but cannot run one: camera, overlays (encoded polyline, GeoJSON, markers) and format in the query string, or the GeoJSON overlay in a POST body. The gateway renders nothing itself — it checks the key, meters the call and proxies the same renderer the keyless website route uses, so the keyed image and the keyless one cannot disagree. The renderer's own ETag and Cache-Control pass through untouched. Standard price class, a flat block of units per image

styles

Hosted style API (MapMap Studio): versioned, immutable MapLibre styles compiled from sn-style theme documents. Compiled-style and theme reads are public and unmetered (browser map clients fetch them by bare URL); listing is authenticated and scoped to the caller's own styles; publishes are metered at the Standard price class and enforce ownership

territories

Metered territory update-channel downloads (signed static files; devices verify signatures and hashes themselves)

tiles

Hosted vector-tiles API: per-tile MVT, TileJSON and a MapLibre style from the territory PMTiles. Standard price class, metered per request

timezone

Timezone-at-coordinate: IANA zone id, UTC offset, DST offset and abbreviation at a given timestamp. Backed by Valhalla's own timezones.sqlite boundary database and chrono-tz's IANA rules. 501 unless the operator sets SN_TIMEZONE_SQLITE. Standard price class, metered per request