---
title: "Buildings as a GeoJSON FeatureCollection"
description: "Same filters as /projects; returns up to 25000 points with slim properties, for map rendering."
---

> Documentation Index
> Fetch the complete documentation index at: https://docs.aireon.ch/llms.txt
> Use this file to discover all available pages before exploring further.

Path: RES API (public) › GWR

`GET /res_api/gwr/geojson`

Same filters as /projects; returns up to 25000 points with slim properties, for map rendering.

## Authentication

Requires one of the following:

- `ResApiToken`, apiKey, in header, header `token`
- `ResApiTokenQuery`, apiKey, in query

## Query parameters

- `month` (`getGwrGeoJson.query.month`; string, optional): Target month 'YYYY-MM'. Defaults to the latest loaded month.
  - example `"2026-04"`
- `canton` (`getGwrGeoJson.query.canton`; string, optional): Two-letter canton code.
- `stage` (`getGwrGeoJson.query.stage`; string, optional): Project stage.
- `pipeline` (`getGwrGeoJson.query.pipeline`; string, optional): Keep only pipeline (true) or non-pipeline (false).
  - one of `"true"`, `"false"`
- `minor` (`getGwrGeoJson.query.minor`; string, optional): Keep only likely-minor (true) or exclude them (false).
  - one of `"true"`, `"false"`
- `min_score` (`getGwrGeoJson.query.min_score`; integer, optional): Minimum significance score.
- `q` (`getGwrGeoJson.query.q`; string, optional): Case-insensitive match on municipality name or address.
- `bbox` (`getGwrGeoJson.query.bbox`; string, optional): Bounding box "minLng,minLat,maxLng,maxLat" (WGS84).

## Code samples

### cURL

```bash
curl --request GET \
  --url https://res.aireon.ch/res_api/gwr/geojson \
  --header 'token: <token>'
```

### TypeScript

```typescript
const url = 'https://res.aireon.ch/res_api/gwr/geojson';
const options = {method: 'GET', headers: {token: '<token>'}};

fetch(url, options)
  .then(res => res.json())
  .then(json => console.log(json))
  .catch(err => console.error(err));
```

### Python

```python
import requests

url = "https://res.aireon.ch/res_api/gwr/geojson"

headers = {"token": "<token>"}

response = requests.get(url, headers=headers)

print(response.text)
```

## Responses

### 200

A GeoJSON FeatureCollection.

#### Example

```json
{
  "type": "FeatureCollection",
  "month": "string",
  "count": 0,
  "features": [
    {
      "type": "Feature",
      "geometry": {
        "type": "Point",
        "coordinates": [
          0
        ]
      },
      "properties": {
        "egid": 0,
        "stage": "string",
        "is_pipeline": true,
        "likely_minor": true,
        "score": 0
      }
    }
  ]
}
```

- `type` (`getGwrGeoJson.response.200.type`; string, optional)
  - example `"FeatureCollection"`
- `month` (`getGwrGeoJson.response.200.month`; string, optional)
- `count` (`getGwrGeoJson.response.200.count`; integer, optional)
- `features` (`getGwrGeoJson.response.200.features`; array<object>, optional)
  - `type` (`getGwrGeoJson.response.200.features.type`; string, optional)
    - example `"Feature"`
  - `geometry` (`getGwrGeoJson.response.200.features.geometry`; object, optional)
    - `type` (`getGwrGeoJson.response.200.features.geometry.type`; string, optional)
      - example `"Point"`
    - `coordinates` (`getGwrGeoJson.response.200.features.geometry.coordinates`; array<number>, optional)
  - `properties` (`getGwrGeoJson.response.200.features.properties`; object, optional)
    - `egid` (`getGwrGeoJson.response.200.features.properties.egid`; integer, optional)
    - `stage` (`getGwrGeoJson.response.200.features.properties.stage`; string, optional)
    - `is_pipeline` (`getGwrGeoJson.response.200.features.properties.is_pipeline`; boolean, optional)
    - `likely_minor` (`getGwrGeoJson.response.200.features.properties.likely_minor`; boolean, optional)
    - `score` (`getGwrGeoJson.response.200.features.properties.score`; integer, optional)

### 401

Missing token.

### 403

Wrong token.


Source: https://docs.aireon.ch/res/get-gwr-geo-json/index.md
