Skip to main content

Content types

UsageContent-Type
Token endpointsapplication/x-www-form-urlencoded
POST /api/devicesapplication/json (body { "vehicleIds": [ ... ] })
Most other POST /api/* routesNo body; parameters in query string or route
Successful JSON responsesapplication/json; charset=utf-8
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:
{
  "items": [...],
  "currentPage": 1,
  "numberOfPages": 7,
  "totalResults": 342,
  "lastResultIndex": 24
}
FieldTypeDescription
itemsarrayRecords on the current page
currentPageintegerCurrent page number (1-based)
numberOfPagesintegerTotal number of pages
totalResultsintegerTotal records across all pages
lastResultIndexintegerZero-based index of the last record on this page
Pagination parameters:
ParameterDefaultMaxDescription
pageNumber1Page to retrieve (1-based)
resultsPerPage25500Records per page
searchStringOptional filter (name or IMEI)

Date and time

  • JSON serialization for DateTime uses custom converters (SimplifiedDateTimeConverter) that write without fractional seconds, e.g. 2026-04-07T14:32:00.
  • Request parameters: pass ISO-like strings that DateTime.Parse accepts (e.g. 2026-04-07T14:32:00 or 2026-04-07T14:32:00Z depending on client). Many actions call DateTime.SpecifyKind(..., Utc) in code—treat replay and position ranges as UTC unless the controller comment says otherwise.
  • TimeSpan in JSON (e.g. trip Duration) 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 / secondsAgo on last-time-online DTOs
Clients should bind to these exact names.

Null vs omitted

  • Nullable reference fields may be omitted or null depending on serializer defaults; treat absent optional fields as null.
  • For PositionDto, isOnline is only set in snapshot-based paths; record-based paths may omit or default it.