{"openapi":"3.1.0","info":{"title":"mapx API","version":"0.1.0","summary":"Maps, geocoding, routing and elevation for Austria (Mapbox-style, no access token).","description":"Vector and raster tiles, TileJSON, styles, geocoding, Search Box, Address Autofill and Validation, directions, matrix, isochrones, map matching, optimization, static images, tilequery, parcels, elevation, public transit, weather and traffic. All data are official Austrian open data (no OSM).\n\n**Authentication:** none. All endpoints are public and need no token; CORS allows any origin for GET and POST.\n\n**Errors:** `application/problem+json` (RFC 9457) with a stable `type` URI (`https://docs.mapx.at/api/errors/#<code>`), `status`, `title`, `detail`, `code`, and where useful `param` and `allowed`. English by default, German with `Accept-Language: de`.\n\n**Rate limits:** per client IP, enforced at the gateway in zones. Every response carries a `RateLimit-Policy` header describing the zone of the endpoint (`\"search\";q=10;w=1;burst=30` means 10 requests per 1 s window plus a burst of 30). Exceeding it returns 429 with `Retry-After`. Zones: tiles 100/s (burst 200), search 10/s (burst 30), route 5/s (burst 20), elevation 10/s (burst 20), static 5/s (burst 60), heavy 30/min (burst 3 to 5).\n\n**Caching:** tiles, styles, TileJSON and this document carry `ETag` (and `Last-Modified`); send `If-None-Match` to get 304. Every response has a `Server-Timing` header (`router`, `search`, `render`, `total` in ms).\n\n**Data licences:** see the `attribution` fields in the responses and https://docs.mapx.at/lizenz/.","contact":{"name":"mapx","url":"https://docs.mapx.at"},"license":{"name":"CC BY 4.0 (data), see docs","url":"https://docs.mapx.at/lizenz/"}},"servers":[{"url":"https://api.mapx.at","description":"Production"},{"url":"https://tiles.mapx.at","description":"Tile CDN (tiles, TileJSON, fonts, sprites)"},{"url":"https://staging.mapx.at","description":"Staging (pre-release behaviour, no SLA)"}],"security":[],"tags":[{"name":"Meta"},{"name":"Tiles"},{"name":"Styles"},{"name":"Geocoding"},{"name":"Search Box"},{"name":"Address"},{"name":"Directions"},{"name":"Transit"},{"name":"Static images"},{"name":"Geodata"},{"name":"Weather"},{"name":"Climate"},{"name":"Traffic"},{"name":"Optimization"}],"paths":{"/health":{"get":{"tags":["Meta"],"summary":"Liveness probe","description":"Returns `{\"status\":\"ok\"}` while the process is up.","parameters":[],"responses":{"200":{"description":"Alive","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"}},"content":{"application/json":{"example":{"status":"ok"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"default":{"$ref":"#/components/responses/Problem"}},"operationId":"getHealth"}},"/v1/openapi.json":{"get":{"tags":["Meta"],"summary":"This OpenAPI description","description":"OpenAPI 3.1 document of the API. Supports `ETag`/`If-None-Match`.","parameters":[],"responses":{"200":{"description":"OpenAPI 3.1 document","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"}},"content":{"application/json":{}}},"429":{"$ref":"#/components/responses/RateLimited"},"default":{"$ref":"#/components/responses/Problem"}},"operationId":"getOpenApi"}},"/v1/tiles":{"get":{"tags":["Tiles"],"summary":"List tilesets","description":"Name, aliases, type (vector, raster, dem), format, zoom range, bounds, TileJSON URL, attribution and data date (`stand`) per tileset. Old German names (`basis`, `kataster`, `hoehenlinien`, `relief`, `dop`, `dop_flugblock`) are listed under `aliases` and remain valid until 2027-05-31 (responses carry `Deprecation`, `Sunset` and `Link` headers).","parameters":[],"responses":{"200":{"description":"Tilesets","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"}},"content":{"application/json":{"example":{"tilesets":[{"name":"streets","aliases":["basis"],"type":"vector","format":"pbf","tilejson":"https://api.mapx.at/v1/tiles/streets.json","minzoom":0,"maxzoom":14,"bounds":[9.5,46.3,17.2,49.1],"attribution":"...","stand":"2026-10-01"}]}}}},"429":{"$ref":"#/components/responses/RateLimited"},"default":{"$ref":"#/components/responses/Problem"}},"operationId":"listTilesets"}},"/v1/tiles/{tileset}.json":{"get":{"tags":["Tiles"],"summary":"TileJSON 3.0.0","description":"TileJSON of a tileset (names from `/v1/tiles`, plus `dtm` and `dsm`). `ETag`/`Last-Modified`, `If-None-Match` gives 304.","parameters":[{"name":"tileset","in":"path","required":true,"schema":{"type":"string"},"description":"Tileset name"}],"responses":{"200":{"description":"TileJSON","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TileJSON"},"example":{"tilejson":"3.0.0","name":"streets","tiles":["https://tiles.mapx.at/v1/tiles/streets/{z}/{x}/{y}.pbf"],"minzoom":0,"maxzoom":14,"bounds":[9.5,46.3,17.2,49.1]}}}},"404":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/RateLimited"},"default":{"$ref":"#/components/responses/Problem"}},"operationId":"getTileJson"}},"/v1/tiles/{tileset}/{z}/{x}/{y}.{ext}":{"get":{"tags":["Tiles"],"summary":"XYZ tile","description":"`ext` must match the tile type: `pbf` (alias `mvt`) for vector, `webp`, `png` or `jpg` for raster. Missing tile or wrong extension: 404 problem+json. Vector tiles are gzip-compressed (`Content-Encoding: gzip`, decompressed if the client does not accept gzip). `ETag` from the file hash, `If-None-Match` gives 304, `Cache-Control: public`.","parameters":[{"name":"tileset","in":"path","required":true,"schema":{"type":"string"},"description":"Tileset name, see `/v1/tiles`"},{"name":"z","in":"path","required":true,"schema":{"type":"integer"},"description":"Zoom level"},{"name":"x","in":"path","required":true,"schema":{"type":"integer"},"description":"Tile column"},{"name":"y","in":"path","required":true,"schema":{"type":"integer"},"description":"Tile row"},{"name":"ext","in":"path","required":true,"schema":{"type":"string"},"description":"pbf, mvt, webp, png or jpg"}],"responses":{"200":{"description":"Tile","headers":{"ETag":{"$ref":"#/components/headers/ETag"}},"content":{"application/vnd.mapbox-vector-tile":{},"image/webp":{},"image/png":{},"image/jpeg":{}}},"304":{"description":"Not modified"},"400":{"$ref":"#/components/responses/Problem"},"404":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/RateLimited"},"default":{"$ref":"#/components/responses/Problem"}},"operationId":"getTile"}},"/v1/styles":{"get":{"tags":["Styles"],"summary":"List styles","description":"Available style ids: streets, streets-dawn, streets-dusk, streets-night, traffic-day, satellite, satellite-streets, outdoors.","parameters":[],"responses":{"200":{"description":"Style list","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"}},"content":{"application/json":{"example":[{"id":"streets","url":"https://api.mapx.at/v1/styles/streets"}]}}},"429":{"$ref":"#/components/responses/RateLimited"},"default":{"$ref":"#/components/responses/Problem"}},"operationId":"listStyles"}},"/v1/styles/{id}":{"get":{"tags":["Styles"],"summary":"MapLibre / Mapbox style","description":"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`). 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":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"Style id, optionally with `.json`"},{"name":"sources","in":"query","required":false,"schema":{"type":"string","enum":["tilejson"]},"description":"`tilejson`: replace pmtiles:// sources by https TileJSON URLs"}],"responses":{"200":{"description":"Style JSON","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"}},"content":{"application/json":{"example":{"version":8,"name":"streets","sources":{},"layers":[]}}}},"404":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/RateLimited"},"default":{"$ref":"#/components/responses/Problem"}},"operationId":"getStyle"}},"/v1/styles/{id}/{file}":{"get":{"tags":["Styles"],"summary":"Sprite of a style","description":"`file`: `sprite[@2x].json|png` for standard icons, `sprite-sdf[@2x].json|png` for SDF icons. Styles reference this URL.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"Style id"},{"name":"file","in":"path","required":true,"schema":{"type":"string"},"description":"sprite[-sdf][@2x].json|png"}],"responses":{"200":{"description":"Sprite index (JSON) or atlas (PNG)","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"}},"content":{"application/json":{}}},"404":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/RateLimited"},"default":{"$ref":"#/components/responses/Problem"}},"operationId":"getStyleSprite"}},"/v1/styles/{id}/tiles/{tilesize}/{z}/{x}/{y}":{"get":{"tags":["Styles"],"summary":"Static Tiles: rendered raster tiles of a style","description":"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. Zone `static`. `ETag`, `Cache-Control`.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"Style id"},{"name":"tilesize","in":"path","required":true,"schema":{"type":"string"},"description":"256 or 512"},{"name":"z","in":"path","required":true,"schema":{"type":"integer"},"description":"Zoom"},{"name":"x","in":"path","required":true,"schema":{"type":"integer"},"description":"Column"},{"name":"y","in":"path","required":true,"schema":{"type":"string"},"description":"Row[@2x][.png|.webp]"}],"responses":{"200":{"description":"Image","content":{"image/png":{},"image/webp":{}}},"304":{"description":"Not modified"},"400":{"$ref":"#/components/responses/Problem"},"404":{"$ref":"#/components/responses/Problem"},"503":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/RateLimited"},"default":{"$ref":"#/components/responses/Problem"}},"operationId":"getStaticTile"}},"/v1/fonts":{"get":{"tags":["Styles"],"summary":"List fonts","description":"Available font names.","parameters":[],"responses":{"200":{"description":"Font list","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"}},"content":{"application/json":{"example":[{"name":"Noto Sans Regular"}]}}},"429":{"$ref":"#/components/responses/RateLimited"},"default":{"$ref":"#/components/responses/Problem"}},"operationId":"listFonts"}},"/v1/fonts/{fontstack}/{range}.pbf":{"get":{"tags":["Styles"],"summary":"Glyph range (Mapbox Fonts form)","description":"`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":[{"name":"fontstack","in":"path","required":true,"schema":{"type":"string"},"description":"Font name(s), comma-separated"},{"name":"range","in":"path","required":true,"schema":{"type":"string"},"description":"e.g. 0-255"}],"responses":{"200":{"description":"Glyph PBF","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"}},"content":{"application/x-protobuf":{}}},"400":{"$ref":"#/components/responses/Problem"},"404":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/RateLimited"},"default":{"$ref":"#/components/responses/Problem"}},"operationId":"getGlyphs"}},"/v1/sprites":{"get":{"tags":["Styles"],"summary":"List sprites","description":"`sprite` (standard icons) and `sprite-sdf` (SDF icons, recolorable).","parameters":[],"responses":{"200":{"description":"Sprite list","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"}},"content":{"application/json":{}}},"429":{"$ref":"#/components/responses/RateLimited"},"default":{"$ref":"#/components/responses/Problem"}},"operationId":"listSprites"}},"/v1/sprites/{file}":{"get":{"tags":["Styles"],"summary":"Sprite file without style","description":"","parameters":[{"name":"file","in":"path","required":true,"schema":{"type":"string"},"description":"sprite[-sdf][@2x].json|png"}],"responses":{"200":{"description":"Sprite index (JSON) or atlas (PNG)","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"}},"content":{"application/json":{}}},"404":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/RateLimited"},"default":{"$ref":"#/components/responses/Problem"}},"operationId":"getSprite"}},"/v1/speedlimits":{"get":{"tags":["Directions"],"summary":"Speed limits (GIP.at, statutory limits only)","description":"Statutory speed limits of the road network as compact GeoJSON, either inside a box (`bbox`, at most 0.08 square degrees, about 28 x 28 km) or in a corridor around a route (`corridor` as polyline6, e.g. `routes[].geometry` with `geometries=polyline6`, plus `buffer` in meters). One LineString feature per road link in digitizing direction with `limit_kmh`, `direction` (`both`, `forward` or `backward` relative to the geometry) and `id` (GIP link id); if the directions differ there is one feature per direction. Only statutory limits (5, 10, 20 ... 130 km/h, including the default limits inside built-up areas and on rural roads) are returned. Links without a value (many motorways) and modeled speeds such as 53 or 84 km/h are left out. At most 60,000 features. Source: GIP.at (CC BY 4.0). Zone `route`.","parameters":[{"name":"bbox","in":"query","required":false,"schema":{"type":"string"},"description":"minlon,minlat,maxlon,maxlat in degrees, at most 0.08 square degrees; instead of corridor"},{"name":"corridor","in":"query","required":false,"schema":{"type":"string"},"description":"Route as polyline6 (at most 20,000 points); instead of bbox"},{"name":"buffer","in":"query","required":false,"schema":{"type":"string"},"description":"With corridor only: meters around the route, 1 to 500, default 30"}],"responses":{"200":{"description":"Speed limits","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"}},"content":{"application/geo+json":{"schema":{"$ref":"#/components/schemas/SpeedLimits"},"example":{"type":"FeatureCollection","legal_only":true,"attribution":"Datenquelle: GIP.at - Graphenintegrations-Plattform, CC BY 4.0","features":[{"type":"Feature","geometry":{"type":"LineString","coordinates":[[15.3294,48.2272],[15.3301,48.2275]]},"properties":{"limit_kmh":50,"direction":"both","id":1543486}}]}}}},"400":{"$ref":"#/components/responses/Problem"},"502":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/RateLimited"},"default":{"$ref":"#/components/responses/Problem"}},"operationId":"getSpeedLimits"}},"/v1/corridor-graph":{"get":{"tags":["Directions"],"summary":"Corridor graph for offline rerouting (GIP.at)","description":"Compact binary subgraph of the road network around a route, for recomputing a route without network (for example in a dead zone after a wrong turn). `polyline` is the route as polyline6 (e.g. `routes[].geometry` with `geometries=polyline6`), `buffer` the radius around it in meters (default 3000, at most 5000). The response body is a gzip stream (`application/vnd.mapx.corridor-graph+gzip`, no `Content-Encoding`) of a `MXCG` v1 file: a version header and the graph id of the server graph, nodes (microdegrees), directed arcs with travel time and weight in ms (the same values the router uses, so offline costs equal server costs), simplified link geometry, road name and reference, road class (FRC/FOW), maximum speed with a statutory flag, link flags (roundabout, ramp, toll, urban, motorway) and the turn restrictions between the arcs including derived U-turn bans. Arcs that cannot be driven are left out. Typically 1 to 3 MB per 100 km of route (compressed). Source: GIP.at (CC BY 4.0). Zone `heavy`.","parameters":[{"name":"polyline","in":"query","required":true,"schema":{"type":"string"},"description":"Route as polyline6 (at most 20,000 points)"},{"name":"profile","in":"query","required":false,"schema":{"type":"string"},"description":"driving (default), cycling or walking"},{"name":"buffer","in":"query","required":false,"schema":{"type":"string"},"description":"Meters around the route, 100 to 5000, default 3000"}],"responses":{"200":{"description":"Corridor graph (gzip of MXCG v1)","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"}},"content":{"application/vnd.mapx.corridor-graph+gzip":{}}},"400":{"$ref":"#/components/responses/Problem"},"404":{"$ref":"#/components/responses/Problem"},"502":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/RateLimited"},"default":{"$ref":"#/components/responses/Problem"}},"operationId":"getCorridorGraph"}},"/v1/geocode":{"get":{"tags":["Geocoding"],"summary":"Forward geocoding (Mapbox form)","description":"Search over the official address register, streets, places, municipalities, districts, postcodes and parcels. Road kilometers: `B83 km 329,7`, `A1 km 41` or `L190 km 3.5` (class A, S, B or L, number, the word `km`) return the point on the road at that kilometer as `place_type` `road_ref` with `properties.road_ref` (`ref`, `km`); the index holds a point every 0.1 km on motorways, expressways and federal roads and every 0.5 km on state roads (GIP.at), the nearest one is returned, the same state road number in several states gives several hits. Response: FeatureCollection with `place_type`, `place_name`, `center`, `geometry`, `bbox`. Always pass `types` for cheap queries.","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string"},"description":"Search text (also path form `/v1/geocode/{q}.json`)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":10},"description":"1 to 10, default 5"},{"name":"types","in":"query","required":false,"schema":{"type":"string"},"description":"Comma-separated result types: address, street, locality, place, district, region, postcode, poi, parcel (parcels only; input such as `KG 14105 Gst 102/3`, `14105/102/3`, `Landeck .102`), road_ref (road kilometer; input such as `B83 km 329,7`, `A1 km 41`, `L190 km 3.5`)"},{"name":"bbox","in":"query","required":false,"schema":{"type":"string"},"description":"minlon,minlat,maxlon,maxlat"},{"name":"proximity","in":"query","required":false,"schema":{"type":"string"},"description":"lon,lat; ranks equal matches by distance"}],"responses":{"200":{"description":"FeatureCollection","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"}},"content":{"application/geo+json":{"schema":{"$ref":"#/components/schemas/FeatureCollection"},"example":{"type":"FeatureCollection","query":["herrengasse","13","wien"],"features":[{"type":"Feature","id":"address-1234567","place_type":["address"],"place_name":"Herrengasse 13, 1010 Wien","text":"Herrengasse 13","center":[16.3665,48.2096],"geometry":{"type":"Point","coordinates":[16.3665,48.2096]},"properties":{}}],"attribution":"BEV Adressregister, CC BY 4.0"}}}},"400":{"$ref":"#/components/responses/Problem"},"502":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/RateLimited"},"default":{"$ref":"#/components/responses/Problem"}},"operationId":"geocodeForward"}},"/v1/geocode/{q}":{"get":{"tags":["Geocoding"],"summary":"Forward geocoding, Mapbox path form","description":"Same as `/v1/geocode?q=...`; the search text is the path segment (optionally with `.json`).","parameters":[{"name":"q","in":"path","required":true,"schema":{"type":"string"},"description":"Search text, URL-encoded"},{"name":"limit","in":"query","required":false,"schema":{"type":"string"},"description":"1 to 10, default 5"},{"name":"types","in":"query","required":false,"schema":{"type":"string"},"description":"Comma-separated result types: address, street, locality, place, district, region, postcode, poi, parcel (parcels only; input such as `KG 14105 Gst 102/3`, `14105/102/3`, `Landeck .102`), road_ref (road kilometer; input such as `B83 km 329,7`, `A1 km 41`, `L190 km 3.5`)"},{"name":"bbox","in":"query","required":false,"schema":{"type":"string"},"description":"minlon,minlat,maxlon,maxlat"},{"name":"proximity","in":"query","required":false,"schema":{"type":"string"},"description":"lon,lat"}],"responses":{"200":{"description":"FeatureCollection","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"}},"content":{"application/geo+json":{"schema":{"$ref":"#/components/schemas/FeatureCollection"},"example":{"type":"FeatureCollection","query":["herrengasse","13","wien"],"features":[{"type":"Feature","id":"address-1234567","place_type":["address"],"place_name":"Herrengasse 13, 1010 Wien","text":"Herrengasse 13","center":[16.3665,48.2096],"geometry":{"type":"Point","coordinates":[16.3665,48.2096]},"properties":{}}],"attribution":"BEV Adressregister, CC BY 4.0"}}}},"400":{"$ref":"#/components/responses/Problem"},"502":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/RateLimited"},"default":{"$ref":"#/components/responses/Problem"}},"operationId":"geocodeForwardPath"}},"/v1/reverse":{"get":{"tags":["Geocoding"],"summary":"Reverse geocoding (nearest address, street, place)","description":"Nearest features around a point, nearest first. Use `types` to restrict (e.g. `address`).","parameters":[{"name":"lng","in":"query","required":true,"schema":{"type":"string"},"description":"Longitude (also `lon`, `longitude`)"},{"name":"lat","in":"query","required":true,"schema":{"type":"string"},"description":"Latitude"},{"name":"radius","in":"query","required":false,"schema":{"type":"string"},"description":"Meters, 1 to 5000, default 500"},{"name":"limit","in":"query","required":false,"schema":{"type":"string"},"description":"1 to 10, default 1"},{"name":"types","in":"query","required":false,"schema":{"type":"string"},"description":"Like geocode"}],"responses":{"200":{"description":"FeatureCollection, nearest first","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"}},"content":{"application/geo+json":{"schema":{"$ref":"#/components/schemas/FeatureCollection"},"example":{"type":"FeatureCollection","query":["herrengasse","13","wien"],"features":[{"type":"Feature","id":"address-1234567","place_type":["address"],"place_name":"Herrengasse 13, 1010 Wien","text":"Herrengasse 13","center":[16.3665,48.2096],"geometry":{"type":"Point","coordinates":[16.3665,48.2096]},"properties":{}}],"attribution":"BEV Adressregister, CC BY 4.0"}}}},"400":{"$ref":"#/components/responses/Problem"},"502":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/RateLimited"},"default":{"$ref":"#/components/responses/Problem"}},"operationId":"geocodeReverse"}},"/v1/searchbox/suggest":{"get":{"tags":["Search Box"],"summary":"Search Box: suggestions (Mapbox Search Box form)","description":"Like geocode, but a suggestion list without coordinates (`mapbox_id` for `/retrieve`), with category (`poi_category`, `poi_category_ids`, `maki`) and `context`. Official POIs, no OSM data.","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string"},"description":"Search text"},{"name":"session_token","in":"query","required":false,"schema":{"type":"string"},"description":"Arbitrary session id (up to 128 characters), no effect"},{"name":"proximity","in":"query","required":false,"schema":{"type":"string"},"description":"lon,lat"},{"name":"types","in":"query","required":false,"schema":{"type":"string"},"description":"region, postcode, district, place, locality, street, address, poi, parcel, road_ref (country, neighborhood, category have no effect)"},{"name":"poi_category","in":"query","required":false,"schema":{"type":"string"},"description":"Comma-separated category ids (English, e.g. `pharmacy`; old German ids deprecated until 2027-05-31), see `/v1/searchbox/list/category`"},{"name":"bbox","in":"query","required":false,"schema":{"type":"string"},"description":"minlon,minlat,maxlon,maxlat"},{"name":"limit","in":"query","required":false,"schema":{"type":"string"},"description":"1 to 10, default 5"}],"responses":{"200":{"description":"Suggestions","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Suggestions"},"example":{"suggestions":[{"name":"Stephansdom","mapbox_id":"poi-4711","feature_type":"poi","place_formatted":"Place of worship, Wien","poi_category":["place_of_worship"]}],"attribution":"..."}}}},"400":{"$ref":"#/components/responses/Problem"},"502":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/RateLimited"},"default":{"$ref":"#/components/responses/Problem"}},"operationId":"searchboxSuggest"}},"/v1/searchbox/retrieve/{id}":{"get":{"tags":["Search Box"],"summary":"Search Box: resolve a suggestion","description":"FeatureCollection with one feature (point, bbox, coordinates, context); 404 for an unknown id.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"`mapbox_id` from suggest"},{"name":"session_token","in":"query","required":false,"schema":{"type":"string"},"description":"As in suggest"},{"name":"proximity","in":"query","required":false,"schema":{"type":"string"},"description":"lon,lat, only for the distance"}],"responses":{"200":{"description":"FeatureCollection","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"}},"content":{"application/geo+json":{"schema":{"$ref":"#/components/schemas/FeatureCollection"},"example":{"type":"FeatureCollection","features":[{"type":"Feature","geometry":{"type":"Point","coordinates":[16.3731,48.2085]},"properties":{"name":"Stephansdom"}}]}}}},"400":{"$ref":"#/components/responses/Problem"},"404":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/RateLimited"},"default":{"$ref":"#/components/responses/Problem"}},"operationId":"searchboxRetrieve"}},"/v1/searchbox/category/{category}":{"get":{"tags":["Search Box"],"summary":"Search Box: places of a category","description":"Places of the category (several comma-separated), nearest first with `proximity`. Ids are English (e.g. `pharmacy`, `train_station`); the old German ids (`apotheke`, `bahnhof`, ...) work as aliases until 2027-05-31 (`Deprecation`, `Sunset`).","parameters":[{"name":"category","in":"path","required":true,"schema":{"type":"string"},"description":"Category id(s)"},{"name":"proximity","in":"query","required":false,"schema":{"type":"string"},"description":"lon,lat"},{"name":"bbox","in":"query","required":false,"schema":{"type":"string"},"description":"minlon,minlat,maxlon,maxlat"},{"name":"limit","in":"query","required":false,"schema":{"type":"string"},"description":"1 to 25, default 10"}],"responses":{"200":{"description":"FeatureCollection","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"}},"content":{"application/geo+json":{"schema":{"$ref":"#/components/schemas/FeatureCollection"},"example":{"type":"FeatureCollection","features":[{"type":"Feature","geometry":{"type":"Point","coordinates":[16.37,48.21]},"properties":{"name":"Apotheke Zum Hirschen"}}]}}}},"400":{"$ref":"#/components/responses/Problem"},"502":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/RateLimited"},"default":{"$ref":"#/components/responses/Problem"}},"operationId":"searchboxCategory"}},"/v1/searchbox/list/category":{"get":{"tags":["Search Box"],"summary":"Search Box: category list","description":"Stable category ids (`canonical_id`), name and Maki icon.","parameters":[{"name":"language","in":"query","required":false,"schema":{"type":"string"},"description":"de (default) or en"}],"responses":{"200":{"description":"Category list","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"}},"content":{"application/json":{"example":{"listItems":[{"canonical_id":"pharmacy","icon":"pharmacy","name":"Apotheke"}]}}}},"400":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/RateLimited"},"default":{"$ref":"#/components/responses/Problem"}},"operationId":"searchboxListCategories"}},"/v1/autofill/suggest":{"get":{"tags":["Address"],"summary":"Address Autofill: suggestions","description":"Official address register only (BEV). Completes street, house number, postcode and place; fields separated in `suggestions[]`.","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string"},"description":"Partial input, e.g. `Hauptpl 3 Mel`"},{"name":"session_token","in":"query","required":false,"schema":{"type":"string"},"description":"Session id (1 to 64 characters), echoed back"},{"name":"proximity","in":"query","required":false,"schema":{"type":"string"},"description":"lon,lat, prefers near addresses"},{"name":"limit","in":"query","required":false,"schema":{"type":"string"},"description":"1 to 10, default 5"}],"responses":{"200":{"description":"Suggestions","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Suggestions"},"example":{"session_token":"abc-1","suggestions":[{"id":"address-1234567","address_line1":"Hauptplatz 3","street":"Hauptplatz","housenumber":"3","postcode":"3390","place":"Melk","full_address":"Hauptplatz 3, 3390 Melk","coordinates":[15.3298,48.2273]}]}}}},"400":{"$ref":"#/components/responses/Problem"},"502":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/RateLimited"},"default":{"$ref":"#/components/responses/Problem"}},"operationId":"autofillSuggest"}},"/v1/autofill/retrieve/{id}":{"get":{"tags":["Address"],"summary":"Address Autofill: retrieve the chosen address","description":"`id` from `suggestions[].id` (`address-<AdrCD>`). FeatureCollection with one point feature, properties as in suggest.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"Address id from suggest"},{"name":"session_token","in":"query","required":false,"schema":{"type":"string"},"description":"As in suggest"}],"responses":{"200":{"description":"FeatureCollection","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"}},"content":{"application/geo+json":{"schema":{"$ref":"#/components/schemas/FeatureCollection"},"example":{"type":"FeatureCollection","features":[{"type":"Feature","geometry":{"type":"Point","coordinates":[15.3298,48.2273]},"properties":{"name":"Hauptplatz 3"}}]}}}},"400":{"$ref":"#/components/responses/Problem"},"404":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/RateLimited"},"default":{"$ref":"#/components/responses/Problem"}},"operationId":"autofillRetrieve"}},"/v1/address/validate":{"get":{"tags":["Address"],"summary":"Address Validation (free text or structured)","description":"Checks an address against the official register. `status`: match | corrected | ambiguous | not_found. Returns the normalized address, `confidence` (0 to 1), `deviations[]` per field (kind: spelling | wrong | added), coordinate, `id` and `adrcd`. Understands Str./Straße, abbreviations, umlauts and ß. `ambiguous` returns `candidates[]` (up to 5) instead of `address`.","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string"},"description":"Free text, e.g. `Hauptstr. 12a, 3390 Melk` (or structured fields)"},{"name":"street","in":"query","required":false,"schema":{"type":"string"},"description":"Street"},{"name":"housenumber","in":"query","required":false,"schema":{"type":"string"},"description":"House number"},{"name":"postcode","in":"query","required":false,"schema":{"type":"string"},"description":"Postcode"},{"name":"place","in":"query","required":false,"schema":{"type":"string"},"description":"Place"}],"responses":{"200":{"description":"Validation result","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"}},"content":{"application/json":{"example":{"status":"corrected","confidence":0.93,"address":{"street":"Hauptstraße","housenumber":"12a","postcode":"3390","place":"Melk"},"deviations":[{"field":"street","kind":"spelling"}],"id":"address-1234567","coordinates":[15.33,48.23]}}}},"400":{"$ref":"#/components/responses/Problem"},"502":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/RateLimited"},"default":{"$ref":"#/components/responses/Problem"}},"operationId":"validateAddress"},"post":{"tags":["Address"],"summary":"Address Validation (JSON body)","description":"Same as GET with the fields in a JSON object (`q` or `street`, `housenumber`, `postcode`, `place`). At most 16 KB.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"q":{"type":"string"},"street":{"type":"string"},"housenumber":{"type":"string"},"postcode":{"type":"string"},"place":{"type":"string"}}},"example":{"street":"Hauptstr.","housenumber":"12a","postcode":"3390"}}}},"responses":{"200":{"description":"Validation result","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"}},"content":{"application/json":{"example":{"status":"corrected","confidence":0.93,"address":{"street":"Hauptstraße","housenumber":"12a","postcode":"3390","place":"Melk"},"deviations":[{"field":"street","kind":"spelling"}],"id":"address-1234567","coordinates":[15.33,48.23]}}}},"400":{"$ref":"#/components/responses/Problem"},"502":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/RateLimited"},"default":{"$ref":"#/components/responses/Problem"}},"operationId":"validateAddressPost"}},"/v1/geocode/batch":{"post":{"tags":["Geocoding"],"summary":"Batch geocoding (up to 1000 requests)","description":"JSON array; each item has `q` or structured `street`/`housenumber`/`postcode`/`place`, optional `types` (string or list), `limit` (1 to 10), `proximity` [lon,lat], `bbox`. Response: array of FeatureCollections in input order. Requests run in batches via Meilisearch multi-search (at most 4 in parallel). At most 512 KB. Zone `heavy`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"array","minItems":1,"maxItems":1000,"items":{"type":"object","properties":{"q":{"type":"string"},"street":{"type":"string"},"housenumber":{"type":"string"},"postcode":{"type":"string"},"place":{"type":"string"},"types":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"limit":{"type":"integer","minimum":1,"maximum":10},"proximity":{"type":"array","items":{"type":"number"},"minItems":2,"maxItems":2},"bbox":{"type":"array","items":{"type":"number"},"minItems":4,"maxItems":4}}}},"example":[{"q":"Herrengasse 13 Wien","types":"address","limit":1},{"street":"Hauptplatz","housenumber":"3","postcode":"3390"}]}}},"responses":{"200":{"description":"Array of FeatureCollections","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"}},"content":{"application/json":{"example":[{"type":"FeatureCollection","query":["herrengasse","13","wien"],"features":[{"type":"Feature","id":"address-1234567","place_type":["address"],"place_name":"Herrengasse 13, 1010 Wien","text":"Herrengasse 13","center":[16.3665,48.2096],"geometry":{"type":"Point","coordinates":[16.3665,48.2096]},"properties":{}}],"attribution":"BEV Adressregister, CC BY 4.0"}]}}},"400":{"$ref":"#/components/responses/Problem"},"405":{"$ref":"#/components/responses/Problem"},"502":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/RateLimited"},"default":{"$ref":"#/components/responses/Problem"}},"operationId":"geocodeBatch"}},"/v1/directions/{profile}/{coordinates}":{"get":{"tags":["Directions"],"summary":"Routing (Mapbox Directions form, GIP.at)","description":"Trucks (`driving-truck`, over 3.5 t): vehicle size via `weight`, `height`, `width`, `length`, `truck_type`; roads are blocked per vehicle (weight-class, semi and trailer bans, height/width/weight/length limits). Truck speeds: at most 80 km/h on motorways, 70 on rural roads, 50 in built-up areas. District-wide bans (free-text ordinances) are not routed; affected roads appear as `steps[].notices[]` (`type: truck_restriction`). Responses add `routes[].truck` (the vehicle used) and `routes[].toll.truck_go_km` (kilometers subject to the GO toll; per step `truck_go_m`). 2 to 25 coordinates; legs are computed individually. Car routes (`driving`) contain `routes[].toll` (vignette and special-toll data), `toll_road`, `toll_road_m` and `steps[].intersections[].classes`; toll source ASFINAG, CC BY 4.0. From the GIP, steps additionally carry `ref`, `destinations`, `milestone`, `maxspeed`, `ascent_m`, `descent_m` and (cycling/walking) `grade_pct`, for cycling and cycling-mtb also `bike_infrastructure` (cycleway, lane, shared, none) and `surface` (paved, cobblestone, unpaved, offroad, unknown); `routes[].summary` has ascent, descent, max grade and elevation range. The default `overview=simplified` returns a simplified geometry, `steps=true` adds step geometry and intersections. Closures: `driving` and `driving-traffic` avoid binding full closures from the traffic reports (EVIS/ASFINAG) and list them in `routes[].closures_avoided`; `driving` without active closures along the route is unchanged. Navigation: `steps=true` with `voice_instructions=true` and/or `banner_instructions=true` adds Mapbox-style voice and banner instructions (all road profiles, texts in `language`). Speed limits: `maxspeed` (step and annotation) is `{speed, unit, legal}`; `legal: true` marks a statutory limit (5, 10, 20 ... 130 km/h), `legal: false` a modeled GIP speed (e.g. 53, 84) that is not a limit; `{unknown: true}` without a value (backward compatible: `speed` and `unit` are unchanged). For limits along a corridor see `/v1/speedlimits`. Zone `route`.","parameters":[{"name":"profile","in":"path","required":true,"schema":{"type":"string"},"description":"driving, driving-traffic (with current traffic and closures), driving-truck (trucks over 3.5 t; vehicle size via weight/height/width/length/truck_type), cycling, cycling-mtb or walking (`mapbox/` prefix allowed)"},{"name":"coordinates","in":"path","required":true,"schema":{"type":"string"},"description":"lon,lat;lon,lat;..."},{"name":"steps","in":"query","required":false,"schema":{"type":"string"},"description":"true for turn-by-turn steps (with maneuvers and intersections)"},{"name":"geometries","in":"query","required":false,"schema":{"type":"string"},"description":"geojson (default) | polyline | polyline6"},{"name":"overview","in":"query","required":false,"schema":{"type":"string"},"description":"simplified (default, simplified route geometry), full (every vertex) or false (no geometry)"},{"name":"language","in":"query","required":false,"schema":{"type":"string"},"description":"de (default) or en"},{"name":"alternatives","in":"query","required":false,"schema":{"type":"string"},"description":"true (up to 2), false or 0 to 3; only with exactly 2 coordinates. Alternatives are built via laterally offset waypoints and appear as additional `routes[]`"},{"name":"annotations","in":"query","required":false,"schema":{"type":"string"},"description":"duration, distance, speed, maxspeed, elevation, weather_warnings (comma-separated; `weather_warnings` adds `routes[].weather_warnings`, the official warnings whose area the route crosses, without geometry): `legs[].annotation` per geometry segment; speed in m/s, maxspeed `[{speed, unit: km/h, legal} | {unknown: true}]` (driving only; `legal` is true for a statutory limit and false for a modeled speed such as 53 or 84 that must not be shown as a limit), elevation = mean segment height in m"},{"name":"radiuses","in":"query","required":false,"schema":{"type":"string"},"description":"Search radius per coordinate in meters, semicolon-separated, or `unlimited`"},{"name":"approaches","in":"query","required":false,"schema":{"type":"string"},"description":"unrestricted or curb per coordinate (validated, not yet used by the router)"},{"name":"bearings","in":"query","required":false,"schema":{"type":"string"},"description":"degrees,tolerance per coordinate (validated, not yet used by the router)"},{"name":"incidents","in":"query","required":false,"schema":{"type":"string"},"description":"true/false: traffic incidents along the leg as `legs[].incidents`; default true for driving-traffic, otherwise false; cars only"},{"name":"exclude","in":"query","required":false,"schema":{"type":"string"},"description":"motorway, toll and/or ferry, comma-separated: `motorway` avoids motorways (category A; driving, driving-traffic, driving-truck); `toll` avoids all toll roads: vignette-required ASFINAG motorways and expressways (categories A and S) and special-toll sections (A9 Gleinalm/Bosruck, A10 Tauern/Katschberg, A11 Karawanken, A13 Brenner, S16 Arlberg; same profiles); `ferry` closes all ferry links (all profiles except driving-traffic, which returns 400). With `ferry` the route is computed without contraction hierarchies, so it takes some tens of milliseconds longer"},{"name":"voice_instructions","in":"query","required":false,"schema":{"type":"string"},"description":"true: `steps[].voiceInstructions` (Mapbox form with announcement and ssmlAnnouncement, language per `language`); requires steps=true; all road profiles (driving, driving-truck, cycling, cycling-mtb, walking), with shorter announcement distances on foot (100 m, 40 m) and by bike (250 m, 80 m)"},{"name":"banner_instructions","in":"query","required":false,"schema":{"type":"string"},"description":"true: `steps[].bannerInstructions` (Mapbox form, primary/secondary with text and components; destination signage and road number); requires steps=true; all road profiles"},{"name":"cycling_surface","in":"query","required":false,"schema":{"type":"string"},"description":"any (default), cycling only; paved (close unpaved sections completely) is currently unavailable and returns 400"},{"name":"weight","in":"query","required":false,"schema":{"type":"string"},"description":"driving-truck only: gross weight in t (default 40, 0.5 to 60); avoids weight-class bans and weight limits"},{"name":"height","in":"query","required":false,"schema":{"type":"string"},"description":"driving-truck only: vehicle height in m (default 4, 1.5 to 5); avoids height limits"},{"name":"width","in":"query","required":false,"schema":{"type":"string"},"description":"driving-truck only: vehicle width in m (default 2.55, 1 to 3.5)"},{"name":"length","in":"query","required":false,"schema":{"type":"string"},"description":"driving-truck only: vehicle length in m (2 to 40); length limits are only checked when given"},{"name":"truck_type","in":"query","required":false,"schema":{"type":"string","enum":["semi","rigid","trailer"]},"description":"driving-truck only: semi (articulated lorry, default), rigid (lorry without trailer) or trailer (lorry with trailer)"}],"responses":{"200":{"description":"Routes and waypoints","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DirectionsResponse"},"example":{"code":"Ok","routes":[{"weight_name":"routability","weight":1850.2,"distance":62340.1,"duration":2890.4,"geometry":{"type":"LineString","coordinates":[[16.3725,48.2083],[15.6256,48.2049]]},"legs":[{"distance":62340.1,"duration":2890.4,"weight":1850.2,"summary":""}]}],"waypoints":[{"name":"","location":[16.3725,48.2083],"distance":4.2},{"name":"","location":[15.6256,48.2049],"distance":6.1}],"attribution":"GIP.at, CC BY 4.0"}}}},"400":{"$ref":"#/components/responses/Problem"},"404":{"$ref":"#/components/responses/Problem"},"422":{"$ref":"#/components/responses/Problem"},"502":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/RateLimited"},"default":{"$ref":"#/components/responses/Problem"}},"operationId":"getDirections"}},"/v1/directions":{"get":{"tags":["Directions"],"summary":"Directions with query parameters","description":"Same response as `/v1/directions/{profile}/{coordinates}` (preferred); all query parameters of the path form apply.","parameters":[{"name":"profile","in":"query","required":false,"schema":{"type":"string"},"description":"Default driving"},{"name":"coordinates","in":"query","required":true,"schema":{"type":"string"},"description":"lon,lat;lon,lat;..."},{"name":"steps","in":"query","required":false,"schema":{"type":"string"},"description":"true for steps"},{"name":"geometries","in":"query","required":false,"schema":{"type":"string"},"description":"geojson | polyline | polyline6"},{"name":"overview","in":"query","required":false,"schema":{"type":"string"},"description":"simplified (default) | full | false"},{"name":"language","in":"query","required":false,"schema":{"type":"string"},"description":"de or en"}],"responses":{"200":{"description":"Routes and waypoints","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DirectionsResponse"},"example":{"code":"Ok","routes":[{"weight_name":"routability","weight":1850.2,"distance":62340.1,"duration":2890.4,"geometry":{"type":"LineString","coordinates":[[16.3725,48.2083],[15.6256,48.2049]]},"legs":[{"distance":62340.1,"duration":2890.4,"weight":1850.2,"summary":""}]}],"waypoints":[{"name":"","location":[16.3725,48.2083],"distance":4.2},{"name":"","location":[15.6256,48.2049],"distance":6.1}],"attribution":"GIP.at, CC BY 4.0"}}}},"400":{"$ref":"#/components/responses/Problem"},"404":{"$ref":"#/components/responses/Problem"},"422":{"$ref":"#/components/responses/Problem"},"502":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/RateLimited"},"default":{"$ref":"#/components/responses/Problem"}},"operationId":"getDirectionsQuery"}},"/v1/isochrone/{profile}/{coordinate}":{"get":{"tags":["Directions"],"summary":"Isochrones (Mapbox Isochrone form)","description":"Reachable areas, largest first; `properties.contour/color/opacity`. Zone `heavy`. Profile `transit` computes walking plus public transport (GTFS timetable, RAPTOR): walk to stops, ride from `depart_at`, walk on from every stop reached; only `contours_minutes` (default 5,10,15, at most 120 min), the timetable's validity period applies (otherwise 422), `metadata` carries `depart_at`, `transit_stops` and `attribution`. `access=foot|bike|car` (default `foot`) chooses how the first stop is reached: `bike` = Bike & Ride (bike to any stop, +2 min for locking), `car` = Park & Ride (drive, at most 25 min, to stops with rail/metro/tram service, +3 min for parking, and to official GIP P+R sites, +2 min and a walk to the stop); the fastest combination wins, exit is always on foot. `park=official` restricts parking to official P+R/B+R sites. `metadata` then adds `access`, `park`, `access_stops_improved` and `access_sites` (top `sites` entries: `source` site|stop, `kind`, `name`, `lon`, `lat`, `arrive_min`, `ready_min`, `stops_won`). Bike carriage on trains is not in the timetable data, so there is no `egress=bike`. The other profiles reject `depart_at`, `access` and `park` (400).","parameters":[{"name":"profile","in":"path","required":true,"schema":{"type":"string"},"description":"driving, driving-traffic, driving-truck, cycling, cycling-mtb, walking or transit (walking plus public transport from `depart_at`); `mapbox/` prefix allowed"},{"name":"coordinate","in":"path","required":true,"schema":{"type":"string"},"description":"lon,lat"},{"name":"contours_minutes","in":"query","required":false,"schema":{"type":"string"},"description":"Up to 4 values, comma-separated (default 5,10,15)"},{"name":"contours_meters","in":"query","required":false,"schema":{"type":"string"},"description":"Distances instead of minutes (not for `transit`)"},{"name":"depart_at","in":"query","required":false,"schema":{"type":"string"},"description":"Only `transit`: departure, ISO 8601 local time Europe/Vienna without offset (`2026-11-10T08:00`), or with `Z`/offset, or Unix seconds; default now"},{"name":"access","in":"query","required":false,"schema":{"type":"string"},"description":"Only `transit`: foot (default) | bike (Bike & Ride) | car (Park & Ride)"},{"name":"park","in":"query","required":false,"schema":{"type":"string"},"description":"Only `transit` with bike/car: any (default: bike every stop, car rail stops) | official (only official P+R/B+R sites)"},{"name":"sites","in":"query","required":false,"schema":{"type":"string"},"description":"Only `transit` with bike/car: number of access entries in `metadata.access_sites` (default 10, max 50)"}],"responses":{"200":{"description":"FeatureCollection (MultiPolygon)","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"}},"content":{"application/geo+json":{"schema":{"$ref":"#/components/schemas/FeatureCollection"},"example":{"type":"FeatureCollection","features":[{"type":"Feature","properties":{"contour":15,"metric":"time","color":"#bf4040","opacity":0.33},"geometry":{"type":"MultiPolygon","coordinates":[[[[16.3,48.2],[16.4,48.2],[16.4,48.25],[16.3,48.2]]]]}}]}}}},"400":{"$ref":"#/components/responses/Problem"},"404":{"$ref":"#/components/responses/Problem"},"422":{"$ref":"#/components/responses/Problem"},"502":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/RateLimited"},"default":{"$ref":"#/components/responses/Problem"}},"operationId":"getIsochrone"}},"/v1/matrix/{profile}/{coordinates}":{"get":{"tags":["Directions"],"summary":"Travel time / distance matrix (Mapbox Matrix form)","description":"2 to 25 coordinates. `sources`/`destinations` as index list (`0;2`) or `all`. Zone `heavy`.","parameters":[{"name":"profile","in":"path","required":true,"schema":{"type":"string"},"description":"driving, driving-traffic (with current traffic and closures), driving-truck (trucks over 3.5 t; vehicle size via weight/height/width/length/truck_type), cycling, cycling-mtb or walking (`mapbox/` prefix allowed)"},{"name":"coordinates","in":"path","required":true,"schema":{"type":"string"},"description":"lon,lat;lon,lat;..."},{"name":"sources","in":"query","required":false,"schema":{"type":"string"},"description":"Indices, semicolon-separated"},{"name":"destinations","in":"query","required":false,"schema":{"type":"string"},"description":"Indices, semicolon-separated"},{"name":"annotations","in":"query","required":false,"schema":{"type":"string"},"description":"duration (default), distance or both"}],"responses":{"200":{"description":"Durations and distances","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MatrixResponse"},"example":{"code":"Ok","durations":[[0,2890.4],[2901.2,0]],"sources":[{"name":"","location":[16.3725,48.2083]},{"name":"","location":[15.6256,48.2049]}],"destinations":[{"name":"","location":[16.3725,48.2083]},{"name":"","location":[15.6256,48.2049]}]}}}},"400":{"$ref":"#/components/responses/Problem"},"502":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/RateLimited"},"default":{"$ref":"#/components/responses/Problem"}},"operationId":"getMatrix"}},"/v1/matching/{profile}/{coordinates}":{"get":{"tags":["Directions"],"summary":"Map matching (Mapbox Matching form)","description":"2 to 100 GPS points snapped to the road network. Longer traces: POST /match at routing.mapx.at. Zone `heavy`.","parameters":[{"name":"profile","in":"path","required":true,"schema":{"type":"string"},"description":"driving, driving-traffic (with current traffic and closures), driving-truck (trucks over 3.5 t; vehicle size via weight/height/width/length/truck_type), cycling, cycling-mtb or walking (`mapbox/` prefix allowed)"},{"name":"coordinates","in":"path","required":true,"schema":{"type":"string"},"description":"lon,lat;lon,lat;..."},{"name":"timestamps","in":"query","required":false,"schema":{"type":"string"},"description":"Unix seconds, semicolon-separated"},{"name":"radiuses","in":"query","required":false,"schema":{"type":"string"},"description":"Meters per point (largest value counts, 5 to 500)"},{"name":"geometries","in":"query","required":false,"schema":{"type":"string"},"description":"geojson | polyline | polyline6"}],"responses":{"200":{"description":"Matchings and tracepoints","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"}},"content":{"application/json":{"example":{"code":"Ok","matchings":[],"tracepoints":[]}}}},"400":{"$ref":"#/components/responses/Problem"},"502":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/RateLimited"},"default":{"$ref":"#/components/responses/Problem"}},"operationId":"getMatching"}},"/v1/directions/transit/{coordinates}":{"get":{"tags":["Transit"],"summary":"Public transit: walking plus transit (GTFS timetable, RAPTOR)","description":"Exactly origin and destination. Connections with walks on the GIP.at network and rides (line, stops, times). Time via `depart_at` (default now) or `arrive_by`, ISO 8601 in Vienna local time. Timetable data: OeBB-Personenverkehr AG (CC BY 4.0); data source: Mobilitaetsverbuende Oesterreich OG, data.mobilitaetsverbuende.at.","parameters":[{"name":"coordinates","in":"path","required":true,"schema":{"type":"string"},"description":"lon,lat;lon,lat (exactly origin and destination)"},{"name":"depart_at","in":"query","required":false,"schema":{"type":"string"},"description":"Earliest departure, e.g. 2026-11-09T08:00"},{"name":"arrive_by","in":"query","required":false,"schema":{"type":"string"},"description":"Latest arrival, instead of depart_at"},{"name":"routes","in":"query","required":false,"schema":{"type":"string"},"description":"1 to 5, default 3"}],"responses":{"200":{"description":"Routes with legs of mode walking or transit","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"}},"content":{"application/json":{"example":{"code":"Ok","routes":[{"duration":2400,"legs":[{"mode":"walking","duration":300},{"mode":"transit","line":"S1","from":"Wien Hbf","to":"Wien Floridsdorf"}]}],"waypoints":[]}}}},"400":{"$ref":"#/components/responses/Problem"},"422":{"$ref":"#/components/responses/Problem"},"502":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/RateLimited"},"default":{"$ref":"#/components/responses/Problem"}},"operationId":"getTransitDirections"}},"/v1/directions/bike_transit/{coordinates}":{"get":{"tags":["Transit"],"summary":"Bike to the stop plus transit","description":"Like transit, but access and egress by bike (mode `cycling`, up to 15 min); bikes are not carried in vehicles.","parameters":[{"name":"coordinates","in":"path","required":true,"schema":{"type":"string"},"description":"lon,lat;lon,lat (exactly origin and destination)"},{"name":"depart_at","in":"query","required":false,"schema":{"type":"string"},"description":"Earliest departure"},{"name":"arrive_by","in":"query","required":false,"schema":{"type":"string"},"description":"Latest arrival"},{"name":"routes","in":"query","required":false,"schema":{"type":"string"},"description":"1 to 5, default 3"}],"responses":{"200":{"description":"Like transit","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"}},"content":{"application/json":{"example":{"code":"Ok","routes":[{"duration":2400,"legs":[{"mode":"walking","duration":300},{"mode":"transit","line":"S1","from":"Wien Hbf","to":"Wien Floridsdorf"}]}],"waypoints":[]}}}},"400":{"$ref":"#/components/responses/Problem"},"422":{"$ref":"#/components/responses/Problem"},"502":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/RateLimited"},"default":{"$ref":"#/components/responses/Problem"}},"operationId":"getBikeTransitDirections"}},"/v1/departures":{"get":{"tags":["Transit"],"summary":"Departure board (scheduled GTFS timetable)","description":"Next departures at a station (id from `/v1/stops`, e.g. `at:43:7226`) or at all stations around a coordinate. Service days follow calendar and feed period, trips past midnight included. Per departure: time, line (name, mode, route_type), headsign, destination, platform (null if unknown), operator, stop. No real-time data: `realtime` is always false. Outside the feed period 422, unknown station 404. Timetable data: OeBB-Personenverkehr AG (CC BY 4.0); data source: Mobilitaetsverbuende Oesterreich OG, data.mobilitaetsverbuende.at.","parameters":[{"name":"stop","in":"query","required":true,"schema":{"type":"string"},"description":"Station id (IFOPT `at:<state>:<nr>`, also platform id `at:43:7226:0:2`) or lon,lat"},{"name":"time","in":"query","required":false,"schema":{"type":"string"},"description":"Start time, ISO 8601 (Vienna local) or Unix seconds, default now"},{"name":"limit","in":"query","required":false,"schema":{"type":"string"},"description":"1 to 100, default 20"},{"name":"radius","in":"query","required":false,"schema":{"type":"string"},"description":"With lon,lat only: meters, 1 to 2000, default 300"},{"name":"horizon","in":"query","required":false,"schema":{"type":"string"},"description":"Window in seconds, 60 to 86400, default 14400"}],"responses":{"200":{"description":"Departures","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Departures"},"example":{"time":"2026-11-09T08:00:00+01:00","realtime":false,"stops":[{"id":"at:43:7226","name":"Melk Bahnhof"}],"departures":[{"time":"2026-11-09T08:04:00+01:00","line":{"name":"REX 1","mode":"rail","route_type":2},"headsign":"Wien Westbahnhof","platform":"2","stop":"at:43:7226"}]}}}},"400":{"$ref":"#/components/responses/Problem"},"404":{"$ref":"#/components/responses/Problem"},"422":{"$ref":"#/components/responses/Problem"},"502":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/RateLimited"},"default":{"$ref":"#/components/responses/Problem"}},"operationId":"getDepartures"}},"/v1/stops":{"get":{"tags":["Transit"],"summary":"Stops (GTFS stations merged by IFOPT)","description":"Stations in a box (`bbox`, by number of trip patterns descending) or around a point (`near`, nearest first, with `distance` in meters). Per station `id`, `name`, `location` [lon,lat], `modes` (rail, bus, tram, subway, ...) and `lines`.","parameters":[{"name":"bbox","in":"query","required":false,"schema":{"type":"string"},"description":"west,south,east,north in degrees, at most 1 square degree"},{"name":"near","in":"query","required":false,"schema":{"type":"string"},"description":"lon,lat, instead of bbox"},{"name":"radius","in":"query","required":false,"schema":{"type":"string"},"description":"With near only: meters, 1 to 5000, default 500"},{"name":"limit","in":"query","required":false,"schema":{"type":"string"},"description":"1 to 500, default 50"}],"responses":{"200":{"description":"Stops","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Stops"},"example":{"stops":[{"id":"at:43:7226","name":"Melk Bahnhof","location":[15.3338,48.2279],"modes":["rail","bus"],"lines":["REX 1","S50"]}]}}}},"400":{"$ref":"#/components/responses/Problem"},"502":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/RateLimited"},"default":{"$ref":"#/components/responses/Problem"}},"operationId":"getStops"}},"/v1/static/{style}/{view}/{size}":{"get":{"tags":["Static images"],"summary":"Map image (Static Images, Mapbox form)","description":"`satellite` (BEV orthophoto, z5 to z18) or `outdoors` (hypsometric tints with hillshade from the DTM, z5 to z16). The `streets*` styles are rendered server-side from the style and the vector tiles (fills, lines, relief shading, place, road and water names; icons from the sprite, house numbers from z16; z0 to z22), usually under 0.2 s per 600x400. `satellite-streets` draws the orthophoto (z5 to z18) with roads, boundaries, contours, names and icons of the vector map on top. Output PNG (default) or WebP, at most 1280x1280 (2560x2560 pixels with @2x). `Cache-Control` and `ETag` (If-None-Match gives 304). Zone `heavy`.","parameters":[{"name":"style","in":"path","required":true,"schema":{"type":"string"},"description":"streets, streets-dawn, streets-dusk, streets-night, satellite, satellite-streets or outdoors (old ids `karte`, `luftbild`, ... as deprecated alias)"},{"name":"view","in":"path","required":true,"schema":{"type":"string"},"description":"lon,lat,zoom[,bearing] (rotation in degrees, pitch only 0) or `auto` (only with overlays, fits the extent)"},{"name":"size","in":"path","required":true,"schema":{"type":"string"},"description":"{width}x{height}[@2x][.png|.webp], each 1 to 1280"}],"responses":{"200":{"description":"Image","content":{"image/png":{},"image/webp":{}},"headers":{"ETag":{"$ref":"#/components/headers/ETag"}}},"304":{"description":"Not modified"},"400":{"$ref":"#/components/responses/Problem"},"404":{"$ref":"#/components/responses/Problem"},"503":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/RateLimited"},"default":{"$ref":"#/components/responses/Problem"}},"operationId":"getStaticImage"}},"/v1/static/{style}/{overlay}/{view}/{size}":{"get":{"tags":["Static images"],"summary":"Map image with overlays","description":"`overlay`: comma-separated list (at most 50, 20000 vertices) of `pin-{s|m|l}[-label]+{hex}(lon,lat)` (label not drawn), `path-{width}[+{stroke}[-{opacity}][+{fill}[-{opacity}]]]({polyline, precision 5, URL-encoded})` and `geojson({URL-encoded GeoJSON})` with simplestyle properties (stroke, stroke-width, stroke-opacity, fill, fill-opacity, marker-color, marker-size). Example: `/v1/static/satellite/pin-s+ff0000(15.33,48.22)/15.33,48.22,15/600x400.png`","parameters":[{"name":"style","in":"path","required":true,"schema":{"type":"string"},"description":"streets, streets-dawn, streets-dusk, streets-night, satellite, satellite-streets or outdoors (old ids `karte`, `luftbild`, ... as deprecated alias)"},{"name":"overlay","in":"path","required":true,"schema":{"type":"string"},"description":"pin-..., path-..., geojson(...), comma-separated"},{"name":"view","in":"path","required":true,"schema":{"type":"string"},"description":"lon,lat,zoom[,bearing] (rotation in degrees, pitch only 0) or `auto` (only with overlays, fits the extent)"},{"name":"size","in":"path","required":true,"schema":{"type":"string"},"description":"{width}x{height}[@2x][.png|.webp], each 1 to 1280"}],"responses":{"200":{"description":"Image","content":{"image/png":{},"image/webp":{}},"headers":{"ETag":{"$ref":"#/components/headers/ETag"}}},"304":{"description":"Not modified"},"400":{"$ref":"#/components/responses/Problem"},"404":{"$ref":"#/components/responses/Problem"},"503":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/RateLimited"},"default":{"$ref":"#/components/responses/Problem"}},"operationId":"getStaticImageWithOverlay"}},"/v1/tilequery/{tilesets}/{coordinate}.json":{"get":{"tags":["Geodata"],"summary":"Tilequery: vector features around a point (Mapbox Tilequery form)","description":"Reads the vector tile at the tileset's highest zoom (and neighbouring tiles for a radius). FeatureCollection, nearest feature first, `properties.tilequery = {distance (m), geometry (point|linestring|polygon), layer}`. Polygons containing the point have distance 0. Several comma-separated tilesets add `tilequery.tileset`; `dtm`/`dsm` return the height as a point feature. Geometries are clipped to the tile.","parameters":[{"name":"tilesets","in":"path","required":true,"schema":{"type":"string"},"description":"Tileset names, comma-separated (at most 15), e.g. `streets,cadastre`"},{"name":"coordinate","in":"path","required":true,"schema":{"type":"string"},"description":"lon,lat (the path ends in `.json`)"},{"name":"radius","in":"query","required":false,"schema":{"type":"string"},"description":"Meters, 0 to 2000, default 0"},{"name":"limit","in":"query","required":false,"schema":{"type":"string"},"description":"1 to 50, default 5"},{"name":"layers","in":"query","required":false,"schema":{"type":"string"},"description":"Comma-separated layer names"},{"name":"geometry","in":"query","required":false,"schema":{"type":"string"},"description":"point, linestring or polygon"},{"name":"dedupe","in":"query","required":false,"schema":{"type":"string"},"description":"true (default) removes duplicates across tile borders"}],"responses":{"200":{"description":"FeatureCollection","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"}},"content":{"application/geo+json":{"schema":{"$ref":"#/components/schemas/FeatureCollection"},"example":{"type":"FeatureCollection","features":[{"type":"Feature","geometry":{"type":"Point","coordinates":[16.37,48.21]},"properties":{"name":"Herrengasse","tilequery":{"distance":3.2,"geometry":"linestring","layer":"road_l"}}}]}}}},"400":{"$ref":"#/components/responses/Problem"},"404":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/RateLimited"},"default":{"$ref":"#/components/responses/Problem"}},"operationId":"tilequery"}},"/v1/parcel/{coordinate}":{"get":{"tags":["Geodata"],"summary":"Parcel at a point (BEV DKM)","description":"Parcel (`parcel_number`, `cadastral_municipality_id`, `area_m2`, `is_building_land`, `source`, plus `parcel_id` and `links.dossier`; the old fields `gstnr`, `kgnr`, `bauflaeche`, `quelle` are deprecated and still present until 2027-05-31) as polygon, computed from the boundary lines of the cadastre tiles (area deviates by per mille from the register value). Buildings return the building parcel (`parcel_number` starts with a dot). Parcels extending beyond the tile window (about 2 km) are missing. Empty list outside the cadastre data. With `include=dossier` each feature is the full dossier of `/v1/parcels/{id}` (zone cost 4 plus the dossier).","parameters":[{"name":"coordinate","in":"path","required":true,"schema":{"type":"string"},"description":"lon,lat or lon,lat.json"},{"name":"radius","in":"query","required":false,"schema":{"type":"string"},"description":"Meters, 0 to 100, default 0"},{"name":"include","in":"query","required":false,"schema":{"type":"string","enum":["dossier"]},"description":"`dossier` returns the full dossier per feature"}],"responses":{"200":{"description":"FeatureCollection (Polygon)","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"}},"content":{"application/geo+json":{"schema":{"$ref":"#/components/schemas/FeatureCollection"},"example":{"type":"FeatureCollection","features":[{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[16.3721,48.2081],[16.3727,48.2081],[16.3727,48.2086],[16.3721,48.2081]]]},"properties":{"parcel_number":"1234/2","cadastral_municipality_id":1004,"area_m2":812.4,"is_building_land":true,"source":"BEV DKM","parcel_id":"01004-1234_2"},"links":{"dossier":"https://api.mapx.at/v1/parcels/01004-1234_2"}}],"attribution":"Datenquelle: BEV – DKM, CC BY 4.0"}}}},"400":{"$ref":"#/components/responses/Problem"},"503":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/RateLimited"},"default":{"$ref":"#/components/responses/Problem"}},"operationId":"getParcel"}},"/v1/parcels/{id}":{"get":{"tags":["Geodata"],"summary":"Parcel dossier (BEV DKM and further open data)","description":"Everything the open data say about one parcel in one call: administrative assignment, area (`area_m2` in the plane of the Gauss-Krueger system as the cadastre computes it, `area_ellipsoidal_m2`), land use shares from the DKM, buildings (count, footprint, heights from BEV DLM where available), terrain statistics (min, mean, max elevation and mean/max slope from the terrain model, grid of up to 250 points inside the parcel), addresses assigned to the parcel, nearest public transit stop (`null` if the router is unavailable), year of the orthophoto flight, `climate` (the object of `/v1/climate/{coordinate}` at the inner point of the parcel: solar potential, normals, hot and snow days, drought; taken from a cache, sections are `null` with `status: partial` until the data of a new area are loaded), the geometry as GeoJSON and a ready-made `links.static_image`. The ID comes from `properties.parcel_id` of parcel search results and `/v1/parcel/{coordinate}`; the form `14143-288/4` (percent-encoded slash) is accepted as well. 404 for unknown parcels, 503 while the dossier service is unavailable. Cadastre key date: see `properties.reference_date`.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"Parcel ID `<KG number>-<parcel number>`, `/` written as `_`, building parcels with a leading dot: `14143-288_4`, `14143-.98`"}],"responses":{"200":{"description":"Feature (Polygon or MultiPolygon) with dossier","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"}},"content":{"application/geo+json":{"schema":{"$ref":"#/components/schemas/ParcelDossier"},"example":{"type":"Feature","id":"14143-288_4","geometry":{"type":"Polygon","coordinates":[[[15.3414,48.2191],[15.3447,48.2191],[15.3447,48.2227],[15.3414,48.2191]]]},"bbox":[15.3414,48.2191,15.3447,48.2227],"properties":{"parcel_id":"14143-288_4","parcel_number":"288/4","is_building_land":false,"cadastral_municipality":{"id":"14143","name":"Melk"},"municipality":{"id":"31524","name":"Melk"},"district":{"id":"315","name":"Melk"},"state":{"id":"3","name":"Niederösterreich"},"area_m2":65798.1,"area_ellipsoidal_m2":65788.8,"land_use":[{"code":48,"kind":"farmland","detail":null,"label":"Äcker / Wiesen oder Weiden","area_m2":65798.1,"share":1.0}],"buildings":{"count":0,"footprint_m2":0.0,"with_height":0,"height_max_m":null,"height_mean_m":null,"height_source":"BEV DLM","items":[]},"elevation":{"min_m":228.5,"mean_m":236.4,"max_m":240.8,"slope_mean_deg":2.7,"slope_max_deg":17.7,"samples":251,"sample_spacing_m":16.2,"model":"dtm","reference_date":"2025-09-15"},"addresses":[],"nearest_transit_stop":{"id":"at:43:7255","name":"Melk Kremser Straße","modes":["bus"],"distance_m":410.0,"location":[15.32878,48.228191]},"orthophoto":{"flight_year":2023,"flight_date":"2023-07-23","flight_block":"2023250","operator":"StPoelten","source":"BEV Orthophoto"},"climate":{"location":[15.3431,48.2207],"status":"complete","solar":{"global_radiation_kwh_m2_year":1287.1,"sunshine_hours_year":2949.5},"temperature":{"mean_annual_c":{"normal":10.7,"recent":11.7}},"snow":{"snow_days_per_winter":{"normal":36.6}},"drought":{"spei365":{"value":-3.1,"class":"extremely_dry"}},"attribution":"Datenquelle: GeoSphere Austria (APOLIS, SPARTACUS, SNOWGRID-CL, WINFORE), CC BY 4.0 (https://data.hub.geosphere.at)"},"reference_date":"2026-04-01","centroid":[15.3431,48.2207]},"links":{"self":"https://api.mapx.at/v1/parcels/14143-288_4","static_image":"https://api.mapx.at/v1/static/satellite/path-3+ffd400-1+ffd400-0.2(...)/auto/800x500.png","transit_stops":"https://api.mapx.at/v1/stops?near=15.3431,48.2207&radius=1000"},"attribution":"Daten: BEV – DKM, Adressregister, DLM, Orthophoto, Verwaltungsgrenzen, DGM (CC BY 4.0)"}}}},"400":{"$ref":"#/components/responses/Problem"},"404":{"$ref":"#/components/responses/Problem"},"503":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/RateLimited"},"default":{"$ref":"#/components/responses/Problem"}},"operationId":"getParcelDossier"}},"/v1/elevation":{"get":{"tags":["Geodata"],"summary":"Elevations (bilinear from z16 Terrain-RGB, 0.1 m)","description":"Either `points` (up to 512 points) or `path` (polyline on the sphere, split evenly by length into `samples` points). Outside the area `elevation` is null.","parameters":[{"name":"points","in":"query","required":false,"schema":{"type":"string"},"description":"lon,lat;lon,lat;... (at most 512)"},{"name":"path","in":"query","required":false,"schema":{"type":"string"},"description":"lon,lat;lon,lat;... (2 to 512 vertices)"},{"name":"samples","in":"query","required":false,"schema":{"type":"integer","minimum":2,"maximum":1024,"default":100},"description":"With path only"},{"name":"model","in":"query","required":false,"schema":{"type":"string","enum":["dtm","dsm"],"default":"dtm"},"description":"dtm (terrain) or dsm (surface)"}],"responses":{"200":{"description":"FeatureCollection; properties: elevation (m), resolution_m, model, reference_date (`stichtag` deprecated until 2027-05-31), distance_m (path only)","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"}},"content":{"application/geo+json":{"schema":{"$ref":"#/components/schemas/FeatureCollection"},"example":{"type":"FeatureCollection","features":[{"type":"Feature","geometry":{"type":"Point","coordinates":[16.3725,48.2083]},"properties":{"elevation":171.3,"resolution_m":1,"model":"dtm","reference_date":"2025-09-15"}}]}}}},"400":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/RateLimited"},"default":{"$ref":"#/components/responses/Problem"}},"operationId":"getElevation"}},"/v1/elevation/{coordinate}":{"get":{"tags":["Geodata"],"summary":"Height at a point (DTM and DSM)","description":"One point feature; properties: `dtm` (terrain), `dsm` (surface, null if unavailable), `resolution_m`, `reference_date` (`stichtag` deprecated until 2027-05-31).","parameters":[{"name":"coordinate","in":"path","required":true,"schema":{"type":"string"},"description":"lon,lat or lon,lat.json"}],"responses":{"200":{"description":"Feature (Point)","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"}},"content":{"application/geo+json":{"schema":{"$ref":"#/components/schemas/Feature"},"example":{"type":"Feature","geometry":{"type":"Point","coordinates":[16.3725,48.2083]},"properties":{"dtm":171.3,"dsm":171.9,"resolution_m":1,"reference_date":"2025-09-15"}}}}},"400":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/RateLimited"},"default":{"$ref":"#/components/responses/Problem"}},"operationId":"getElevationPoint"}},"/v1/elevation/profile":{"get":{"tags":["Geodata"],"summary":"Elevation profile along a line","description":"One GeoJSON line with z coordinate; properties: `distances`, `elevations`, `ascent_m`, `descent_m`, `min_m`, `max_m`.","parameters":[{"name":"coordinates","in":"query","required":true,"schema":{"type":"string"},"description":"lon,lat;lon,lat;... (2 to 512 points)"},{"name":"samples","in":"query","required":false,"schema":{"type":"string"},"description":"2 to 1024, default 100"},{"name":"model","in":"query","required":false,"schema":{"type":"string"},"description":"dtm|dsm"}],"responses":{"200":{"description":"Feature (LineString)","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"}},"content":{"application/geo+json":{"schema":{"$ref":"#/components/schemas/Feature"},"example":{"type":"Feature","geometry":{"type":"LineString","coordinates":[[16.37,48.21,171.0],[16.38,48.22,180.5]]},"properties":{"distances":[0,1400],"elevations":[171.0,180.5],"ascent_m":9.5,"descent_m":0,"min_m":171.0,"max_m":180.5}}}}},"400":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/RateLimited"},"default":{"$ref":"#/components/responses/Problem"}},"operationId":"getElevationProfile"}},"/v1/weather/current":{"get":{"tags":["Weather"],"summary":"Current observations of the nearest TAWES stations","description":"GeoSphere Austria station network, 10-minute values (temperature, humidity, wind, gust, precipitation, pressure). Nearest station first. Values come from a local cache, never fetched per request. Data source: GeoSphere Austria, CC BY 4.0 (attribution required).","parameters":[{"name":"lon","in":"query","required":true,"schema":{"type":"string"},"description":"Longitude (also `lng`), WGS84"},{"name":"lat","in":"query","required":true,"schema":{"type":"string"},"description":"Latitude"},{"name":"limit","in":"query","required":false,"schema":{"type":"string"},"description":"1 to 10, default 3"},{"name":"radius","in":"query","required":false,"schema":{"type":"string"},"description":"Search radius in km, default 50"}],"responses":{"200":{"description":"FeatureCollection; properties: station_id, name, state, altitude_m, distance_m, time, temperature_c, humidity_pct, wind_speed_ms, wind_speed_kmh, wind_gust_ms, wind_direction_deg, precipitation_mm_10min, pressure_hpa, pressure_msl_hpa","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"}},"content":{"application/geo+json":{"schema":{"$ref":"#/components/schemas/FeatureCollection"},"example":{"type":"FeatureCollection","features":[{"type":"Feature","geometry":{"type":"Point","coordinates":[16.35,48.25]},"properties":{"station_id":"11010","name":"Wien Hohe Warte","state":"Wien","altitude_m":198,"distance_m":4200,"time":"2026-11-08T11:50:00Z","temperature_c":9.4,"humidity_pct":71,"wind_speed_ms":3.1,"wind_direction_deg":290,"pressure_hpa":1002.1}}]}}}},"400":{"$ref":"#/components/responses/Problem"},"503":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/RateLimited"},"default":{"$ref":"#/components/responses/Problem"}},"operationId":"getWeatherCurrent"}},"/v1/weather/forecast":{"get":{"tags":["Weather"],"summary":"Hourly point forecast (AROME, 1 km)","description":"GeoSphere Austria model nwp-v2-1h-1km, bilinear to the point, from the current hour. Austria plus margin. Data source: GeoSphere Austria, CC BY 4.0 (attribution required).","parameters":[{"name":"lon","in":"query","required":true,"schema":{"type":"string"},"description":"Longitude (also `lng`), WGS84"},{"name":"lat","in":"query","required":true,"schema":{"type":"string"},"description":"Latitude"},{"name":"hours","in":"query","required":false,"schema":{"type":"string"},"description":"1 to 60, default 24"},{"name":"ensemble","in":"query","required":false,"schema":{"type":"string"},"description":"true: add `uncertainty` (p10/p50/p90 of the ensemble for temperature, gust, precipitation) to every hour"}],"responses":{"200":{"description":"location, reference_time (model run), hours[]; each hour has weather_symbol {code, text, icon}, snow_limit_m, sunshine_min, radiation_wm2, cape_jkg, snowfall_mm and, with ensemble=true, uncertainty","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"}},"content":{"application/json":{"example":{"location":[16.37,48.21],"reference_time":"2026-11-08T06:00:00Z","hours":[{"time":"2026-11-08T12:00:00Z","temperature_c":10.1,"precipitation_mm":0,"wind_speed_ms":3.4,"wind_direction_deg":285,"humidity_pct":68,"cloud_cover_pct":40,"pressure_msl_hpa":1008.3,"weather_symbol":{"code":3,"text":"Partly cloudy","icon":"partly-cloudy"},"snow_limit_m":1200,"sunshine_min":31.5,"radiation_wm2":180.2,"cape_jkg":0,"snowfall_mm":0,"uncertainty":{"temperature_c":{"p10":8.9,"p50":10.2,"p90":11.6},"wind_gust_ms":{"p10":5.1,"p50":7.4,"p90":10.2},"precipitation_mm":{"p10":0,"p50":0,"p90":0.3}}}]}}}},"400":{"$ref":"#/components/responses/Problem"},"404":{"$ref":"#/components/responses/Problem"},"503":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/RateLimited"},"default":{"$ref":"#/components/responses/Problem"}},"operationId":"getWeatherForecast"}},"/v1/weather/nowcast/{coordinates}":{"get":{"tags":["Weather"],"summary":"Precipitation nowcast for a point (15 min steps, 3 h)","description":"GeoSphere INCA nowcast nowcast-v1-15min-1km, bilinear to the point. `precipitation_starts_in_min` / `precipitation_ends_in_min` are derived from the 15-minute steps (wet from 0.1 mm/h); `null` when nothing changes within the horizon. Data source: GeoSphere Austria, CC BY 4.0 (attribution required).","parameters":[{"name":"coordinates","in":"path","required":true,"schema":{"type":"string"},"description":"lon,lat, e.g. 16.3725,48.2085"}],"responses":{"200":{"description":"location, reference_time, precipitation_now, precipitation_starts_in_min, precipitation_ends_in_min, steps[]","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"}},"content":{"application/json":{"example":{"location":{"lon":16.3725,"lat":48.2085},"reference_time":"2026-11-08T10:45Z","interval":"15min","precipitation_now":false,"precipitation_starts_in_min":30,"precipitation_ends_in_min":null,"steps":[{"time":"2026-11-08T11:00Z","minutes_from_now":5,"precipitation_mm":0,"precipitation_rate_mm_h":0,"precipitation_type":null,"temperature_c":9.8,"dew_point_c":5.1,"humidity_pct":71,"wind_speed_ms":3.2,"wind_gust_ms":6.1,"wind_direction_deg":290}]}}}},"400":{"$ref":"#/components/responses/Problem"},"404":{"$ref":"#/components/responses/Problem"},"503":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/RateLimited"},"default":{"$ref":"#/components/responses/Problem"}},"operationId":"getWeatherNowcast"}},"/v1/weather/tiles/{param}.json":{"get":{"tags":["Weather"],"summary":"TileJSON of weather tiles with time dimension","description":"param: temperature, precipitation, wind, humidity, cloud, pressure, aqi, no2, o3, pm10, pm25, dust, snowlimit, sunshine, radiation, cape, snowfall (hourly, AROME) or rr_nowcast, pt_nowcast (precipitation radar nowcast, 15 min steps). `mapx:time.times` lists the available hours (UTC), `mapx:time.template` has the placeholder `{time}`; `tiles` uses `now`. Data source: GeoSphere Austria, CC BY 4.0 (attribution required).","parameters":[{"name":"param","in":"path","required":true,"schema":{"type":"string"},"description":"temperature, precipitation, wind, humidity, cloud, pressure, aqi, no2, o3, pm10, pm25, dust, snowlimit, sunshine, radiation, cape, snowfall, rr_nowcast or pt_nowcast, with .json"}],"responses":{"200":{"description":"TileJSON 3.0.0","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TileJSON"},"example":{"tilejson":"3.0.0","tiles":["https://api.mapx.at/v1/weather/tiles/temperature/now/{z}/{x}/{y}.png"],"minzoom":0,"maxzoom":14}}}},"404":{"$ref":"#/components/responses/Problem"},"503":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/RateLimited"},"default":{"$ref":"#/components/responses/Problem"}},"operationId":"getWeatherTileJson"}},"/v1/weather/tiles/{param}/{time}/{z}/{x}/{y}.png":{"get":{"tags":["Weather"],"summary":"Weather raster tile (PNG 256, transparent outside the data)","description":"Color ramp per parameter (see legend in the TileJSON). time: `now` or a UTC hour such as `2026-11-07T20:00Z`. Data source: GeoSphere Austria, CC BY 4.0 (attribution required).","parameters":[{"name":"param","in":"path","required":true,"schema":{"type":"string"},"description":"temperature, precipitation, wind, humidity, cloud, pressure, aqi, no2, o3, pm10, pm25, dust, snowlimit, sunshine, radiation, cape, snowfall, rr_nowcast, pt_nowcast"},{"name":"time","in":"path","required":true,"schema":{"type":"string"},"description":"now or 2026-11-07T20:00Z (nowcast: 15 min steps such as 2026-11-07T20:15Z)"},{"name":"z","in":"path","required":true,"schema":{"type":"integer"},"description":"0 to 14"},{"name":"x","in":"path","required":true,"schema":{"type":"integer"},"description":"Column"},{"name":"y","in":"path","required":true,"schema":{"type":"string"},"description":"Row, with .png"}],"responses":{"200":{"description":"PNG; header X-Weather-Reference-Time","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"}},"content":{"image/png":{}}},"400":{"$ref":"#/components/responses/Problem"},"404":{"$ref":"#/components/responses/Problem"},"503":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/RateLimited"},"default":{"$ref":"#/components/responses/Problem"}},"operationId":"getWeatherTile"}},"/v1/weather/warnings":{"get":{"tags":["Weather"],"summary":"Official weather warnings (GeoSphere Austria)","description":"Active and upcoming official weather warnings (up to 4 days ahead) as GeoJSON MultiPolygons in WGS84, one feature per warning (merged municipalities). `type`: wind, rain, snow, black_ice, thunderstorm, heat, cold; `level`: 1 yellow, 2 orange, 3 red; `text`, `impact` and `recommendation` carry `de` and `en`. Fetched centrally every 5 minutes, never per request. Without `bbox` and `lon`/`lat` all warnings are returned. Data source: GeoSphere Austria, CC BY 4.0 (attribution required).","parameters":[{"name":"lon","in":"query","required":false,"schema":{"type":"string"},"description":"Longitude: only warnings that contain the point (with lat)"},{"name":"lat","in":"query","required":false,"schema":{"type":"string"},"description":"Latitude"},{"name":"bbox","in":"query","required":false,"schema":{"type":"string"},"description":"west,south,east,north in degrees (WGS84): only warnings touching the box"},{"name":"type","in":"query","required":false,"schema":{"type":"string"},"description":"wind, rain, snow, black_ice, thunderstorm, heat or cold"},{"name":"min_level","in":"query","required":false,"schema":{"type":"string"},"description":"1 (yellow, default) to 3 (red)"},{"name":"active","in":"query","required":false,"schema":{"type":"string"},"description":"now: only warnings valid right now; all (default): also upcoming"}],"responses":{"200":{"description":"FeatureCollection; properties: id, type, type_id, level, level_name, onset, expires, municipalities, municipality_ids, text, impact, recommendation","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"}},"content":{"application/geo+json":{"schema":{"$ref":"#/components/schemas/FeatureCollection"},"example":{"type":"FeatureCollection","updated":"2026-11-08T08:00Z","attribution":"Warnungen: GeoSphere Austria, CC BY 4.0 (https://warnungen.zamg.at)","features":[{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[11.39,47.26],[11.41,47.26],[11.41,47.28],[11.39,47.26]]]]},"properties":{"id":"w4149c1v1","type":"wind","type_id":1,"level":2,"level_name":"orange","onset":"2026-11-08T12:00Z","expires":"2026-11-09T04:00Z","municipalities":1,"municipality_ids":["70101"],"text":{"de":"Orange Sturmwarnung","en":"Orange storm warning"},"impact":{"de":"Windspitzen über 70 km/h","en":"Wind speeds exceeding 70 km/h"},"recommendation":{"de":null,"en":null}}}]}}}},"400":{"$ref":"#/components/responses/Problem"},"503":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/RateLimited"},"default":{"$ref":"#/components/responses/Problem"}},"operationId":"getWeatherWarnings"}},"/v1/air-quality/{coordinate}":{"get":{"tags":["Weather"],"summary":"Air quality index and pollutants for a point","description":"GeoSphere chemical weather model (3 km) bilinear to the point: daily index `aqi` (3 days) and hourly NO2, O3, PM10, PM2.5 near the surface in ug/m3 with an hourly index (worst level by the EEA European Air Quality Index limits; SO2 is not provided by the model) plus the Saharan dust load (mg/m2, 0.2 degree grid). Austria and surroundings. Data source: GeoSphere Austria, CC BY 4.0 (attribution required).","parameters":[{"name":"coordinate","in":"path","required":true,"schema":{"type":"string"},"description":"lon,lat, e.g. 16.37,48.21"},{"name":"hours","in":"query","required":false,"schema":{"type":"integer"},"description":"1 to 72, default 24"}],"responses":{"200":{"description":"daily[], hourly[], index_scale","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"}},"content":{"application/json":{"example":{"location":{"lon":16.37,"lat":48.21},"model":"GeoSphere chemical weather forecast","reference_time":"2026-11-08T00:00Z","index_scale":{"1":"good","2":"fair","3":"moderate","4":"poor","5":"very_poor","6":"extremely_poor"},"daily":[{"date":"2026-11-08","index":2,"category":"fair"}],"hourly":[{"time":"2026-11-08T12:00Z","index":2,"category":"fair","no2_ugm3":18.2,"o3_ugm3":45.1,"pm10_ugm3":21.0,"pm25_ugm3":9.4,"saharan_dust_load_mgm2":0.0}],"attribution":"Luftqualität: GeoSphere Austria, CC BY 4.0 (https://data.hub.geosphere.at)"}}}},"400":{"$ref":"#/components/responses/Problem"},"404":{"$ref":"#/components/responses/Problem"},"503":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/RateLimited"},"default":{"$ref":"#/components/responses/Problem"}},"operationId":"getAirQuality"}},"/v1/climate/{coordinate}":{"get":{"tags":["Climate"],"summary":"Climate at a point (solar potential, normals, heat days, snow, drought)","description":"Climate of one point from open data of GeoSphere Austria: solar potential (yearly global radiation in kWh/m2 and sunshine hours, mean of the last 3 complete years, 100 m), temperature and precipitation (normal 1991-2020, last 10 years, trend, monthly normals, 1 km), hot/summer/frost/ice days and tropical nights per year, snow days per winter and the current snow depth, and the drought index SPEI (90 and 365 days, latest value with class). Each section has `source` (dataset, cell, last day of data) and `retrieved_at`. Values are derived per grid cell and cached; the first request for a new cell fetches them from the source and can take 10 to 20 seconds (`sections` limits the work), later requests come from the cache. The same object is part of the parcel dossier (`properties.climate`). Outside Austria 404; 503 while the source is unavailable or rate limited. Data source: GeoSphere Austria (APOLIS, SPARTACUS, SNOWGRID-CL, WINFORE), CC BY 4.0 (attribution required).","parameters":[{"name":"coordinate","in":"path","required":true,"schema":{"type":"string"},"description":"lon,lat or lon,lat.json"},{"name":"sections","in":"query","required":false,"schema":{"type":"string","example":"solar,snow","description":"solar, temperature, precipitation, temperature_extremes, snow, drought"},"description":"Comma-separated sections to return (default: all)"}],"responses":{"200":{"description":"Climate object","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Climate"},"example":{"location":[15.3294,48.2272],"status":"complete","solar":{"period":"2023-2025","years":3,"global_radiation_kwh_m2_year":1287.1,"global_radiation_horizontal_kwh_m2_year":1219.1,"direct_radiation_kwh_m2_year":911.6,"diffuse_radiation_kwh_m2_year":375.5,"sunshine_hours_year":2949.5,"relative_sunshine_pct":60.3,"by_year":[{"year":2025,"global_radiation_kwh_m2":1310.8,"sunshine_hours":2958.4}],"source":{"provider":"GeoSphere Austria","dataset":"apolis-v2-1d-100m","name":"APOLIS solar radiation","license":"CC BY 4.0","resolution_m":100,"cell_center":[15.33149,48.22776],"data_until":"2025-12-31"},"retrieved_at":"2026-11-08T07:31:55Z"},"temperature":{"unit":"degC","mean_annual_c":{"normal":10.7,"normal_period":"1991-2020","recent":11.7,"recent_period":"2016-2025","change_recent_vs_normal_c":1.0},"trend_c_per_decade":0.49,"trend_period":"1961-2025","monthly_normals":[{"month":1,"temperature_c":0.2,"precipitation_mm":29.8,"sunshine_hours":47.3}]},"temperature_extremes":{"hot_days_per_year":{"normal":19.0,"normal_period":"1991-2020","recent":27.5,"recent_period":"2016-2025"},"frost_days_per_year":{"normal":79.9,"recent":67.4}},"snow":{"snow_days_per_winter":{"normal":36.6,"recent":18.4},"max_depth_cm":{"normal":8.3,"recent":6.1},"current":{"depth_cm":0.0,"date":"2026-11-06"}},"drought":{"spei90":{"value":-1.4,"class":"moderately_dry","date":"2026-11-06"},"spei365":{"value":-3.1,"class":"extremely_dry","date":"2026-11-06"}},"attribution":"Datenquelle: GeoSphere Austria (APOLIS, SPARTACUS, SNOWGRID-CL, WINFORE), CC BY 4.0 (https://data.hub.geosphere.at)"}}}},"400":{"$ref":"#/components/responses/Problem"},"404":{"$ref":"#/components/responses/Problem"},"503":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/RateLimited"},"default":{"$ref":"#/components/responses/Problem"}},"operationId":"getClimate"}},"/v1/traffic/flow":{"get":{"tags":["Traffic"],"summary":"Speed limits of variable message signs on motorways (GeoJSON)","description":"Edges with a sign speed limit below free-flow speed, level 0 to 3 by ratio. No area-wide traffic state (the paid source is not used). Data source: ASFINAG / EVIS.AT (CC BY 4.0), road network GIP.at (CC BY 4.0); attribution required.","parameters":[{"name":"bbox","in":"query","required":true,"schema":{"type":"string"},"description":"west,south,east,north in degrees (WGS84)"}],"responses":{"200":{"description":"FeatureCollection (LineString); properties: link, forward, speed_kmh, free_kmh, level, travel_time_s, time","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"}},"content":{"application/geo+json":{"schema":{"$ref":"#/components/schemas/FeatureCollection"},"example":{"type":"FeatureCollection","features":[{"type":"Feature","geometry":{"type":"LineString","coordinates":[[16.3,48.1],[16.31,48.11]]},"properties":{"link":4711,"forward":true,"speed_kmh":80,"free_kmh":130,"level":2,"travel_time_s":48,"time":"2026-11-08T11:55:00Z"}}]}}}},"400":{"$ref":"#/components/responses/Problem"},"503":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/RateLimited"},"default":{"$ref":"#/components/responses/Problem"}},"operationId":"getTrafficFlow"}},"/v1/traffic/incidents":{"get":{"tags":["Traffic"],"summary":"Incident reports and traffic regulations (EVIS.AT): accidents, roadworks, closures with time span","description":"Active reports (`active=false`: also ended and future), filterable by area, road (`road`, `road_class`), route, type and time window. Sorted by importance (closures and binding reports first, then motorways, expressways, federal and state roads, then start), paged with `limit` and `cursor` (`total`, `next_cursor`, `next` as relative URL, `next_offset`). Roadworks on motorways and expressways carry lane details from ASFINAG (`lanes`). `mandatory=true`: binding (router: closure), show the text unchanged. Geometry along GIP edges. Data source: ASFINAG / EVIS.AT (CC BY 4.0), road network GIP.at (CC BY 4.0); attribution required.","parameters":[{"name":"bbox","in":"query","required":false,"schema":{"type":"string"},"description":"west,south,east,north; optional"},{"name":"planned","in":"query","required":false,"schema":{"type":"string"},"description":"true: planned only, false: unplanned only"},{"name":"road","in":"query","required":false,"schema":{"type":"string"},"description":"Road number, normalized: A1, A 1 and A01 are the same; also S1, B99, L347"},{"name":"road_class","in":"query","required":false,"schema":{"type":"string"},"description":"Comma-separated: motorway (A), expressway (S), federal (B), state (L)"},{"name":"active","in":"query","required":false,"schema":{"type":"string"},"description":"false: also inactive (default with from/to)"},{"name":"type","in":"query","required":false,"schema":{"type":"string"},"description":"Comma-separated: accident, congestion, construction, lane_restriction, road_closure, road_hazard, miscellaneous"},{"name":"from","in":"query","required":false,"schema":{"type":"string"},"description":"Window start (UTC, YYYY-MM-DD or YYYY-MM-DDTHH:MM[:SS]Z): incidents still valid afterwards"},{"name":"to","in":"query","required":false,"schema":{"type":"string"},"description":"Window end (UTC): incidents starting before"},{"name":"route","in":"query","required":false,"schema":{"type":"string"},"description":"Route corridor: encoded polyline (like geometries=polyline6 or polyline) or GeoJSON LineString; result sorted by position on the route"},{"name":"route_precision","in":"query","required":false,"schema":{"type":"string"},"description":"6 (default) or 5"},{"name":"buffer","in":"query","required":false,"schema":{"type":"string"},"description":"Corridor half-width in meters, 1 to 1000, default 25"},{"name":"sort","in":"query","required":false,"schema":{"type":"string"},"description":"importance (default): closures and binding reports first, then road class A, S, B, L, then start; route (default with route): position on the route"},{"name":"limit","in":"query","required":false,"schema":{"type":"string"},"description":"At most this many features, 0 to 1000, default 500"},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Page marker: next_cursor of the previous response"},{"name":"offset","in":"query","required":false,"schema":{"type":"string"},"description":"Skip features (alternative to cursor)"}],"responses":{"200":{"description":"FeatureCollection with total and next_offset; properties: type, impact, kind, category, text, road, planned, closed, mandatory, both_directions, management, start, end, updated, source (evis-planned, evis-unplanned, evis-regulations, with ASFINAG match suffixed +asfinag, or asfinag-roadworks), sources (evis, asfinag), lanes[] (direction, carriageway, closed, restricted, open, original, contraflow, road_closed, speed_limit_kmh; empty without ASFINAG data); with route also geometry_index_start/end","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"}},"content":{"application/geo+json":{"schema":{"$ref":"#/components/schemas/FeatureCollection"},"example":{"type":"FeatureCollection","total":1,"next_offset":null,"next_cursor":null,"next":null,"features":[{"type":"Feature","geometry":{"type":"LineString","coordinates":[[16.3,48.19],[16.31,48.2]]},"properties":{"type":"road_closure","impact":"closed","kind":"roadworks","text":"A23: Sperre Richtung Wien","road":"A23","planned":true,"closed":true,"mandatory":true,"source":"evis-planned+asfinag","sources":["evis","asfinag"],"lanes":[{"direction":"aligned","carriageway":"main","closed":["left"],"restricted":1,"open":1,"original":2,"contraflow":false,"road_closed":false,"speed_limit_kmh":60}],"start":"2026-11-08T20:00:00Z","end":"2026-11-09T05:00:00Z"}}]}}}},"400":{"$ref":"#/components/responses/Problem"},"503":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/RateLimited"},"default":{"$ref":"#/components/responses/Problem"}},"operationId":"getTrafficIncidents"},"post":{"tags":["Traffic"],"summary":"Like GET, parameters as JSON object (for long routes)","description":"Body: the same parameters as a JSON object; `route` as polyline string or GeoJSON LineString.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"route":{"type":"LineString","coordinates":[[16.37,48.21],[16.3,48.19]]},"type":"road_closure,construction","limit":50}}}},"responses":{"200":{"description":"Like GET","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"}},"content":{"application/geo+json":{"schema":{"$ref":"#/components/schemas/FeatureCollection"},"example":{"type":"FeatureCollection","total":1,"next_offset":null,"next_cursor":null,"next":null,"features":[{"type":"Feature","geometry":{"type":"LineString","coordinates":[[16.3,48.19],[16.31,48.2]]},"properties":{"type":"road_closure","impact":"closed","kind":"roadworks","text":"A23: Sperre Richtung Wien","road":"A23","planned":true,"closed":true,"mandatory":true,"source":"evis-planned+asfinag","sources":["evis","asfinag"],"lanes":[{"direction":"aligned","carriageway":"main","closed":["left"],"restricted":1,"open":1,"original":2,"contraflow":false,"road_closed":false,"speed_limit_kmh":60}],"start":"2026-11-08T20:00:00Z","end":"2026-11-09T05:00:00Z"}}]}}}},"400":{"$ref":"#/components/responses/Problem"},"405":{"$ref":"#/components/responses/Problem"},"503":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/RateLimited"},"default":{"$ref":"#/components/responses/Problem"}},"operationId":"postTrafficIncidents"}},"/v1/traffic/signs":{"get":{"tags":["Traffic"],"summary":"Variable message signs (ASFINAG) with position","description":"Current state: speed limit, pictogram, additional text. Only installations with a position in the source (about 40 of roughly 5300); the fields `total_signs` and `located_signs` give the numbers. Data source: ASFINAG / EVIS.AT (CC BY 4.0), road network GIP.at (CC BY 4.0); attribution required.","parameters":[{"name":"bbox","in":"query","required":false,"schema":{"type":"string"},"description":"west,south,east,north; optional"}],"responses":{"200":{"description":"FeatureCollection (Point); properties: working, speed_kmh, pictogram, text, image, time","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"}},"content":{"application/geo+json":{"schema":{"$ref":"#/components/schemas/FeatureCollection"},"example":{"type":"FeatureCollection","total_signs":5300,"located_signs":40,"features":[{"type":"Feature","geometry":{"type":"Point","coordinates":[16.3,48.1]},"properties":{"working":true,"speed_kmh":100,"pictogram":"speed","text":"","time":"2026-11-08T11:55:00Z"}}]}}}},"400":{"$ref":"#/components/responses/Problem"},"503":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/RateLimited"},"default":{"$ref":"#/components/responses/Problem"}},"operationId":"getTrafficSigns"}},"/v1/traffic/tiles.json":{"get":{"tags":["Traffic"],"summary":"TileJSON of traffic tiles","description":"Vector tiles with layers `traffic` (speed limits: level, speed, free) and `incidents` (kind, text, road, planned, closed, mandatory).","parameters":[],"responses":{"200":{"description":"TileJSON 3.0.0","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TileJSON"},"example":{"tilejson":"3.0.0","tiles":["https://api.mapx.at/v1/traffic/tiles/{z}/{x}/{y}.pbf"],"minzoom":5,"maxzoom":14}}}},"429":{"$ref":"#/components/responses/RateLimited"},"default":{"$ref":"#/components/responses/Problem"}},"operationId":"getTrafficTileJson"}},"/v1/traffic/tiles/{z}/{x}/{y}.pbf":{"get":{"tags":["Traffic"],"summary":"Traffic vector tile (MVT)","description":"Zoom 5 to 14. `Cache-Control` 60 seconds. Data source: ASFINAG / EVIS.AT (CC BY 4.0), road network GIP.at (CC BY 4.0); attribution required.","parameters":[{"name":"z","in":"path","required":true,"schema":{"type":"integer"},"description":"5 to 14"},{"name":"x","in":"path","required":true,"schema":{"type":"integer"},"description":"Column"},{"name":"y","in":"path","required":true,"schema":{"type":"string"},"description":"Row, with .pbf"}],"responses":{"200":{"description":"MVT, gzip if accepted","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"}},"content":{"application/vnd.mapbox-vector-tile":{}}},"404":{"$ref":"#/components/responses/Problem"},"503":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/RateLimited"},"default":{"$ref":"#/components/responses/Problem"}},"operationId":"getTrafficTile"}},"/v1/traffic/status":{"get":{"tags":["Traffic"],"summary":"State of the traffic data","description":"","parameters":[],"responses":{"200":{"description":"available, fetched, built, incidents, flow_segments, slowed_arcs, closed_arcs","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"}},"content":{"application/json":{"example":{"available":true,"incidents":120,"flow_segments":900,"slowed_arcs":310,"closed_arcs":14}}}},"429":{"$ref":"#/components/responses/RateLimited"},"default":{"$ref":"#/components/responses/Problem"}},"operationId":"getTrafficStatus"}},"/v1/optimized-trips/{profile}/{coordinates}":{"get":{"tags":["Optimization"],"summary":"Optimized order (Mapbox Optimization API v1, TSP)","description":"2 to 25 coordinates. Exact up to 12 points, above that nearest neighbour with 2-opt and Or-opt over the duration matrix. Response like Directions: `trips[]` with one route, `waypoints[]` in input order with `waypoint_index` (position in the trip) and `trips_index`. Expensive: zone `heavy`.","parameters":[{"name":"profile","in":"path","required":true,"schema":{"type":"string"},"description":"driving, driving-traffic (with current traffic and closures), driving-truck (trucks over 3.5 t; vehicle size via weight/height/width/length/truck_type), cycling, cycling-mtb or walking (`mapbox/` prefix allowed)"},{"name":"coordinates","in":"path","required":true,"schema":{"type":"string"},"description":"lon,lat;lon,lat;..."},{"name":"source","in":"query","required":false,"schema":{"type":"string"},"description":"any (default) or first (point 0 is the start)"},{"name":"destination","in":"query","required":false,"schema":{"type":"string"},"description":"any (default) or last (last point is the end)"},{"name":"roundtrip","in":"query","required":false,"schema":{"type":"string"},"description":"true (default) returns to the start, or false; true with destination=last needs source=first"},{"name":"steps","in":"query","required":false,"schema":{"type":"string"},"description":"true for turn-by-turn steps"},{"name":"geometries","in":"query","required":false,"schema":{"type":"string"},"description":"geojson|polyline|polyline6"},{"name":"overview","in":"query","required":false,"schema":{"type":"string"},"description":"simplified (default) | full | false"},{"name":"language","in":"query","required":false,"schema":{"type":"string"},"description":"de (default) or en"}],"responses":{"200":{"description":"trips, waypoints, code","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"}},"content":{"application/json":{"example":{"code":"Ok","trips":[],"waypoints":[]}}}},"400":{"$ref":"#/components/responses/Problem"},"422":{"$ref":"#/components/responses/Problem"},"502":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/RateLimited"},"default":{"$ref":"#/components/responses/Problem"}},"operationId":"getOptimizedTrip"}},"/v1/optimization":{"post":{"tags":["Optimization"],"summary":"Tour planning (simplified Optimization v2)","description":"Vehicles with start/end/capacity/time window, services (one location) and shipments (pickup before delivery, same vehicle) with duration, time windows and amounts. Heuristic: regret insertion, local search, ruin and recreate until `options.time_limit_ms`. At most 10 vehicles, 50 jobs, 60 distinct locations, 256 KB. Times in seconds. Expensive: zone `heavy`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"profile":{"type":"string","description":"driving (default), cycling, cycling-mtb or walking"},"vehicles":{"type":"array","items":{"type":"object","properties":{"id":{},"start":{"type":"array","items":{"type":"number"},"description":"[lon, lat]"},"end":{"type":"array","items":{"type":"number"},"description":"[lon, lat]; without end the tour ends at the last job"},"capacity":{"type":"array","items":{"type":"integer"}},"time_window":{"type":"array","items":{"type":"number"},"description":"[from, to] in seconds"}},"required":["start"]}},"services":{"type":"array","items":{"type":"object","properties":{"id":{},"location":{"type":"array","items":{"type":"number"}},"service":{"type":"number","description":"Duration in seconds"},"delivery":{"type":"array","items":{"type":"integer"},"description":"Amount loaded at the start and dropped here (also `amount`)"},"pickup":{"type":"array","items":{"type":"integer"}},"time_windows":{"type":"array","items":{"type":"array","items":{"type":"number"}}}},"required":["id","location"]}},"shipments":{"type":"array","items":{"type":"object","properties":{"id":{},"amount":{"type":"array","items":{"type":"integer"}},"pickup":{"type":"object","description":"location, service, time_windows"},"delivery":{"type":"object","description":"location, service, time_windows"}},"required":["id","pickup","delivery"]}},"options":{"type":"object","properties":{"time_limit_ms":{"type":"integer","minimum":50,"maximum":10000,"default":1500},"geometry":{"type":"boolean","description":"Route geometry per tour (at most 80 legs)"},"geometries":{"type":"string"}}}},"required":["vehicles"]},"example":{"vehicles":[{"id":1,"start":[16.3725,48.2083],"end":[16.3725,48.2083]}],"services":[{"id":1,"location":[15.6256,48.2049],"service":300},{"id":2,"location":[14.2858,48.3069],"service":300}]}}}},"responses":{"200":{"description":"summary, routes[] (steps of type start/job/pickup/delivery/end, arrival, load), unassigned[]","headers":{"ETag":{"$ref":"#/components/headers/ETag"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimitPolicy"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"}},"content":{"application/json":{"example":{"summary":{"cost":9000,"unassigned":0},"routes":[],"unassigned":[]}}}},"400":{"$ref":"#/components/responses/Problem"},"405":{"$ref":"#/components/responses/Problem"},"502":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/RateLimited"},"default":{"$ref":"#/components/responses/Problem"}},"operationId":"solveOptimization"}}},"components":{"securitySchemes":{},"headers":{"RateLimitPolicy":{"description":"Rate-limit zone of this endpoint group, e.g. `\"search\";q=10;w=1;burst=30` (q requests per w seconds, plus burst).","schema":{"type":"string"}},"ServerTiming":{"description":"`router;dur=…, search;dur=…, render;dur=…, total;dur=…` in milliseconds.","schema":{"type":"string"}},"ETag":{"description":"Entity tag for If-None-Match.","schema":{"type":"string"}},"RetryAfter":{"description":"Retry after this many seconds","schema":{"type":"integer"}}},"responses":{"Problem":{"description":"Error (RFC 9457 problem details)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"RateLimited":{"description":"Rate limit exceeded (`code` rate-limited). Wait `Retry-After` seconds.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://docs.mapx.at/api/errors/#rate-limited","title":"Rate limit exceeded","status":429,"detail":"Rate limit exceeded","code":"rate-limited"}}}}},"schemas":{"Problem":{"type":"object","required":["type","title","status"],"properties":{"type":{"type":"string","format":"uri","description":"Error type URI, `https://docs.mapx.at/api/errors/#<code>`.","example":"https://docs.mapx.at/api/errors/#invalid-parameter"},"title":{"type":"string","description":"Short summary (English, or German with `Accept-Language: de`)."},"status":{"type":"integer","description":"HTTP status code."},"detail":{"type":"string","description":"Explanation of this occurrence."},"code":{"type":"string","description":"Stable machine-readable error code (anchor in the error catalog).","example":"invalid-parameter"},"param":{"type":"string","description":"Name of the offending parameter, if any."},"allowed":{"type":"array","items":{"type":"string"},"description":"Accepted values, if the parameter is an enumeration."}}},"Position":{"type":"array","items":{"type":"number"},"minItems":2,"maxItems":3,"description":"[longitude, latitude] (WGS84), optional height."},"Geometry":{"type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Point","LineString","Polygon","MultiPolygon"]},"coordinates":{}}},"ParcelDossier":{"type":"object","required":["type","id","geometry","properties","links"],"description":"GeoJSON Feature of one parcel with its dossier. Missing data are `null` or empty lists, never absent.","properties":{"type":{"const":"Feature"},"id":{"type":"string","description":"Parcel ID: `<KG number, 5 digits>-<parcel number>` with `/` written as `_`, building parcels start with a dot, e.g. `14143-288_4`, `14143-.98`"},"geometry":{"$ref":"#/components/schemas/Geometry"},"bbox":{"type":"array","items":{"type":"number"},"minItems":4,"maxItems":4},"properties":{"type":"object","properties":{"parcel_id":{"type":"string"},"parcel_number":{"type":"string","description":"e.g. `288/4`; building parcels `.98`"},"is_building_land":{"type":"boolean"},"cadastral_municipality":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":["string","null"]}}},"municipality":{"type":"object","properties":{"id":{"type":["string","null"]},"name":{"type":["string","null"]}}},"district":{"type":"object","properties":{"id":{"type":["string","null"]},"name":{"type":["string","null"]}}},"state":{"type":"object","properties":{"id":{"type":["string","null"]},"name":{"type":["string","null"]}}},"area_m2":{"type":"number","description":"Area in the plane of the Gauss-Krueger system (the method of the cadastre). The register value itself is not part of the open DKM data."},"area_ellipsoidal_m2":{"type":"number","description":"Area on the GRS80 ellipsoid"},"land_use":{"type":"array","description":"DKM land use classes of the parcel, largest first","items":{"type":"object","properties":{"code":{"type":"integer","description":"DKM usage code"},"kind":{"type":["string","null"]},"detail":{"type":["string","null"]},"label":{"type":["string","null"],"description":"Official German designation"},"area_m2":{"type":"number"},"share":{"type":"number","minimum":0,"maximum":1}}}},"buildings":{"type":"object","description":"Buildings of the DKM within the parcel; heights from BEV DLM where available","properties":{"count":{"type":"integer"},"footprint_m2":{"type":"number"},"with_height":{"type":"integer"},"height_max_m":{"type":["number","null"]},"height_mean_m":{"type":["number","null"]},"height_source":{"type":"string"},"items":{"type":"array","description":"the 25 largest buildings","items":{"type":"object","properties":{"footprint_m2":{"type":"number"},"kind":{"type":["string","null"]},"height_m":{"type":["number","null"]},"height_max_m":{"type":["number","null"]}}}}}},"elevation":{"type":["object","null"],"description":"Terrain model statistics from a grid of points inside the parcel","properties":{"min_m":{"type":"number"},"mean_m":{"type":"number"},"max_m":{"type":"number"},"slope_mean_deg":{"type":"number"},"slope_max_deg":{"type":"number"},"samples":{"type":"integer"},"sample_spacing_m":{"type":"number"},"model":{"const":"dtm"},"reference_date":{"type":["string","null"]}}},"addresses":{"type":"array","description":"Addresses of the register assigned to the parcel (at most 50)","items":{"type":"object","properties":{"id":{"type":"string","description":"Search ID `address-<AdrCD>`"},"label":{"type":"string"},"street":{"type":["string","null"]},"housenumber":{"type":["string","null"]},"postcode":{"type":["string","null"]},"locality":{"type":["string","null"]},"location":{"type":"array","items":{"type":"number"}}}}},"nearest_transit_stop":{"type":["object","null"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"modes":{"type":"array","items":{"type":"string"}},"distance_m":{"type":"number","description":"Straight line from the parcel's inner point"},"location":{"type":"array","items":{"type":"number"}}}},"orthophoto":{"type":["object","null"],"properties":{"flight_year":{"type":"integer"},"flight_date":{"type":"string"},"flight_block":{"type":"string"},"operator":{"type":["string","null"]},"source":{"type":"string"}}},"climate":{"$ref":"#/components/schemas/Climate"},"reference_date":{"type":"string","description":"Key date of the DKM"},"centroid":{"type":"array","items":{"type":"number"},"description":"Point inside the parcel [lon, lat]"}}},"links":{"type":"object","properties":{"self":{"type":"string"},"static_image":{"type":"string","description":"Ready-made Static Images URL: satellite image with the parcel outline"},"transit_stops":{"type":"string"}}},"attribution":{"type":"string"}}},"Climate":{"type":"object","description":"Climate at a point from open GeoSphere Austria data. Sections are `null` while their data are not loaded yet (see `status` and `missing`). Every section carries `source` (dataset, cell, last day of data) and `retrieved_at`.","properties":{"location":{"$ref":"#/components/schemas/Position"},"status":{"type":"string","enum":["complete","partial","unavailable"],"description":"`partial`: some sections are still being loaded (parcel dossier: retry after `retry_after_s`)"},"missing":{"type":"array","items":{"type":"string"}},"retry_after_s":{"type":"integer"},"solar":{"type":["object","null"],"description":"Solar potential: yearly sums, mean of the last 3 complete years (APOLIS, 100 m)","properties":{"period":{"type":"string"},"years":{"type":"integer"},"global_radiation_kwh_m2_year":{"type":"number","description":"Direct radiation on the real surface plus diffuse radiation, kWh/m2 per year"},"global_radiation_horizontal_kwh_m2_year":{"type":"number","description":"Direct radiation on a horizontal surface plus diffuse radiation"},"direct_radiation_kwh_m2_year":{"type":"number"},"diffuse_radiation_kwh_m2_year":{"type":"number"},"sunshine_hours_year":{"type":"number","description":"Absolute sunshine duration (APOLIS definition), hours per year"},"relative_sunshine_pct":{"type":"number"},"by_year":{"type":"array","items":{"type":"object","properties":{"year":{"type":"integer"},"global_radiation_kwh_m2":{"type":"number"},"sunshine_hours":{"type":"number"}}}},"source":{"type":"object","description":"Source and as-of date of the values in this section","properties":{"provider":{"type":"string"},"dataset":{"type":"string","description":"GeoSphere Data Hub dataset id"},"name":{"type":"string"},"license":{"type":"string"},"resolution_m":{"type":"integer","description":"Grid cell size of the dataset"},"cell_center":{"$ref":"#/components/schemas/Position"},"data_until":{"type":["string","null"],"format":"date","description":"Last day covered by the data"}}}}},"temperature":{"type":["object","null"],"description":"Air temperature (SPARTACUS, 1 km)","properties":{"unit":{"const":"degC"},"mean_annual_c":{"type":"object","description":"Annual mean temperature, degC","properties":{"normal":{"type":["number","null"],"description":"Mean over the normal period (1991-2020)"},"normal_period":{"type":"string"},"recent":{"type":["number","null"],"description":"Mean over the last 10 complete years"},"recent_period":{"type":"string"}}},"trend_c_per_decade":{"type":["number","null"],"description":"Linear trend of the annual mean over `trend_period`"},"trend_period":{"type":"string"},"monthly_normals":{"type":"array","description":"Mean per calendar month over the normal period","items":{"type":"object","properties":{"month":{"type":"integer"},"temperature_c":{"type":"number"},"precipitation_mm":{"type":"number"},"sunshine_hours":{"type":"number"}}}},"source":{"type":"object","description":"Source and as-of date of the values in this section","properties":{"provider":{"type":"string"},"dataset":{"type":"string","description":"GeoSphere Data Hub dataset id"},"name":{"type":"string"},"license":{"type":"string"},"resolution_m":{"type":"integer","description":"Grid cell size of the dataset"},"cell_center":{"$ref":"#/components/schemas/Position"},"data_until":{"type":["string","null"],"format":"date","description":"Last day covered by the data"}}}}},"precipitation":{"type":["object","null"],"description":"Precipitation and sunshine (SPARTACUS, 1 km)","properties":{"unit":{"const":"mm"},"annual_sum_mm":{"type":"object","description":"Annual precipitation sum, mm","properties":{"normal":{"type":["number","null"],"description":"Mean over the normal period (1991-2020)"},"normal_period":{"type":"string"},"recent":{"type":["number","null"],"description":"Mean over the last 10 complete years"},"recent_period":{"type":"string"}}},"trend_mm_per_decade":{"type":["number","null"]},"trend_period":{"type":"string"},"sunshine_hours_year":{"type":"object","description":"Station-based sunshine duration, hours per year","properties":{"normal":{"type":["number","null"],"description":"Mean over the normal period (1991-2020)"},"normal_period":{"type":"string"},"recent":{"type":["number","null"],"description":"Mean over the last 10 complete years"},"recent_period":{"type":"string"}}},"source":{"type":"object","description":"Source and as-of date of the values in this section","properties":{"provider":{"type":"string"},"dataset":{"type":"string","description":"GeoSphere Data Hub dataset id"},"name":{"type":"string"},"license":{"type":"string"},"resolution_m":{"type":"integer","description":"Grid cell size of the dataset"},"cell_center":{"$ref":"#/components/schemas/Position"},"data_until":{"type":["string","null"],"format":"date","description":"Last day covered by the data"}}}}},"temperature_extremes":{"type":["object","null"],"description":"Hot, summer, frost and ice days per year, tropical nights (SPARTACUS daily data, 1 km); normal period 1991-2020 and last 10 complete years","properties":{"mean_daily_max_c":{"type":"object","description":"Mean of the daily maximum, degC","properties":{"normal":{"type":["number","null"],"description":"Mean over the normal period (1991-2020)"},"normal_period":{"type":"string"},"recent":{"type":["number","null"],"description":"Mean over the last 10 complete years"},"recent_period":{"type":"string"}}},"mean_daily_min_c":{"type":"object","description":"Mean of the daily minimum, degC","properties":{"normal":{"type":["number","null"],"description":"Mean over the normal period (1991-2020)"},"normal_period":{"type":"string"},"recent":{"type":["number","null"],"description":"Mean over the last 10 complete years"},"recent_period":{"type":"string"}}},"hot_days_per_year":{"type":"object","description":"Days with TX >= 30 degC","properties":{"normal":{"type":["number","null"],"description":"Mean over the normal period (1991-2020)"},"normal_period":{"type":"string"},"recent":{"type":["number","null"],"description":"Mean over the last 10 complete years"},"recent_period":{"type":"string"}}},"summer_days_per_year":{"type":"object","description":"Days with TX >= 25 degC","properties":{"normal":{"type":["number","null"],"description":"Mean over the normal period (1991-2020)"},"normal_period":{"type":"string"},"recent":{"type":["number","null"],"description":"Mean over the last 10 complete years"},"recent_period":{"type":"string"}}},"frost_days_per_year":{"type":"object","description":"Days with TN < 0 degC","properties":{"normal":{"type":["number","null"],"description":"Mean over the normal period (1991-2020)"},"normal_period":{"type":"string"},"recent":{"type":["number","null"],"description":"Mean over the last 10 complete years"},"recent_period":{"type":"string"}}},"ice_days_per_year":{"type":"object","description":"Days with TX < 0 degC","properties":{"normal":{"type":["number","null"],"description":"Mean over the normal period (1991-2020)"},"normal_period":{"type":"string"},"recent":{"type":["number","null"],"description":"Mean over the last 10 complete years"},"recent_period":{"type":"string"}}},"tropical_nights_per_year":{"type":"object","description":"Nights with TN >= 20 degC","properties":{"normal":{"type":["number","null"],"description":"Mean over the normal period (1991-2020)"},"normal_period":{"type":"string"},"recent":{"type":["number","null"],"description":"Mean over the last 10 complete years"},"recent_period":{"type":"string"}}},"hot_days_trend_per_decade":{"type":["number","null"]},"trend_period":{"type":"string"},"definitions":{"type":"object"},"source":{"type":"object","description":"Source and as-of date of the values in this section","properties":{"provider":{"type":"string"},"dataset":{"type":"string","description":"GeoSphere Data Hub dataset id"},"name":{"type":"string"},"license":{"type":"string"},"resolution_m":{"type":"integer","description":"Grid cell size of the dataset"},"cell_center":{"$ref":"#/components/schemas/Position"},"data_until":{"type":["string","null"],"format":"date","description":"Last day covered by the data"}}}}},"snow":{"type":["object","null"],"description":"Snow cover (SNOWGRID-CL model, 1 km)","properties":{"snow_days_per_winter":{"type":"object","description":"Days per season (1 Sep to 31 Aug) with snow depth >= 1 cm","properties":{"normal":{"type":["number","null"],"description":"Mean over the normal period (1991-2020)"},"normal_period":{"type":"string"},"recent":{"type":["number","null"],"description":"Mean over the last 10 complete years"},"recent_period":{"type":"string"}}},"max_depth_cm":{"type":"object","description":"Maximum snow depth per season, cm","properties":{"normal":{"type":["number","null"],"description":"Mean over the normal period (1991-2020)"},"normal_period":{"type":"string"},"recent":{"type":["number","null"],"description":"Mean over the last 10 complete years"},"recent_period":{"type":"string"}}},"snow_days_trend_per_decade":{"type":["number","null"]},"trend_period":{"type":"string"},"definition":{"type":"string"},"current":{"type":"object","description":"Latest model value","properties":{"depth_cm":{"type":"number"},"date":{"type":"string","format":"date"}}},"source":{"type":"object","description":"Source and as-of date of the values in this section","properties":{"provider":{"type":"string"},"dataset":{"type":"string","description":"GeoSphere Data Hub dataset id"},"name":{"type":"string"},"license":{"type":"string"},"resolution_m":{"type":"integer","description":"Grid cell size of the dataset"},"cell_center":{"$ref":"#/components/schemas/Position"},"data_until":{"type":["string","null"],"format":"date","description":"Last day covered by the data"}}}}},"drought":{"type":["object","null"],"description":"Drought index SPEI (WINFORE, 1 km), latest value","properties":{"spei90":{"type":"object","properties":{"value":{"type":"number"},"class":{"type":"string","enum":["extremely_dry","severely_dry","moderately_dry","near_normal","moderately_wet","very_wet","extremely_wet"]},"date":{"type":"string","format":"date"}}},"spei365":{"type":"object","properties":{"value":{"type":"number"},"class":{"type":"string"},"date":{"type":"string","format":"date"}}},"scale":{"type":"string"},"source":{"type":"object","description":"Source and as-of date of the values in this section","properties":{"provider":{"type":"string"},"dataset":{"type":"string","description":"GeoSphere Data Hub dataset id"},"name":{"type":"string"},"license":{"type":"string"},"resolution_m":{"type":"integer","description":"Grid cell size of the dataset"},"cell_center":{"$ref":"#/components/schemas/Position"},"data_until":{"type":["string","null"],"format":"date","description":"Last day covered by the data"}}}}},"attribution":{"type":"string"}}},"Feature":{"type":"object","required":["type","geometry","properties"],"properties":{"type":{"const":"Feature"},"id":{},"geometry":{"$ref":"#/components/schemas/Geometry"},"properties":{"type":"object"}}},"FeatureCollection":{"type":"object","required":["type","features"],"properties":{"type":{"const":"FeatureCollection"},"features":{"type":"array","items":{"$ref":"#/components/schemas/Feature"}},"attribution":{"type":"string"}}},"TileJSON":{"type":"object","description":"TileJSON 3.0.0","required":["tilejson","tiles"],"properties":{"tilejson":{"type":"string"},"tiles":{"type":"array","items":{"type":"string"}},"minzoom":{"type":"integer"},"maxzoom":{"type":"integer"},"bounds":{"type":"array","items":{"type":"number"}},"attribution":{"type":"string"}}},"Waypoint":{"type":"object","properties":{"name":{"type":"string"},"location":{"$ref":"#/components/schemas/Position"},"distance":{"type":"number"}}},"Route":{"type":"object","properties":{"distance":{"type":"number","description":"meters"},"duration":{"type":"number","description":"seconds"},"weight":{"type":"number"},"weight_name":{"type":"string"},"geometry":{"description":"GeoJSON LineString, or encoded polyline for geometries=polyline|polyline6; absent for overview=false."},"legs":{"type":"array","items":{"type":"object","properties":{"steps":{"type":"array","items":{"type":"object","properties":{"notices":{"type":"array","description":"driving-truck: roads affected by district-wide bans, `{type: \"truck_restriction\", ...}`","items":{"type":"object"}},"truck_go_m":{"type":"number","description":"driving-truck: meters subject to GO toll"},"voiceInstructions":{"type":"array","description":"voice_instructions=true: spoken announcements for the maneuver at the end of the step, each `{distanceAlongGeometry, announcement, ssmlAnnouncement}`; `distanceAlongGeometry` = meters before the end of the step at which to speak","items":{"type":"object","properties":{"distanceAlongGeometry":{"type":"number"},"announcement":{"type":"string"},"ssmlAnnouncement":{"type":"string"}}}},"bannerInstructions":{"type":"array","description":"banner_instructions=true: display text for the maneuver at the end of the step, `{distanceAlongGeometry, primary, secondary?}` with `text`, `components[]` (`type` text | icon; icon = road number shield, `text` is the fallback), `type`, `modifier`, `driving_side`","items":{"type":"object"}}}}}}}},"closures_avoided":{"type":"array","description":"Cars (driving, driving-traffic): binding full closures (EVIS/ASFINAG) that the route without closures would have used and that this route avoids, `{id, text, road, category}`; show the text unchanged. Source: ASFINAG, CC BY 4.0","items":{"type":"object","properties":{"id":{"type":"string"},"text":{"type":"string"},"road":{"type":"string","nullable":true},"category":{"type":"string","nullable":true}}}},"closures_unavoidable":{"type":"array","description":"Closures that cannot be avoided (no route without them); the route runs through them. Only present when non-empty","items":{"type":"object"}},"toll":{"type":"object","description":"Cars: vignette and special toll; trucks: `truck_go_km`","properties":{"truck_go_km":{"type":"number"}}},"truck":{"type":"object","description":"driving-truck: the vehicle used","properties":{"weight":{"type":"number"},"height":{"type":"number"},"width":{"type":"number"},"length":{"type":["number","null"]},"truck_type":{"type":"string"}}}}},"DirectionsResponse":{"type":"object","required":["code","routes","waypoints"],"properties":{"code":{"type":"string","example":"Ok"},"routes":{"type":"array","items":{"$ref":"#/components/schemas/Route"}},"waypoints":{"type":"array","items":{"$ref":"#/components/schemas/Waypoint"}},"attribution":{}}},"MatrixResponse":{"type":"object","required":["code"],"properties":{"code":{"type":"string"},"durations":{"type":"array","items":{"type":"array","items":{"type":["number","null"]}},"description":"seconds"},"distances":{"type":"array","items":{"type":"array","items":{"type":["number","null"]}},"description":"meters"},"sources":{"type":"array","items":{"$ref":"#/components/schemas/Waypoint"}},"destinations":{"type":"array","items":{"$ref":"#/components/schemas/Waypoint"}}}},"Suggestions":{"type":"object","properties":{"suggestions":{"type":"array","items":{"type":"object"}},"attribution":{"type":"string"}}},"SpeedLimits":{"type":"object","properties":{"type":{"type":"string","enum":["FeatureCollection"]},"legal_only":{"type":"boolean","description":"always true: only statutory limits are listed"},"attribution":{"type":"string"},"features":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"geometry":{"type":"object","description":"LineString in digitizing direction"},"properties":{"type":"object","properties":{"limit_kmh":{"type":"integer","description":"statutory limit in km/h"},"direction":{"type":"string","enum":["both","forward","backward"],"description":"relative to the geometry direction"},"id":{"type":"integer","description":"GIP link id"}}}}}}}},"Stops":{"type":"object","properties":{"stops":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"location":{"$ref":"#/components/schemas/Position"},"modes":{"type":"array","items":{"type":"string"}},"lines":{"type":"array","items":{"type":"string"}}}}}}},"Departures":{"type":"object","properties":{"time":{"type":"string"},"realtime":{"type":"boolean"},"stops":{"type":"array","items":{"type":"object"}},"departures":{"type":"array","items":{"type":"object"}}}}}}}