Base URL
Each URL takes only its own kind of key; a key sent to the other is rejected with
wrong_environment. The key decides whether a request acts on your sandbox or your real fleet. See Authentication.
Authentication
SendAuthorization: Bearer <your API key> on every request. Each endpoint page lists the scope it needs; a key without it gets 403 missing_scope.
Requests and responses
- Send JSON bodies with
Content-Type: application/json. Bodies are limited to 1 MB. Send only documented fields: most endpoints reject unknown fields withparameter_invalid, and the rest ignore them. - Photo and image uploads (
POST /drivers/{driverId}/photo,POST /vehicles/{vehicleId}/image) aremultipart/form-data, with a single image of up to 5 MB in thephotoorimagefield. - Money and kWh values in responses are decimal strings. See conventions.
- Lists are paginated. Errors use the error object.
POSTs accept anIdempotency-Key, and two require it. - Every response carries
X-Request-Id, and rate-limit headers.
Limits
Limits cap how much energy (metric: "kwh") or money (metric: "ghs") a driver can use per session, day, week or month. Days, weeks (starting Monday) and months are calendar periods in UTC (Ghana time).
PUT /limitsreplaces the fleet’s default limits, which apply to every driver.PUT /drivers/{driverId}/limitsreplaces one driver’s overrides. An override withamount: nullexempts the driver from that fleet default.GET /drivers/{driverId}/limitsreturns the driver’soverridesand the effectivelimits, withsource(fleetordriver) on each.
limit.reached event.
