Skip to content
Styles API

Styles API

Ready-made styles for MapLibre GL JS and compatible clients, plus the fonts and sprites they use. Static Tiles render a style into raster tiles for clients without vector support.

Base URL: https://api.mapx.at · Rate-limit zone: search (10/s), tiles (100/s), static (5/s) · Guide: Maps

List styles

GET /v1/styles

Available style ids: streets, streets-dawn, streets-dusk, streets-night, traffic-day, satellite, satellite-streets, outdoors.

Example

curl -s -H "Authorization: Bearer YOUR_TOKEN" "https://api.mapx.at/v1/styles" | jq

Example response

[
  {
    "id": "streets",
    "url": "https://api.mapx.at/v1/styles/streets"
  }
]

Errors (details: error catalog)

StatusMeaning
401Token missing or invalid (missing-token, invalid-token, token-expired)
403Token not allowed here (origin-not-allowed, origin-missing, pk-not-allowed, app-not-allowed, token-blocked, ip-not-allowed)
429Rate limit exceeded, wait Retry-After seconds

MapLibre / Mapbox style

GET /v1/styles/{id}

Style JSON (version 8), generated from the style generator. Old ids (karte, karte-morgen, karte-abend, karte-nacht, karte-verkehr, luftbild, hybrid, gelaende) are aliases until 2027-05-31 (Deprecation, Sunset, Link rel=successor-version).

More

Fonts and sprites point to this API, vector sources to PMTiles on tiles.mapx.at. ETag/Last-Modified; If-None-Match gives 304. With sources=tilejson the PMTiles vector/raster sources are replaced by https TileJSON URLs (https://tiles.mapx.at/v1/tiles/<tileset>.json), for clients without PMTiles support such as the MapLibre Native offline manager.

Parameters

NameInTypeRequiredDefaultDescription
idpathstringyes–Style id, optionally with .json
sourcesquerytilejson–tilejson: replace pmtiles:// sources by https TileJSON URLs

Example

curl -s -H "Authorization: Bearer YOUR_TOKEN" "https://api.mapx.at/v1/styles/streets" | jq

Example response

{
  "version": 8,
  "name": "streets",
  "sources": {},
  "layers": []
}

Errors (details: error catalog)

StatusMeaning
401Token missing or invalid (missing-token, invalid-token, token-expired)
403Token not allowed here (origin-not-allowed, origin-missing, pk-not-allowed, app-not-allowed, token-blocked, ip-not-allowed)
404Not found (name, path or position)
429Rate limit exceeded, wait Retry-After seconds

Sprite of a style

GET /v1/styles/{id}/{file}

file: sprite[@2x].json|png for standard icons, sprite-sdf[@2x].json|png for SDF icons. Styles reference this URL.

Parameters

NameInTypeRequiredDefaultDescription
idpathstringyes–Style id
filepathstringyes–sprite[-sdf][@2x].json|png

Example

curl -s -H "Authorization: Bearer YOUR_TOKEN" "https://api.mapx.at/v1/styles/streets/sprite.json" | jq

Example response: application/json · Sprite index (JSON) or atlas (PNG)

Errors (details: error catalog)

StatusMeaning
401Token missing or invalid (missing-token, invalid-token, token-expired)
403Token not allowed here (origin-not-allowed, origin-missing, pk-not-allowed, app-not-allowed, token-blocked, ip-not-allowed)
404Not found (name, path or position)
429Rate limit exceeded, wait Retry-After seconds

Static Tiles: rendered raster tiles of a style

GET /v1/styles/{id}/tiles/{tilesize}/{z}/{x}/{y}

Styles streets*, satellite, satellite-streets, outdoors (old ids as alias). tilesize 256 (standard XYZ, map zoom z-1) or 512 (map zoom z). y with optional @2x and .png (default) or .webp. Labels are rendered with a margin and clipped. No data or below minimum zoom: 404.

More

Zone static. ETag, Cache-Control.

Parameters

NameInTypeRequiredDefaultDescription
idpathstringyes–Style id
tilesizepathstringyes–256 or 512
zpathintegeryes–Zoom
xpathintegeryes–Column
ypathstringyes–Row[@2x][.png|.webp]

Example

curl -s -H "Authorization: Bearer YOUR_TOKEN" "https://api.mapx.at/v1/styles/streets/tiles/512/12/2234/1420" -o result.png

Example response: image/png, image/webp · Image

Errors (details: error catalog)

StatusMeaning
304Not modified (with If-None-Match)
400A parameter is missing or invalid
401Token missing or invalid (missing-token, invalid-token, token-expired)
403Token not allowed here (origin-not-allowed, origin-missing, pk-not-allowed, app-not-allowed, token-blocked, ip-not-allowed)
404Not found (name, path or position)
429Rate limit exceeded, wait Retry-After seconds
503Data temporarily unavailable

List fonts

GET /v1/fonts

Available font names.

Example

curl -s -H "Authorization: Bearer YOUR_TOKEN" "https://api.mapx.at/v1/fonts" | jq

Example response

[
  {
    "name": "Noto Sans Regular"
  }
]

Errors (details: error catalog)

StatusMeaning
401Token missing or invalid (missing-token, invalid-token, token-expired)
403Token not allowed here (origin-not-allowed, origin-missing, pk-not-allowed, app-not-allowed, token-blocked, ip-not-allowed)
429Rate limit exceeded, wait Retry-After seconds

Glyph range

GET /v1/fonts/{fontstack}/{range}.pbf

fontstack: one or more fonts, comma-separated (e.g. Noto Sans Regular,Open Sans Regular); the first font containing a character wins. range: {start}-{start+255}, start divisible by 256 (0-255, 256-511, …). Response application/x-protobuf; ETag, Cache-Control.

Parameters

NameInTypeRequiredDefaultDescription
fontstackpathstringyes–Font name(s), comma-separated
rangepathstringyes–e.g. 0-255

Example

curl -s -H "Authorization: Bearer YOUR_TOKEN" "https://api.mapx.at/v1/fonts/Noto%20Sans%20Regular/0-255.pbf" -o result.bin

Example response: application/x-protobuf · Glyph PBF

Errors (details: error catalog)

StatusMeaning
400A parameter is missing or invalid
401Token missing or invalid (missing-token, invalid-token, token-expired)
403Token not allowed here (origin-not-allowed, origin-missing, pk-not-allowed, app-not-allowed, token-blocked, ip-not-allowed)
404Not found (name, path or position)
429Rate limit exceeded, wait Retry-After seconds

List sprites

GET /v1/sprites

sprite (standard icons) and sprite-sdf (SDF icons, recolorable).

Example

curl -s -H "Authorization: Bearer YOUR_TOKEN" "https://api.mapx.at/v1/sprites" | jq

Example response: application/json · Sprite list

Errors (details: error catalog)

StatusMeaning
401Token missing or invalid (missing-token, invalid-token, token-expired)
403Token not allowed here (origin-not-allowed, origin-missing, pk-not-allowed, app-not-allowed, token-blocked, ip-not-allowed)
429Rate limit exceeded, wait Retry-After seconds

Sprite file without style

GET /v1/sprites/{file}

Parameters

NameInTypeRequiredDefaultDescription
filepathstringyes–sprite[-sdf][@2x].json|png

Example

curl -s -H "Authorization: Bearer YOUR_TOKEN" "https://api.mapx.at/v1/sprites/sprite.json" | jq

Example response: application/json · Sprite index (JSON) or atlas (PNG)

Errors (details: error catalog)

StatusMeaning
401Token missing or invalid (missing-token, invalid-token, token-expired)
403Token not allowed here (origin-not-allowed, origin-missing, pk-not-allowed, app-not-allowed, token-blocked, ip-not-allowed)
404Not found (name, path or position)
429Rate limit exceeded, wait Retry-After seconds

Playground

Playground
curl
The response appears here.