Skip to content
Navigation

Walkability POIs around a location (local OSM dataset)

Returns OpenStreetMap points of interest around a coordinate, served from the local osm_pois table via a PostGIS radius search instead of a live Overpass API call. Education POIs use a 2 km radius, every other category 1 km. The response uses Overpass element shape so existing clients can map it unchanged. The osm_pois table is refreshed monthly by a scheduled ingest.

lat and lng are rounded to 5 decimals (about 1 m) before the query runs, so equal rounded coordinates always return an identical payload. The response carries Cache-Control: private, max-age=86400, stale-while-revalidate=604800 (private: the endpoint is token-gated by a header) and a weak ETag over the exact JSON sent; If-None-Match with a matching tag answers 304. The ingest records no data vintage, so the monthly reload (which flushes the cached payloads) is what changes the tag. Rate limited per client IP (60 per minute by default) and per RES token (300 per minute by default), counted in Redis across workers; over either limit the endpoint answers 429 with a Retry-After header. Box-local calls skip the per-IP limit, and a Redis outage lets requests through.

GET
https://res.aireon.ch/score/poi-osm

Authorization

  • ResApiToken
    API key in header
    required

Query parameters

  • lat
    number
    required

    WGS84 latitude.

  • lng
    number
    required

    WGS84 longitude.

  • country
    optional
    ch
    or
    th
    or
    de
    or
    at
    or
    fr
    or
    nl
    +4 more

    POI dataset: ch (default, table osm_pois), th (admin-only Thailand experiment, table osm_pois_th) de (admin-only Germany experiment, table osm_pois_de) at (admin-only Austria experiment, table osm_pois_at), fr, nl, be, lu, gb or it (admin-only France, Netherlands, Belgium, Luxembourg, United Kingdom and Italy experiments, tables osm_pois_<code>); every country other than ch is refreshed monthly from its Geofabrik extract. Any other value answers 400.

    default: "ch"

Returns

200

POIs around the coordinate, in Overpass element shape.

JSON
  • version
    optional
    number
  • generator
    optional
    string
  • elements
    optional
    array of
    object
    • type
      optional
      node
      or
      way
      or
      relation
    • id
      optional
      integer
    • lat
      optional
      number
    • lon
      optional
      number
    • tags
      optional
      map of
      string

304

If-None-Match matches the current ETag. Empty body.

400

Invalid request.
JSON
  • error
    string
    required

    Human-readable error description.

  • message
    optional
    string

    Optional underlying error message.

401

Authentication token missing (plain-text body).

403

Authentication token invalid (plain-text body).

429

Rate limited: too many requests from this client IP or with this token in the current one-minute window. Retry after the number of seconds in Retry-After.
JSON
  • error
    rate_limited
    required
  • scope
    ip
    or
    token
    required

    Which limit was hit.

  • retry_after
    integer
    required
    minimum: 1

500

Server error.
JSON
  • error
    string
    required

    Human-readable error description.

  • message
    optional
    string

    Optional underlying error message.

Type to search…

↑↓ navigate↵ selectEsc close