The same proximity search the site itself uses is also available as aninterface – as JSON, as CSV for a spreadsheet and as GeoJSON for GIS. The basis is 116,443 charging stations with 209,136 charge points, as of 1 Sep 2026.
Looking for utilisation data? This interface serves master data – who built what, and where. How many charge points were actually free is in the site's own measurement series: occupancy dataset, as CSV with timestamp, weekday and hour.
All charging stations of 50 kW or more within 5 km of Krefeld, as a CSV table.
https://chargemyride.live/api.php?lat=51.3396&lon=6.5853&radius=5&minPower=50&format=csv CCS charge points in Munich that are open right now, as GeoJSON.
https://chargemyride.live/api.php?lat=48.1372&lon=11.5756&radius=10&connectorType=CCS&openNow=open&format=geojson| Parameter | Values | Meaning |
|---|---|---|
| lat, lon | decimal degrees | Required. Centre of the search, WGS 84. |
| radius | 1 to 100 | Search radius in kilometres, as the crow flies. Default 10. |
| format | json, csv, geojson |
Output format. CSV and GeoJSON always return all matches, without paging. |
| page, per_page | number, per_page max. 100 | JSON only. Page 1 answers faster with a reduced radius and flags that with is_approximate. |
| full_load | true |
All matches in one response instead of page by page. |
| minPower, maxPower | kW | Limits for the strongest charge point of a charging station. |
| currentType | ac, dc |
Standard or rapid charging station according to the register. |
| minChargingPoints | number | Minimum number of charge points. |
| connectorType | Typ2, CCS, CHAdeMO, Schuko |
Several separated by commas, combined with OR. |
| payment | free, card, rfid, online, plugcharge, cash |
Several separated by commas, combined with OR. |
| eichrecht | verified, usable, reported, none, homoglyph |
State of the metering capsule public key in the register. |
| mobilfunk | all3, min2, min1, none |
4G/5G coverage at the site according to the mobile network monitoring of the Bundesnetzagentur. |
| openNow | open, always |
Opening hours. Careful: two thirds of the entries file nothing and drop out when this filter is set. |
| group | park |
Group charging stations of the same operator within 75 m into one match. The others appear under park.members. |
| pretty | present | Output JSON indented. |
JSON answers with {"success": true, "data": {…}}. Under data you find:
results – the charging stations, sorted by distancepagination – page, total, is_approximatequery – the parameters actually applied, including effective_radiusregister – what the comparison against the register file produced: how many entries were added (added), matched (matched) and removed as withdrawn (retired)Abridged; key details and charge points depend on what is on file.
Raw value and label sit side by side. Fields such as currentType, status, parking, payment and connectorTypes return the German register value unchanged – you can keep comparing against it. The fields with the Label suffix next to them carry the same information in the language of the request (?lang= or cookie). The same goes for details.openingHoursLabel and mobile.label, which exist as a label only.
{
"id": 1035432, // Ladeeinrichtungs-ID der Bundesnetzagentur
"operator": "EWE Go GmbH",
"address": "Dießemer Bruch 98, 47805 Krefeld",
"latitude": 51.327954, "longitude": 6.5911,
"distance": 1.36, // Luftlinie in km
"power": 300, // stärkster Einzelstecker
"powerTotal": 300, // Anschlussleistung der Ladeeinrichtung
"chargingPoints": 2,
"currentType": "Schnellladeeinrichtung", // Rohwert, immer deutsch
"currentTypeLabel": "Rapid charging station", // in der Sprache der Anfrage
"connectorTypes": ["CCS"],
"connectorTypeLabels": ["CCS"],
"payment": ["RFID-Karte"], "paymentLabels": ["RFID card"],
"details": {
"openingHoursLabel": "Rund um die Uhr",
"openState": { "state": "always", "until": null, "next": null },
"status": "In Betrieb", "statusLabel": "In operation",
"parking": "Keine Beschränkung", "parkingLabel": "No restriction",
"district": "…", "state": "Nordrhein-Westfalen"
},
"chargePoints": [ { "position": 1, "evseId": "DE*EWE*E…", "power": 300,
"key": { "verified": true, "curve": "prime256v1" } } ],
"eichrecht": { "reported": 2, "usable": 2, "verified": 2 },
"warnings": [ { "code": "key_shared", "level": "warn", "count": 1 } ],
"mobile": { "operators": 3, "of": 3, "label": "alle 3 Netzbetreiber" },
"source": "both" // arcgis | register | both
}
Semicolon as separator, UTF-8 with BOM, decimal comma – that way the file opens in a German Excel installation without rework. Grouped charging parks are split back into individual rows in the export. The first line is a source note starting with # – the licence requires it whenever the data is passed on. The column headers are on line two.
Ladeeinrichtungs-ID; Betreiber; Adresse; Kreis; Bundesland; Breitengrad; Laengengrad; Entfernung km; Staerkster Ladepunkt kW; Anschlussleistung kW; Ladepunkte; Art; Steckertypen; Bezahlung; Oeffnungszeiten; Jetzt geoeffnet; Betriebsstatus; Inbetriebnahme; Ladepunkte mit bestaetigtem Schluessel; EVSE-IDs; Quelle; Seite
X-API-Key header or as a key= parameter. That gives you 10 queries and 1 export per day free of charge, which is enough to build an integration and to run it. For anything in series, buy access for 19,99 € – the daily limit then no longer applies. Without a key the interface answers 401, above the limit 402; in both cases the JSON says what to do. A request over 100 km keeps the server busy for several seconds – if you need the whole inventory, better to download it directly from the Bundesnetzagentur – the same file underlies this site.The master data comes from the charging point register of the Bundesnetzagentur and is published under the Data licence Germany – Attribution – Version 2.0. When reusing it, the Bundesnetzagentur belongs in the attribution.
Everything this site adds – the analysis of the public keys, the grouping into charging parks, the opening-hours analysis, photos and experience reports – you may likewise use with attribution to chargemyride.live. Photos come from visitors to this site; anyone reusing them elsewhere should do so with due caution.
| Address | What it returns |
|---|---|
| /publickey.php?station=… | Complete public key of a charge point, optionally as PEM (&format=pem). Also reachable via ?evse=. |
| /geocode.php?q=… | Place name to coordinates, for the search form. |
| /station/<id> | Human-readable page of a charging station, with structured data (JSON-LD) in the head. |
| /sitemap.xml | All addresses of the site, separated by topic. |
| /feedback.php | Accepts feedback about a charging station by POST (station, result, props[], note). At most 8 per hour and sender. |
The register as a whole? For analyses a radius search cannot do – time series, fleet planning, municipal siting questions. Today the interface serves one radius per request.
One click, nothing more: no address, no account, no mail. All that is counted is how many people wanted it – that is what decides what gets built next.