Skip to content
Navigation

RES API (public)

Canonical OpenAPI 3.1 contract for the RES (Real Estate Scoring) API that powers the Aireon suite of apps.

This document describes the API exactly as it behaves today - it is documentation, not a redesign. No endpoint, parameter, response shape, or auth rule was changed by introducing this file, so every existing client keeps working unchanged.

Error contract - opt in to corrected status codes

The legacy parcel and OEREB endpoints historically returned authentication and validation errors as HTTP 200 with a plain-text body (for example Missing Token, Wrong Token, coordinate missing). To correct this without breaking existing callers, the fixed behaviour is opt-in via a request header:

  • Send X-RES-API-Version: 2 to receive a proper 4xx/5xx status code with a JSON { "error": ... } body.
  • Omit the header to get the unchanged legacy behaviour (HTTP 200 + plain text).

New integrations should always send X-RES-API-Version: 2. Once every caller is migrated the default will be flipped. The /score/*, /res_api/signal/*, /res_api/building_data, /res_api/bldg_vol_bbox, and /image/aireon/* endpoints already use proper status codes regardless of the header. Note: GET /res_api/parcel_image is used directly in <img> tags, which cannot send the header - its auth and validation errors therefore always use legacy behaviour, while its server and upstream failures always answer a real 500 / 502.

Scope

This is the public subset of the RES API: parcel search and data, zone statistics, building data and 3D, POI scoring and routing, GWR building records, OEREB documents, valuation and the PRM listing monitor. Each operation carries x-aireon-pack, the data pack an API key needs for it (core is free). Every operation needs a token unless its security is empty. Developer guide: https://docs.aireon.ch

Parcel

Parcel data, geometry, imagery and building information.

Building3D

swissBUILDINGS3D 3.0 Beta clip-and-email extracts (aireon hub '3D extract' page). Worker: scripts/building3d/extract_building3d.py.

Score

Points-of-interest scoring around a location.

OEREB

Official cadastral public-law restriction (OEREB) extract links.

Meta

Health and service metadata.

GWR

New-building-projects feed from the GWR register, served from Postgres with a Redis cache. Loaded monthly by gwr/load_new_projects.js.

PRMMonitor

PRM listing monitor: attach real-estate ad URLs to parcels in the caller's PRM pipeline, list them, stop monitoring. Report-driven: the server never fetches a listing page. Registering a URL again is an observation (status, price, content hash) that can emit listing events. Errors use `{ "error": { "code", "message" } }` and every response carries `Cache-Control: private, no-store`. A malformed JSON body answers 400 `invalid_request` and a body over the size cap 413 `payload_too_large`, both before authentication. After authentication, an unknown path under `/res_api/prm_monitor` answers 404 `not_found`.

Valuation

Parcel valuation computed by revenoo (RICS methods) and served through the RES API: the land value by initial yield on cost. Responses are revenoo's, cached 6 h in Redis.

Type to search…

↑↓ navigate↵ selectEsc close