Partner API
Read approved charger data. Partners call this endpoint. This app does not call you.
Authentication
Each partner gets their own token. Send it on every request.
Authorization: Bearer <token>
A missing or wrong token returns 401 with the message Unauthenticated.
List charge points
Returns approved charge points, oldest id first.
GET https://aviation-dev.ultrabold.de/api/v1/charge-points
Unapproved charge points are omitted.
GeoJSON
The same chargers as a FeatureCollection. Each feature is a Point. Coordinates are [longitude, latitude]. The usual fields sit in properties. There is no pagination: every matching approved charger is in the file. Chargers without coordinates are left out. icao and country work the same way.
GET https://aviation-dev.ultrabold.de/api/v1/charge-points.geojson
Query parameters
icao- ICAO code or locator. Matches either field. Max 8 characters.
country- ICAO country prefix, the same value as the map country filter, for example ED. Max 4 characters.
page- Page number, starting at 1.
per_page- Results per page. Minimum 1, maximum 200, default 100.
Response
id- Charge point id in this system.
icao- ICAO code, or the locator when no ICAO code is stored.
airfield- Airfield name.
location- Coordinates used on the map. source is charge_point when an operator marked the charger, otherwise arp (the airfield reference point).
manufacturer- Charger manufacturer, or null.
connectors- Connector names.
aircraft_types- Aircraft types that can use this charger.
software_version- Charging software version, or null.
payment_types- Payment types.
available- Current yes/no. When the charger is linked to Monta, this follows the live state.
live_state,live_state_synced_at- Monta state, or null when the charger is not linked. Synced time is ISO 8601, or null.
availability- Weekly opening hours. Not live occupancy. Each day is monday through sunday with open, from, and to (HH:MM).
type- Charger type, for example AC or DC.
kw- Power in kW, as stored. May be null.
{
"data": [
{
"id": 12,
"icao": "EDFE",
"airfield": "Egelsbach",
"location": {
"lat": 50.1234567,
"lng": 8.7654321,
"source": "charge_point"
},
"manufacturer": "Monta",
"connectors": ["CCS"],
"aircraft_types": ["eFlyer"],
"software_version": "2.4.1",
"payment_types": ["RFID"],
"available": true,
"live_state": "available",
"live_state_synced_at": "2026-09-22T16:00:00+02:00",
"availability": {
"monday": { "open": true, "from": "08:00", "to": "18:00" }
},
"type": "DC",
"kw": "50"
}
],
"meta": {
"current_page": 1,
"per_page": 100,
"total": 1,
"last_page": 1
}
}
Live states
availableAvailablebusyIn usebusy-blockedBlockedbusy-chargingChargingbusy-non-chargingOccupiedbusy-non-releasedNot releasedbusy-reservedReservedbusy-scheduledSchedulederrorErrordisconnectedOfflinepassiveLocal controlmaintenanceMaintenanceexemptExemptotherUnknown
Errors
- 401 when the bearer token is missing or wrong.
- 422 when a query parameter fails validation.
- 429 above 120 requests per minute from one IP address.