Skip to main content
This reference is generated from the Fleet API’s OpenAPI 3.1 document, which is produced from the same schemas that validate requests. You can also fetch it yourself without an API key:

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

Send Authorization: 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 with parameter_invalid, and the rest ignore them.
  • Photo and image uploads (POST /drivers/{driverId}/photo, POST /vehicles/{vehicleId}/image) are multipart/form-data, with a single image of up to 5 MB in the photo or image field.
  • Money and kWh values in responses are decimal strings. See conventions.
  • Lists are paginated. Errors use the error object. POSTs accept an Idempotency-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 /limits replaces the fleet’s default limits, which apply to every driver.
  • PUT /drivers/{driverId}/limits replaces one driver’s overrides. An override with amount: null exempts the driver from that fleet default.
  • GET /drivers/{driverId}/limits returns the driver’s overrides and the effective limits, with source (fleet or driver) on each.
A set holds at most 8 limits, at most one per metric and period. When a limit caps or blocks a session start you get a limit.reached event.