GET /api/v1/cities/{slug}/charging-status
Live EV charging occupancy per city (eRound, CC0/Tier A)
Returns a city's aggregated live EV charging occupancy (eRound AFIR recharging, DATEX-II V3, CC0) in the canonical envelope. A join of two states with no upstream call at request time: the static eRound location inventory maps each charging point to a city + coordinates (daily ingest, all 84 cities covered), while the dynamic occupancy feed is accumulated as a delta stream (status per charging point, 24 h staleness window). Payload: total_points (known charging points within the city radius), reported_points (of which with a fresh live status), status_counts (available/occupied/charging/unavailable etc.) plus the individual points (refill_point_id, lat/lon, status, observed_at; list capped at 500, truncated flags honestly). Source disabled -> 200 source_status="disabled"; no accumulated live status yet -> 200 source_status="no_data".
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
slug | path | yes | string |
Code samples
curl "https://infranode.dev/api/v1/cities/hamburg/charging-status"const res = await fetch("https://infranode.dev/api/v1/cities/hamburg/charging-status");
const data = await res.json();
console.log(data);import httpx
res = httpx.get("https://infranode.dev/api/v1/cities/hamburg/charging-status")
res.raise_for_status()
print(res.json())