Building footprints with heights and volumes (GeoJSON, sync)
Building footprints with heights and volumes, synchronously, as a GeoJSON FeatureCollection - the endpoint a Grasshopper / Rhino / CAD client extrudes locally.
Source: the materialised bo_buildings_vol table (one row per cadastral AV footprint, 2.63 M buildings nationwide, integrated volume cascade roofer LoD2.2 → footprint prism → GWR → flat prism; rebuilt weekly) LEFT JOINed with the roofer LoD2.2 roof statistics (building_footprint_rf).
Select buildings by exactly one of:
- point + radius -
lat,lng,radius_m(1–500, default 100): every footprint withinradius_mmetres (exact test in LV95); - bbox -
bbox=minLng,minLat,maxLng,maxLat(WGS84, at most ~1.5 km per side): every footprint intersecting the box; - parcel -
egrid=CH…: buildings whose point-on-surface lies inside the parcel (parcel geometry from the serving parcel table).
crs=2056 returns LV95 metre coordinates (2 decimals) instead of WGS84 (7 decimals). max_features defaults to 1000 (hard cap 2000); capped tells you when the area held more.
Measured on production: 150 m radius in central Zürich → 22 buildings in ~80 ms; 500 m → ~800 buildings in ~0.6 s. 10 s statement timeout → 504. Results are Redis-cached for 24 h (X-Cache: HIT|MISS) and served Cache-Control: private, max-age=3600 (token-gated, so never public).
Auth: token header, or ?token= on the GET so a URL can be pasted into a browser or a Grasshopper HTTP component. Errors are always JSON with a real status code (this is a new surface; no legacy plain-text mode).
https://res.aireon.ch/res_api/building_footprintsAuthorization
Query parameters
Returns
200
Footprints in the requested area.