Content types
Token routes in the API Reference: Dashboard user token · API key token.
Response envelope
Successful operations return the payload directly (200 OK with DTO JSON). There is no global wrapper like { "data": ... }.
Service-layer results use ApiResult / ApiResult<T> internally; controllers map them to HTTP status codes and return either the DTO or the error object as the JSON body (see Errors).
V1 endpoints are not rate-limited. There are no
X-RateLimit-* response headers on V1 responses. Rate limiting applies only to V2 (/api/v2/...) endpoints.Pagination
Only one V1 endpoint is paginated:POST /api/GetCompanyVehiclesBatteryHealth. All other V1 endpoints return their full result set.
The paginated response envelope is:
Pagination parameters:
Date and time
- JSON serialization for
DateTimeuses custom converters (SimplifiedDateTimeConverter) that write without fractional seconds, e.g.2026-04-07T14:32:00. - Request parameters: pass ISO-like strings that
DateTime.Parseaccepts (e.g.2026-04-07T14:32:00or2026-04-07T14:32:00Zdepending on client). Many actions callDateTime.SpecifyKind(..., Utc)in code—treat replay and position ranges as UTC unless the controller comment says otherwise. TimeSpanin JSON (e.g. tripDuration) uses standard .NET format.
Legacy JSON field names
Several DTOs use legacy spellings for backward compatibility:UserTimeFormated,LastMovementTimeUserFormated(missing “t” in “Formatted”)ConnectionStrengh(missing “g” in “Strength”)LastTimeUTC/secondsAgoon last-time-online DTOs
Null vs omitted
- Nullable reference fields may be omitted or null depending on serializer defaults; treat absent optional fields as null.
- For
PositionDto,isOnlineis only set in snapshot-based paths; record-based paths may omit or default it.