Access shelter data programmatically
The Schutzraum API provides read-only access to all shelter data. An API key is required, which you can request in your account.
https://schutzraum.appPlease use the API responsibly. Excessive requests may be rate-limited.
All API requests require a valid API key. Send it as a header or query parameter:
As header (recommended):
X-API-Key: dein_api_keyAs query parameter:
/api/shelters?api_key=dein_api_keyAPI keys can be requested in your account under 'API Keys'. After manual review, the key will be activated (usually within 48 hours).
Returns a paginated list of shelters with optional filtering. Also supports geo-filtering with lat, lng and radius parameters — geo requests automatically sort by distance and include a distance field.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
page | number | No | 1 | Page number |
limit | number | No | 20 | Items per page (1–10000) |
type | string | No | – | Shelter type filter |
city | string | No | – | City name (partial match) |
search | string | No | – | Search name, city, address |
condition | string | No | – | gut, mittel, schlecht, unbekannt |
protection | string | No | – | hoch, mittel, niedrig, unbekannt |
wheelchair | boolean | No | – | Filter wheelchair accessible |
verified | boolean | No | – | Filter verified shelters |
minCapacity | number | No | – | Minimum capacity |
sort | string | No | name | name, city, capacity, type |
order | string | No | asc | asc or desc |
GET /api/shelters?type=bunker&city=Berlin&limit=10
{
"data": [{ "id": "...", "name": "...", "type": "bunker", ... }],
"total": 42,
"page": 1,
"limit": 10,
"totalPages": 5
}Returns a single shelter by its ID.
GET /api/shelters/24b4e1f0-7723-45a7-bd1c-537a2ff02174
Returns shelters within a given radius of a geographic point, sorted by distance.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
lat | number | Yes | – | Latitude (–90 to 90) |
lng | number | Yes | – | Longitude (–180 to 180) |
radius | number | No | 5000 | Radius in meters (100–50000) |
limit | number | No | 20 | Max results (1–100) |
type | string | No | – | Shelter type filter |
GET /api/shelters/nearby?lat=48.137&lng=11.576&radius=3000
Returns all shelters within a geographic bounding box.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
west | number | Yes | – | West longitude |
south | number | Yes | – | South latitude |
east | number | Yes | – | East longitude |
north | number | Yes | – | North latitude |
type | string | No | – | Shelter type filter |
GET /api/shelters/bbox?west=11.4&south=48.0&east=11.7&north=48.2
Returns all shelters as a GeoJSON FeatureCollection for map rendering.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
type | string | No | – | Shelter type filter |
wheelchair | boolean | No | – | Filter accessible |
verified | boolean | No | – | Filter verified |
minCapacity | number | No | – | Minimum capacity |
GET /api/shelters/geojson?type=u_bahn_station&wheelchair=true
{
"type": "FeatureCollection",
"features": [{
"type": "Feature",
"geometry": { "type": "Point", "coordinates": [11.576, 48.137] },
"properties": { "id": "...", "name": "...", "type": "u_bahn_station", ... }
}]
}The type parameter accepts these values:
| Value | Label |
|---|---|
bunker | Bunker |
tiefgarage | Underground Garage |
u_bahn_station | Subway Station |
tunnel | Tunnel |
keller | Basement |
hochbunker | Above-ground Bunker |
tiefbunker | Underground Bunker |
sonstige | Other |