GET /api/v1/cities/{slug}/pois
POIs per city, filtered by type (OSM, Tier B)
Returns a city's POIs from OpenStreetMap in the canonical envelope, filtered by the type query parameter. The type is checked against a fixed list; an unknown type triggers 422. Data comes from a periodic precompute (OSM Germany extract, weekly); the route reads read-only from the store, not live. total_available reports the real total, the items list is a capped, paginable sample. Tier B (copyleft, ODbL). Disabled -> 200 source_status="disabled"; no data yet -> 200 source_status="no_data".
Parameters
| Name | In | Required | Type | Example | Description |
|---|---|---|---|---|---|
slug | path | yes | string | ||
type | query | yes | string | hospital | POI type from the allowed list (e.g. hospital, school, pharmacy). |
Code samples
curl "https://infranode.dev/api/v1/cities/hamburg/pois?type=hospital"const res = await fetch("https://infranode.dev/api/v1/cities/hamburg/pois?type=hospital");
const data = await res.json();
console.log(data);import httpx
res = httpx.get("https://infranode.dev/api/v1/cities/hamburg/pois?type=hospital")
res.raise_for_status()
print(res.json())