Vehicle - Vehicles

The Admin interface handles web service calls from the Admin web gui. The base url for this is at:

/api/vehicle-admin

A JSON file with OpenAPI data about all vehicle-related admin APIs can be downloaded here.

Get vehicle description

Gets the Vehicle description:

GET /v1/vehicles/{id}

Return the Vehicle description (many fields)

Parameters
  • id (integer) – Vehicle ID

Status Codes
DELETE /v1/vehicles/{id}

Delete the vehicle indicated by the ID

Parameters
  • id (integer) – Vehicle ID

Status Codes
id: Vehicle ID (int)

Returns all the data of the vehicle corresponding to the id provided in the request:

{
  "ID": 26,                                                   // Int
  "LicensePlate": "AA000AA",                                  // String
  "VIN": "01234567890",                                       // String
  "Sticker": null,                                            // String (nullable)
  "LastSetOperativeBy": null,                                 // String (nullable)
  "IsOperative": true,                                        // Boolean
  "AdminOperativeStatus": true,                               // Boolean
  "SystemOperativeStatus": true,                              // Boolean
  "SystemOperativeReason": "",                                // String (nullable)
  "OverriddenSystemOperativeStatus": true,                    // Boolean
  "ForcedOperativeBy": 'Administrator.name'                   // String (nullable)
  "Notes": null,                                              // String (nullable)
  "CategoryLabels": "{\"en\":\"Jolly Smart\"}",               // String
  "CategoryID": 2,                                            // Int
  "CategoryTree":
  {                                                           //
    "ID": 1,                                                  // Int
    "Labels": "{\"en\":\"City Car\"}",                        // String
    "Children": [...]                                         // Category Array (nullable)
  },
  "Devices":                                                  // Device Array (nullable)
  [
    {
      "ID": 13,                                               // Int
      "SerialNumber": "EDOXVERZKOSYXUJ",                      // String
      "LastDeviceSync": "2001-01-01T00:00:00Z"                // DateTime (nullable)
    },
    ...
  ],
  "NominalGarage": "Udine Garage",                            // String
  "NominalGarageID": 4,                                       // Int
  "RecoveringGarage": null,                                   // String (nullable)
  "RecoveringGarageID": null,                                 // Int (nullable)
  "Latitude": 46.0838284476514,                               // Double (nullable)
  "Longitude": 13.217754364013674,                            // Double (nullable)
  "LastPositionUpdate": "2020-09-10T08:31:16Z",               // DateTime (nullable)
  "Groups": [ "51c770b3-c4f6-4203-9067-e05666137cec",... ],   // Guid Array
  "CurrentTripGuid": null,                                    // Guid (nullable)
  "DeviceID": 13,                                             // Int (nullable)
  "LastDeviceSync": null,                                     // DateTime (nullable)
  "LastNetworkSignalStrengthPct": null,                       // Int (nullable)
  "EngineType": 0,                                            // Int
  "FuelTankCapacity": null,                                   // Int (nullable)
  "FuelLevelPct": null,                                       // Double (nullable)
  "EVBLevelPct": null,                                        // Double (nullable)
  "OdometerKm": null,                                         // Double (nullable)
  "LastOdometerReading": null,                                // DateTime (nullable)
  "IsDamaged": true,                                          // Boolean (nullable)
  "Status":
  {
    "CurrentReservationEnd": null,                            // DateTime (nullable)
    "CurrentReservationMaxStart": null,                       // DateTime (nullable)
    "CurrentReservationMinStart": null,                       // DateTime (nullable)
    "LastDeviceSync": null,                                   // DateTime (nullable)
    "LastMaintenanceEnd": null,                               // DateTime (nullable)
    "LastMaintenanceStart": null,                             // DateTime (nullable)
    "LastMotion": null,                                       // DateTime (nullable)
    "LastPositionUpdate": "2020-09-10T08:31:16Z",             // DateTime (nullable)
    "LastTripEnd": "2020-09-10T08:34:33Z",                    // DateTime (nullable)
    "LastTripStart": "2020-09-10T08:31:16Z",                  // DateTime (nullable)
    "FuelLevelPct": null,                                     // Double (nullable)
    "ServiceBattery": null,                                   // Double (nullable)
    "LastNetworkSignalStrengthPct": null,                     // Int (nullable)
    "AdminOperativeStatus": true,                             // Boolean
    "SystemOperativeStatus": true,                            // Boolean
    "IsLowFuel": true,                                        // Boolean
    "IsLowEVB": true,                                         // Boolean
    "IsLostContact": true,                                    // Boolean
    "IsPositionLost": true,                                   // Boolean
    "IsReserved": false,                                      // Boolean
    "IsOnTrip": false,                                        // Boolean
    "IsOnTripAndMoving": false,                               // Boolean
    "IsWithoutTripsForLong": true,                            // Boolean
    "IsInMaintenance": false,                                 // Boolean
    "IsInternetWeak": true                                    // Boolean
  },                                                          //
  "InternalCleaningStatus": null,                             // Int (nullable)
  "ExternalCleaningStatus": null,                             // Int (nullable)
  "IgnitionVoltageLevel": null                                // Int (nullable)
}

or a plain Json negative response if no corresponding record is found.

The field Labels in CategoryTree contains a stringified Json containing pairs “language code”:”localized value”

Values of InternalCleaningStatus and ExternalCleaningStatus can be one of the VehicleCleaningStatus enumeration.

Values of EngineType can be one of the VehicleEngineTypes enumeration.

Get vehicle description by Guid

Gets the Vehicle description given its guid:

GET /v1/vehicles/{id}

Return the Vehicle description (many fields)

Parameters
  • id (integer) – Vehicle ID

Status Codes
DELETE /v1/vehicles/{id}

Delete the vehicle indicated by the ID

Parameters
  • id (integer) – Vehicle ID

Status Codes
id: Vehicle ID (int)

Returns all the data of the vehicle corresponding to the id provided in the request:

{
  "ID": 26,                                                   // Int
  "LicensePlate": "AA000AA",                                  // String
  "VIN": "01234567890",                                       // String
  "Sticker": null,                                            // String (nullable)
  "LastSetOperativeBy": null,                                 // String (nullable)
  "IsOperative": true,                                        // Boolean
  "AdminOperativeStatus": true,                               // Boolean
  "SystemOperativeStatus": true,                              // Boolean
  "SystemOperativeReason": "",                                // String (nullable)
  "OverriddenSystemOperativeStatus": true,                    // Boolean
  "ForcedOperativeBy": "Administrator.name",                  // String (nullable)
  "Notes": null,                                              // String (nullable)
  "CategoryLabels": "{\"en\":\"Jolly Smart\"}",               // String
  "CategoryID": 2,                                            // Int
  "CategoryTree":
  {                                                           //
    "ID": 1,                                                  // Int
    "Labels": "{\"en\":\"City Car\"}",                        // String
    "Children": [...]                                         // Category Array (nullable)
  },
  "Devices":                                                  // Device Array (nullable)
  [
    {
      "ID": 13,                                               // Int
      "SerialNumber": "EDOXVERZKOSYXUJ",                      // String
      "LastDeviceSync": "2001-01-01T00:00:00Z"                // DateTime (nullable)
    },
    ...
  ],
  "NominalGarage": "Udine Garage",                            // String
  "NominalGarageID": 4,                                       // Int
  "RecoveringGarage": null,                                   // String (nullable)
  "RecoveringGarageID": null,                                 // Int (nullable)
  "Latitude": 46.0838284476514,                               // Double (nullable)
  "Longitude": 13.217754364013674,                            // Double (nullable)
  "LastPositionUpdate": "2020-09-10T08:31:16Z",               // DateTime (nullable)
  "Groups": [ "51c770b3-c4f6-4203-9067-e05666137cec",... ],   // Guid Array
  "CurrentTripGuid": null,                                    // Guid (nullable)
  "DeviceID": 13,                                             // Int (nullable)
  "LastDeviceSync": null,                                     // DateTime (nullable)
  "LastNetworkSignalStrengthPct": null,                       // Int (nullable)
  "EngineType": 0,                                            // Int
  "FuelTankCapacity": null,                                   // Int (nullable)
  "FuelLevelPct": null,                                       // Double (nullable)
  "EVBLevelPct": null,                                        // Double (nullable)
  "OdometerKm": null,                                         // Double (nullable)
  "LastOdometerReading": null,                                // DateTime (nullable)
  "IsDamaged": true,                                          // Boolean (nullable)
  "Status":
  {
    "CurrentReservationEnd": null,                            // DateTime (nullable)
    "CurrentReservationMaxStart": null,                       // DateTime (nullable)
    "CurrentReservationMinStart": null,                       // DateTime (nullable)
    "LastDeviceSync": null,                                   // DateTime (nullable)
    "LastMaintenanceEnd": null,                               // DateTime (nullable)
    "LastMaintenanceStart": null,                             // DateTime (nullable)
    "LastMotion": null,                                       // DateTime (nullable)
    "LastPositionUpdate": "2020-09-10T08:31:16Z",             // DateTime (nullable)
    "LastTripEnd": "2020-09-10T08:34:33Z",                    // DateTime (nullable)
    "LastTripStart": "2020-09-10T08:31:16Z",                  // DateTime (nullable)
    "FuelLevelPct": null,                                     // Double (nullable)
    "ServiceBattery": null,                                   // Double (nullable)
    "LastNetworkSignalStrengthPct": null,                     // Int (nullable)
    "AdminOperativeStatus": true,                             // Boolean
    "SystemOperativeStatus": true,                            // Boolean
    "IsLowFuel": true,                                        // Boolean
    "IsLowEVB": true,                                         // Boolean
    "IsLostContact": true,                                    // Boolean
    "IsPositionLost": true,                                   // Boolean
    "IsReserved": false,                                      // Boolean
    "IsOnTrip": false,                                        // Boolean
    "IsOnTripAndMoving": false,                               // Boolean
    "IsWithoutTripsForLong": true,                            // Boolean
    "IsInMaintenance": false,                                 // Boolean
    "IsInternetWeak": true                                    // Boolean
  },                                                          //
  "InternalCleaningStatus": null,                             // Int (nullable)
  "ExternalCleaningStatus": null,                             // Int (nullable)
  "IgnitionVoltageLevel": null                                // Int (nullable)
}

or a plain Json negative response if no corresponding record is found.

The field Labels in CategoryTree contains a stringified Json containing pairs “language code”:”localized value”

Values of InternalCleaningStatus and ExternalCleaningStatus can be one of the VehicleCleaningStatus enumeration.

Values of EngineType can be one of the VehicleEngineTypes enumeration.

Get vehicle trips

Gets the list of trips related to the vehicle (it’s a Paged List APIs, as explained in the introduction):

GET /v1/vehicles/{id}/trips

Returns trips related to a vehicle

Parameters
  • id (integer) – Vehicle ID

Status Codes
id: Vehicle ID (int)

Returns a list of trips:

[
  {
    ID: 440,                                              // Int
    StartTimestamp: "2020-04-30T15:23:41Z",               // DateTime
    CreatedDate: "2020-04-30T15:23:27Z",                  // DateTime
    LastUpdated: "2020-04-30T15:34:51Z",                  // DateTime
    StartLongitude: 12.161521911621096,                   // Double (nullable)
    StartLatitude: 45.669532661484325,                    // Double (nullable)
    EndLongitude: 12.161521911621096,                     // Double (nullable)
    EndLatitude: 45.669532661484325,                      // Double (nullable)
    IsCompleted: true,                                    // Boolean
    TripType: 0,                                          // Int
    EndTimestamp: "2020-04-30T15:23:39Z",                 // DateTime (nullable)
    OriginatingDeviceKey: null,                           // String (nullable)
    TripGuid: "34c4c0a8-f686-4b1a-843f-0231eac4218f",     // Guid (nullable)
    DeletionDate: "2020-04-30T15:23:39Z"                  // DateTime (nullable)
  },
  ...
]

Value of the TripType field can be one of the VehicleTripType enumeration.

Get vehicles

Gets a list of vehicles (it’s a Paged List APIs, as explained in the introduction):

GET /v1/vehicles/list

Returns the list of all active vehicles

Status Codes

Returns a list of all vehicles:

[
  {
    "ID": 26,                                                   // Int
    "LicensePlate": "AA000AA",                                  // String
    "VIN": "01234567890",                                       // String
    "Sticker": null,                                            // String (nullable)
    "LastSetOperativeBy": null,                                 // String (nullable)
    "IsOperative": true,                                        // Boolean
    "AdminOperativeStatus": true,                               // Boolean
    "SystemOperativeStatus": true,                              // Boolean
    "SystemOperativeReason": "",                                // String (nullable)
    "OverriddenSystemOperativeStatus": true,                    // Boolean
    "ForcedOperativeBy": 'Administrator.name'                   // String (nullable)
    "Notes": null,                                              // String (nullable)
    "CategoryLabels": "{\"en\":\"Jolly Smart\"}",               // String
    "CategoryID": 2,                                            // Int
    "CategoryTree":
    {                                                           //
      "ID": 1,                                                  // Int
      "Labels": "{\"en\":\"City Car\"}",                        // String
      "Children": [...]                                         // Category Array (nullable)
    },
    "Devices":                                                  // Device Array (nullable)
    [
      {
        "ID": 13,                                               // Int
        "SerialNumber": "EDOXVERZKOSYXUJ",                      // String
        "LastDeviceSync": "2001-01-01T00:00:00Z"                // DateTime (nullable)
      },
      ...
    ],
    "NominalGarage": "Udine Garage",                            // String
    "NominalGarageID": 4,                                       // Int
    "RecoveringGarage": null,                                   // String (nullable)
    "RecoveringGarageID": null,                                 // Int (nullable)
    "Latitude": 46.0838284476514,                               // Double (nullable)
    "Longitude": 13.217754364013674,                            // Double (nullable)
    "LastPositionUpdate": "2020-09-10T08:31:16Z",               // DateTime (nullable)
    "Groups": [ "51c770b3-c4f6-4203-9067-e05666137cec",... ],   // Guid Array
    "CurrentTripGuid": null,                                    // Guid (nullable)
    "DeviceID": 13,                                             // Int (nullable)
    "LastDeviceSync": null,                                     // DateTime (nullable)
    "LastNetworkSignalStrengthPct": null,                       // Int (nullable)
    "EngineType": 0,                                            // Int
    "FuelTankCapacity": null,                                   // Int (nullable)
    "FuelLevelPct": null,                                       // Double (nullable)
    "EVBLevelPct": null,                                        // Double (nullable)
    "OdometerKm": null,                                         // Double (nullable)
    "LastOdometerReading": null,                                // DateTime (nullable)
    "IsDamaged": true,                                          // Boolean (nullable)
    "Status":
    {
      "CurrentReservationEnd": null,                            // DateTime (nullable)
      "CurrentReservationMaxStart": null,                       // DateTime (nullable)
      "CurrentReservationMinStart": null,                       // DateTime (nullable)
      "LastDeviceSync": null,                                   // DateTime (nullable)
      "LastMaintenanceEnd": null,                               // DateTime (nullable)
      "LastMaintenanceStart": null,                             // DateTime (nullable)
      "LastMotion": null,                                       // DateTime (nullable)
      "LastPositionUpdate": "2020-09-10T08:31:16Z",             // DateTime (nullable)
      "LastTripEnd": "2020-09-10T08:34:33Z",                    // DateTime (nullable)
      "LastTripStart": "2020-09-10T08:31:16Z",                  // DateTime (nullable)
      "FuelLevelPct": null,                                     // Double (nullable)
      "ServiceBattery": null,                                   // Double (nullable)
      "LastNetworkSignalStrengthPct": null,                     // Int (nullable)
      "AdminOperativeStatus": true,                             // Boolean
      "SystemOperativeStatus": true,                            // Boolean
      "IsLowFuel": true,                                        // Boolean
      "IsLowEVB": true,                                         // Boolean
      "IsLostContact": true,                                    // Boolean
      "IsPositionLost": true,                                   // Boolean
      "IsReserved": false,                                      // Boolean
      "IsOnTrip": false,                                        // Boolean
      "IsOnTripAndMoving": false,                               // Boolean
      "IsWithoutTripsForLong": true,                            // Boolean
      "IsInMaintenance": false,                                 // Boolean
      "IsInternetWeak": true                                    // Boolean
    },
    "InternalCleaningStatus": null,                             // Int (nullable)
    "ExternalCleaningStatus": null,                             // Int (nullable)
    "IgnitionVoltageLevel": null                                // Int (nullable)
  },
  ...
]

The field CategoryLabels and Labels in CategoryTree contain a stringified Json containing pairs “language code”:”localized value”

Value of the InternalCleaningStatus and ExternalCleaningStatus fields can be one of the VehicleCleaningStatus enumeration.

Values of EngineType can be one of the VehicleEngineTypes enumeration.

Get vehicles in area

Gets a list of vehicles within an area (data presents in the body):

POST /v1/vehicles/area

Return a list of vehicles within an area (data presents in the body)

Status Codes

The body of the request is:

{
  NorthBound: 51.1536622,            // Double (Required)
  EastBound:  -0.19081760000000259,  // Double (Required)
  SouthBound: 51.1536622,            // Double (Required)
  WestBound:  -0.19081760000000259   // Double (Required)
}

All four points are required for the request to be valid.

If the request is successful, a Json positive response will be returned toeghether with the list of all the vehicles within the specified rectangle:

[
  {
    "ID": 26,                                                   // Int
    "LicensePlate": "AA000AA",                                  // String
    "VIN": "01234567890",                                       // String
    "Sticker": null,                                            // String (nullable)
    "LastSetOperativeBy": null,                                 // String (nullable)
    "IsOperative": true,                                        // Boolean
    "AdminOperativeStatus": true,                               // Boolean
    "SystemOperativeStatus": true,                              // Boolean
    "SystemOperativeReason": "",                                // String (nullable)
    "OverriddenSystemOperativeStatus": true,                    // Boolean
    "ForcedOperativeBy": "Administrator.name",                  // String (nullable)
    "Notes": null,                                              // String (nullable)
    "CategoryLabels": "{\"en\":\"Jolly Smart\"}",               // String
    "CategoryID": 2,                                            // Int
    "CategoryTree":
    {                                                           //
      "ID": 1,                                                  // Int
      "Labels": "{\"en\":\"City Car\"}",                        // String
      "Children": [...]                                         // Category Array (nullable)
    },
    "Devices":                                                  // Device Array (nullable)
    [
      {
        "ID": 13,                                               // Int
        "SerialNumber": "EDOXVERZKOSYXUJ",                      // String
        "LastDeviceSync": "2001-01-01T00:00:00Z"                // DateTime (nullable)
      },
      ...
    ],
    "NominalGarage": "Udine Garage",                            // String
    "NominalGarageID": 4,                                       // Int
    "RecoveringGarage": null,                                   // String (nullable)
    "RecoveringGarageID": null,                                 // Int (nullable)
    "Latitude": 46.0838284476514,                               // Double (nullable)
    "Longitude": 13.217754364013674,                            // Double (nullable)
    "LastPositionUpdate": "2020-09-10T08:31:16Z",               // DateTime (nullable)
    "Groups": [ "51c770b3-c4f6-4203-9067-e05666137cec",... ],   // Guid Array
    "CurrentTripGuid": null,                                    // Guid (nullable)
    "DeviceID": 13,                                             // Int (nullable)
    "LastDeviceSync": null,                                     // DateTime (nullable)
    "LastNetworkSignalStrengthPct": null,                       // Int (nullable)
    "EngineType": 0,                                            // Int
    "FuelTankCapacity": null,                                   // Int (nullable)
    "FuelLevelPct": null,                                       // Double (nullable)
    "EVBLevelPct": null,                                        // Double (nullable)
    "OdometerKm": null,                                         // Double (nullable)
    "LastOdometerReading": null,                                // DateTime (nullable)
    "IsDamaged": true,                                          // Boolean (nullable)
    "Status":
    {
      "CurrentReservationEnd": null,                            // DateTime (nullable)
      "CurrentReservationMaxStart": null,                       // DateTime (nullable)
      "CurrentReservationMinStart": null,                       // DateTime (nullable)
      "LastDeviceSync": null,                                   // DateTime (nullable)
      "LastMaintenanceEnd": null,                               // DateTime (nullable)
      "LastMaintenanceStart": null,                             // DateTime (nullable)
      "LastMotion": null,                                       // DateTime (nullable)
      "LastPositionUpdate": "2020-09-10T08:31:16Z",             // DateTime (nullable)
      "LastTripEnd": "2020-09-10T08:34:33Z",                    // DateTime (nullable)
      "LastTripStart": "2020-09-10T08:31:16Z",                  // DateTime (nullable)
      "FuelLevelPct": null,                                     // Double (nullable)
      "ServiceBattery": null,                                   // Double (nullable)
      "LastNetworkSignalStrengthPct": null,                     // Int (nullable)
      "AdminOperativeStatus": true,                             // Boolean
      "SystemOperativeStatus": true,                            // Boolean
      "IsLowFuel": true,                                        // Boolean
      "IsLowEVB": true,                                         // Boolean
      "IsLostContact": true,                                    // Boolean
      "IsPositionLost": true,                                   // Boolean
      "IsReserved": false,                                      // Boolean
      "IsOnTrip": false,                                        // Boolean
      "IsOnTripAndMoving": false,                               // Boolean
      "IsWithoutTripsForLong": true,                            // Boolean
      "IsInMaintenance": false,                                 // Boolean
      "IsInternetWeak": true                                    // Boolean
    },
    "InternalCleaningStatus": null,                             // Int (nullable)
    "ExternalCleaningStatus": null,                             // Int (nullable)
    "IgnitionVoltageLevel": null                                // Int (nullable)
  },
  ...
]

The field Labels in CategoryTree contains a stringified Json containing pairs “language code”:”localized value”

Values of InternalCleaningStatus and ExternalCleaningStatus can be one of the VehicleCleaningStatus enumeration.

Values of EngineType can be one of the VehicleEngineTypes enumeration.

If some of the bound point is not valorized or if there is a problem processing the request, a plain Json negative response will be returned.

Get vehicle by device

Gets the information of a vehicle connected to a particular device:

GET /v1/vehicles/by-device/{id}

Returns the information of a vehicle connected to the device

Parameters
  • id (integer) – Device ID

Status Codes
id: Device ID (int)

Returns a Json positive response and the details of the vehicle where the specified device is installed:

{
  "ID": 26,                                                   // Int
  "LicensePlate": "AA000AA",                                  // String
  "VIN": "01234567890",                                       // String
  "Sticker": null,                                            // String (nullable)
  "LastSetOperativeBy": null,                                 // String (nullable)
  "IsOperative": true,                                        // Boolean
  "AdminOperativeStatus": true,                               // Boolean
  "SystemOperativeStatus": true,                              // Boolean
  "SystemOperativeReason": "",                                // String (nullable)
  "OverriddenSystemOperativeStatus": true,                    // Boolean
  "ForcedOperativeBy": "Administrator.name",                  // String (nullable)
  "Notes": null,                                              // String (nullable)
  "CategoryLabels": "{\"en\":\"Jolly Smart\"}",               // String
  "CategoryID": 2,                                            // Int
  "CategoryTree":
  {                                                           //
    "ID": 1,                                                  // Int
    "Labels": "{\"en\":\"City Car\"}",                        // String
    "Children": [...]                                         // Category Array (nullable)
  },
  "Devices":                                                  // Device Array (nullable)
  [
    {
      "ID": 13,                                               // Int
      "SerialNumber": "EDOXVERZKOSYXUJ",                      // String
      "LastDeviceSync": "2001-01-01T00:00:00Z"                // DateTime (nullable)
    },
    ...
  ],
  "NominalGarage": "Udine Garage",                            // String
  "NominalGarageID": 4,                                       // Int
  "RecoveringGarage": null,                                   // String (nullable)
  "RecoveringGarageID": null,                                 // Int (nullable)
  "Latitude": 46.0838284476514,                               // Double (nullable)
  "Longitude": 13.217754364013674,                            // Double (nullable)
  "LastPositionUpdate": "2020-09-10T08:31:16Z",               // DateTime (nullable)
  "Groups": [ "51c770b3-c4f6-4203-9067-e05666137cec",... ],   // Guid Array
  "CurrentTripGuid": null,                                    // Guid (nullable)
  "DeviceID": 13,                                             // Int (nullable)
  "LastDeviceSync": null,                                     // DateTime (nullable)
  "LastNetworkSignalStrengthPct": null,                       // Int (nullable)
  "EngineType": 0,                                            // Int
  "FuelTankCapacity": null,                                   // Int (nullable)
  "FuelLevelPct": null,                                       // Double (nullable)
  "EVBLevelPct": null,                                        // Double (nullable)
  "OdometerKm": null,                                         // Double (nullable)
  "LastOdometerReading": null,                                // DateTime (nullable)
  "IsDamaged": true,                                          // Boolean (nullable)
  "Status":
  {
    "CurrentReservationEnd": null,                            // DateTime (nullable)
    "CurrentReservationMaxStart": null,                       // DateTime (nullable)
    "CurrentReservationMinStart": null,                       // DateTime (nullable)
    "LastDeviceSync": null,                                   // DateTime (nullable)
    "LastMaintenanceEnd": null,                               // DateTime (nullable)
    "LastMaintenanceStart": null,                             // DateTime (nullable)
    "LastMotion": null,                                       // DateTime (nullable)
    "LastPositionUpdate": "2020-09-10T08:31:16Z",             // DateTime (nullable)
    "LastTripEnd": "2020-09-10T08:34:33Z",                    // DateTime (nullable)
    "LastTripStart": "2020-09-10T08:31:16Z",                  // DateTime (nullable)
    "FuelLevelPct": null,                                     // Double (nullable)
    "ServiceBattery": null,                                   // Double (nullable)
    "LastNetworkSignalStrengthPct": null,                     // Int (nullable)
    "AdminOperativeStatus": true,                             // Boolean
    "SystemOperativeStatus": true,                            // Boolean
    "IsLowFuel": true,                                        // Boolean
    "IsLowEVB": true,                                         // Boolean
    "IsLostContact": true,                                    // Boolean
    "IsPositionLost": true,                                   // Boolean
    "IsReserved": false,                                      // Boolean
    "IsOnTrip": false,                                        // Boolean
    "IsOnTripAndMoving": false,                               // Boolean
    "IsWithoutTripsForLong": true,                            // Boolean
    "IsInMaintenance": false,                                 // Boolean
    "IsInternetWeak": true                                    // Boolean
  },                                                          //
  "InternalCleaningStatus": null,                             // Int (nullable)
  "ExternalCleaningStatus": null,                             // Int (nullable)
  "IgnitionVoltageLevel": null                                // Int (nullable)
}

The field CategoryLabels and Labels in CategoryTree contain a stringified Json containing pairs “language code”:”localized value”

Values of InternalCleaningStatus and ExternalCleaningStatus can be one of the VehicleCleaningStatus enumeration.

Values of EngineType can be one of the VehicleEngineTypes enumeration.

Add or Update vehicle

Add or updates the data of a vehicle:

POST /v1/vehicles

Update a vehicle’s data

Status Codes

The request body is:

{
  ID: 123,                        // Int
  LicensePlate: "ABC123CB",       // String
  Sticker: "...",                 // String (nullable)
  VIN: "343434343434343434",      // String
  AdminOperativeStatus: false,    // Boolean
  CategoryID: 1,                  // Int
  Notes: "",                      // String (nullable)
  Groups: [...],                  // Guid array (nullable)
  NominalGarageID: 2,             // Int
  RecoveringGarageID: 5,          // Int (nullable)
  IgnitionVoltageLevel: 130       // Int (nullable)
}

If the ID property is not provided or set to 0, then the request will create a new record, otherwise it will modify the existing vehicle.

The Groups property is handled only when ID is either 0 or not set. During an edit it will be ignored.

If the record has been successfully added or modified, the request will return a plain Json positive answer. Otherwise a plain Json negative response will be returned.

Possible error messages:

err_MissingCategory

No value provided for CategoryID

err_MissingNominalGarage

No value provided for NominalGarageID

err_InvalidElement

No group has been provided and the user is not a SuperAdmin, no LicensePlate or VIN has been provided, or no vehicle to edit has been found for the provided ID

Delete vehicle

Marks the vehicle indicated by the ID as deleted:

GET /v1/vehicles/{id}

Return the Vehicle description (many fields)

Parameters
  • id (integer) – Vehicle ID

Status Codes
DELETE /v1/vehicles/{id}

Delete the vehicle indicated by the ID

Parameters
  • id (integer) – Vehicle ID

Status Codes
id: Vehicle ID (int)

If the request is successful, it will returns a plain Json positive response and the vehicle will be deleted.

Possible error messages:

err_ElementDoesNotExist

There is no vehicle record corresponding to the ID in the request

err_CannotDeleteOnTrip

The vehicle cannot be deleted because it has an ongoing trip

Set operative

Set a vehicle (specified on the body) as operative:

POST /v1/vehicles/set-operative

Set a vehicle (specified on the body) as operative

Status Codes

The body of the request is:

{
  VehicleID: 123                          // Int
}

where VehicleID corresponds to a vehicle ID record.

If there is no corresponding vehicle, a plain Json negative response will be returned.

If the request is successful a plain Json positive response will be returned and the vehicle will be set as operative (SystemOperativeStatus = true).

Override system operativity

This endpoint is used by a SuperAdministrator to set the vehicle as operative regardless of the SystemOperativeStatus property.

POST /v1/vehicles/override-system-operative

Set a vehicle to overryde system operativity flag

Status Codes

The body of the request is:

{
  VehicleID: 123                          // Int
  Status: true                            // Boolean
}

where VehicleID corresponds to a vehicle ID record.

The API will return a plain error response if no vehicle was found for the provided ID, or one of the following error messages:

err_OperativityAlreadyOverridden

The vehicle already is set to ignore system operativity

err_AlreadyOperativeBySystem

The vehicle is not set as not operative by system

Relocate

Set latitude and longitude (specified on the body) position of a vehicle:

POST /v1/vehicles/{id}/relocate

Set latitude and longitude (specified on the body) position of a vehicle

Parameters
  • id (integer) –

Status Codes
id: Vehicle ID (int)

The body of the request is:

{
  Latitude: 123                          // Double (nullable)
  Longitude: 123                         // Double (nullable)
}

If Latitude or Longitude are not provided or there is no corresponding vehicle, a plain Json negative response will be returned.

If the request is successful a plain Json positive response will be returned and the vehicle position will be updated.

Set vehicle cleaning statuses

Set the cleaning statuses of a vehicle:

POST /v1/vehicles/{id}/cleaning-status

Set the cleaning status of a vehicle

Parameters
  • id (integer) – Vehicle id

Status Codes
id: Vehicle ID (int)

The body of the request is:

{
  ID: 123,                                // Int
  InternalCleaningStatus: 0,              // Int
  ExternalCleaningStatus: 0               // Int
}

Value types of InternalCleaningStatus and ExternalCleaningStatus can be one of the VehicleCleaningStatus enumeration.

Returns a plain Json positive response if the the cleaning status has been successfully set for the specified vehicle.

Returns a plain Json negative response if there is no vehicle corresponding to the ID provided in the body.

Get vehicle device metric

Retrieves the information relating to a single type of vehicle measurement:

GET /v1/vehicles/{id}/metric/{guid}

Returns information relating to a single type of vehicle measurement

Parameters
  • id (integer) – Vehicle ID

  • guid (string) – Type of measurement

Status Codes
id: Vehicle ID (int)
guid: Type of measurement (guid)

Returns the information for the vehicle measurement requested (e.g. service battery):

{
  Samples: [ [ key1,value1 ], [ key2,value2 ], ... ], // Two Dimensional Double Array (value is nullable)
  Start: "2020-04-27T00:00:00Z",                      // DateTime
  Min: 120,                                           // Double (nullable)
  Max: 123,                                           // Double (nullable)
  First: 121,                                         // Double (nullable)
  Last: 123,                                          // Double (nullable)
  Average: 123                                        // Double (nullable)
}

Samples: keyn and valuen are Double. valuen can be null. keyn are seconds from the date specified in the field Start

Get available vehicles

Get the number of the vehicles that are currently available:

GET /v1/vehicles/count-available

Return the number of the available vehicles

Status Codes

Returns a Json positive response and the number of the available vehicles:

{
  11      // Int
}

Get vehicle groups

Gets a list of the groups linked to the specified vehicle (it’s a Paged List APIs, as explained in the introduction):

GET /v1/vehicles/{id}/groups

Groups related to a vehicle

Parameters
  • id (integer) – Vehicle ID

Status Codes
id: Vehicle ID (int)

Returns the list of groups that the specified vehicle belongs to:

[
  {
    Name: "Venice",                                       // String
    Description: "Description",                           // String (nullable)
    Guid: "2ddc0f63-e924-4fba-8e31-fa5803bf1e39",         // Guid
    Originator: "32b297a5-8180-420f-9482-84bfc7f55efe",   // Guid
    DeletionDate: "2020-04-27T00:00:00Z"                  // DateTime (nullable)
  },
  ...
]

Add vehicles to group

Connect groups to a vehicle:

POST /v1/vehicles/groups

Connect groups to a vehicle

Status Codes

With a body like this:

{
  ID: 123,                                                                                          // Int (Required)
  Groups: [ "2ddc0f63-e924-4fba-8e31-fa5803bf1e39", "a0c79a5b-74bb-45e8-87da-66ddcd6919d0", ... ]   // Guid Array
}

If the request is successful a plain Json positive response will be returned to confirm that the vehicle groups have been updated.

Possible errors are:

err_InvalidElement

There is no vehicle corresponding to the ID provided in the request body

Get zones

Gets the zones containing the vehicle, from widest to smallest, or null if vehicle position is unknown:

GET /v1/vehicles/{id}/zones

Zones containing the vehicle, from widest to smallest, or null if vehicle position is unknown

Parameters
  • id (integer) – Vehicle ID

Status Codes
id: Vehicle ID (int)

If the vehicle is in a known zone, then a Json positive response will be returned with the list of zones:

[
  {
    "ID": 1,                                           // Int
    "CreatedDate": "2020-09-09T11:45:15Z",             // DateTime
    "LastUpdated": "2020-09-09T11:45:15Z",             // DateTime
    "Guid": "6d705861-31e0-4b5f-aef4-135517b5c715",    // Guid
    "Name": "London Heathrow Airport",                 // String
    "MainEntranceAddress": "Canberra Rd",              // String (nullable)
    "MainEntranceCity": "Longford, Hounslow, UK",      // String (nullable)
    "MainEntranceLatitude": 51.471158,                 // Double (nullable)
    "MainEntranceLongitude": -0.456838,                // Double (nullable)
    "CentroidLatitude": 51.471158,                     // Double (nullable)
    "CentroidLongitude": -0.45683800000000474,         // Double (nullable)
    "Geometry": "ChIJ9fkoIy68SUAR...",                 // ByteArray (as String)
    "MainEntranceOpeningHours": null,                  // String (nullable)
    "MainEntranceTermsConditions": null,               // String (nullable)
    "IsPaidParking": true,                             // Boolean
    "CanRefuelElectricVehicles": true,                 // Boolean
    "CanRefuelICEVehicles": false,                     // Boolean
    "IsFreefloatingArea": false,                       // Boolean
    "IsRoundtripArea": false,                          // Boolean
    "IsAvailable": true,                               // Boolean
    "ParkingSpots": 0,                                 // Int
    "Type": 0,                                         // Int
    "Polygon":
    {
      "Points":
      [
        {
            "Latitude": 51.470158000000005,            // Double
            "Longitude": -0.457838                     // Double
        },
        ...
      ]
    },
    "UtcOffsetMinutes": 60,                            // Int
    "CommunityCount": 0                                // Int
  }
]

The field geometry is a byte array.

If there is no vehicle corresponding to the provided ID, a plain Json negative response will be returned.

Possible errors are:

err_UnknownPosition

The specified vehicle is not currently in any known zone

Get vehicle damages

Gets a list of information of damage related to a vehicle (it’s a Paged List APIs, as explained in the introduction):

GET /v1/vehicles/{id}/damage-reports

Returns a list of information of damage related to a vehicle

Parameters
  • id (integer) –

Status Codes
id: Vehicle ID (int)

Returns the list of damages for the specified vehicle:

[
  {
    "ID": 1,                                                  // Int
    "CreatedDate": "2020-09-10T08:33:30Z",                    // DateTime
    "ReportingUser": "21b3da2c-159c-4d76-ad25-e4a8452513ab",  // Guid
    "ReportingUserName": "abel@gmail.com",                    // String
    "Severity": 1,                                            // Int
    "Solved": null,                                           // DateTime (nullable)
    "IsBlocking": null,                                       // Boolean (nullable)
    "SolvingUser": null,                                      // Guid (nullable)
    "SolvingUserName": null,                                  // String (nullable)
    "Notes": "Internal mirror damage",                        // String (nullable)
    "Attachments":                                            // Guid Array
    [
      "f13abe76-91e1-4d18-be36-6edf68c840dc"                  // Guid
    ],
    "VehicleID": 26,                                          // Int
    "LicensePlate": "null",                                   // String (nullable)
    "OperationID": null,                                      // Int (nullable)
    "OperatingBaseID": null,                                  // int (nullable)
    "OperatingBase": null,                                    // String (nullable)
    "LastOperationUpdate": null,                              // DateTime (nullable)
    "OperationEnteredBy": null,                               // String (nullable)
    "OperationSignedOffBy": null,                             // String (nullable)
    "OperationPerformedBy": null,                             // String (nullable)
    "OperationCompleted": false,                              // Boolean
    "OperationSuccessful": false                              // Boolean
  },
  ...
]

The value of the field Severity can be one of the value defined in the DamageSeverity enumeration.

The property LicensePlate and the data related to the specific maintenance operation (OperationID through OperationSuccessful) here are always set as either null or false.

Gets vehicles out of zone

Gets the list of vehicles operating outside the assigned areas and without any ongoing trip (it’s a Paged List APIs, as explained in the introduction):

GET /v1/vehicles/no-trip-out-zone

List of vehicles operating outside the assigned areas

Status Codes

Returns a list of the vehicles currently oustide the assigned areas:

[
  {
    "ID": 26,                                                   // Int
    "LicensePlate": "AA000AA",                                  // String
    "VIN": "01234567890",                                       // String
    "Sticker": null,                                            // String
    "LastSetOperativeBy": null,                                 // String
    "IsOperative": true,                                        // Boolean
    "AdminOperativeStatus": true,                               // Boolean
    "SystemOperativeStatus": true,                              // Boolean
    "SystemOperativeReason": "",                                // String
    "OverriddenSystemOperativeStatus": true,                    // Boolean
    "ForcedOperativeBy": "Administrator.name",                  // String (nullable)
    "Notes": null,                                              // String
    "CategoryLabels": "{\"en\":\"Jolly Smart\"}",               // String
    "CategoryID": 2,                                            // Int
    "CategoryTree":                                             // Object (CategoryDescription)
    {                                                           //
      "ID": 1,                                                  // Int
      "Labels": "{\"en\":\"City Car\"}",                        // String
      "Children":                                               // Object Array (CategoryDescription)
      [                                                         //
        {                                                       //
          "ID": 2,                                              // Int
          "Labels": "{\"en\":\"Jolly Smart\"}",                 // String
          "Children": null                                      // Object Array (CategoryDescription)
        },                                                      //
        ...                                                     //
      ]                                                         //
    },                                                          //
    "Devices":                                                  // Object Array
    [                                                           //
      {                                                         //
        "ID": 13,                                               // Int
        "SerialNumber": "EDOXVERZKOSYXUJ",                      // String
        "LastDeviceSync": "2001-01-01T00:00:00Z"                // DateTime (nullable)
      },                                                        //
      ...                                                       //
    ],                                                          //
    "NominalGarage": "Udine Garage",                            // String
    "NominalGarageID": 4,                                       // Int (nullable)
    "RecoveringGarage": null,                                   // String
    "RecoveringGarageID": null,                                 // Int (nullable)
    "Latitude": 46.0838284476514,                               // Double (nullable)
    "Longitude": 13.217754364013674,                            // Double (nullable)
    "LastPositionUpdate": "2020-09-10T08:31:16Z",               // DateTime (nullable)
    "Groups": [ "51c770b3-c4f6-4203-9067-e05666137cec",... ],   // Guid Array
    "CurrentTripGuid": null,                                    // Guid (nullable)
    "DeviceID": 13,                                             // Int (nullable)
    "LastDeviceSync": null,                                     // DateTime (nullable)
    "LastNetworkSignalStrengthPct": null,                       // Int (nullable)
    "EngineType": 0,                                            // Int
    "FuelTankCapacity": null,                                   // Int (nullable)
    "FuelLevelPct": null,                                       // Double (nullable)
    "EVBLevelPct": null,                                        // Double (nullable)
    "OdometerKm": null,                                         // Double (nullable)
    "LastOdometerReading": null,                                // DateTime (nullable)
    "IsDamaged": true,                                          // Boolean (nullable)
    "Status":                                                   // Object (VehicleStatus)
    {                                                           //
      "CurrentReservationEnd": null,                            // DateTime (nullable)
      "CurrentReservationMaxStart": null,                       // DateTime (nullable)
      "CurrentReservationMinStart": null,                       // DateTime (nullable)
      "LastDeviceSync": null,                                   // DateTime (nullable)
      "LastMaintenanceEnd": null,                               // DateTime (nullable)
      "LastMaintenanceStart": null,                             // DateTime (nullable)
      "LastMotion": null,                                       // DateTime (nullable)
      "LastPositionUpdate": "2020-09-10T08:31:16Z",             // DateTime (nullable)
      "LastTripEnd": "2020-09-10T08:34:33Z",                    // DateTime (nullable)
      "LastTripStart": "2020-09-10T08:31:16Z",                  // DateTime (nullable)
      "FuelLevelPct": null,                                     // Double (nullable)
      "ServiceBattery": null,                                   // Double (nullable)
      "LastNetworkSignalStrengthPct": null,                     // Int (nullable)
      "AdminOperativeStatus": true,                             // Boolean
      "SystemOperativeStatus": true,                            // Boolean
      "IsLowFuel": true,                                        // Boolean
      "IsLowEVB": true,                                         // Boolean
      "IsLostContact": true,                                    // Boolean
      "IsPositionLost": true,                                   // Boolean
      "IsReserved": false,                                      // Boolean
      "IsOnTrip": false,                                        // Boolean
      "IsOnTripAndMoving": false,                               // Boolean
      "IsWithoutTripsForLong": true,                            // Boolean
      "IsInMaintenance": false,                                 // Boolean
      "IsInternetWeak": true                                    // Boolean
    },                                                          //
    "InternalCleaningStatus": null,                             // Int (enum VehicleCleaningStatus) (nullable)
    "ExternalCleaningStatus": null,                             // Int (enum VehicleCleaningStatus) (nullable)
    "IgnitionVoltageLevel": null                                // Int (nullable)
  },
  ...
]

The field CategoryLabels and Labels in CategoryTree contain a stringified Json containing pairs “language code”:”localized value”

Value InternalCleaningStatus and ExternalCleaningStatus can be one of the VehicleCleaningStatus enumeration.

Values of EngineType can be one of the VehicleEngineTypes enumeration.

Get vehicles far from zones

Gets a list of vehicles operating outside the assigned areas with a minimum distance of [ATT_REASON_DEFAULT_ZONE_DISTANCE] (it’s a Paged List APIs, as explained in the introduction):

GET /v1/vehicles/far-all-zone

List of vehicles operating outside the assigned areas with a minimum distance of [ATT_REASON_DEFAULT_ZONE_DISTANCE]

Status Codes

Returns a list of vehicles:

[
  {
    "ID": 26,                                                   // Int
    "LicensePlate": "AA000AA",                                  // String
    "VIN": "01234567890",                                       // String
    "Sticker": null,                                            // String (nullable)
    "LastSetOperativeBy": null,                                 // String (nullable)
    "IsOperative": true,                                        // Boolean
    "AdminOperativeStatus": true,                               // Boolean
    "SystemOperativeStatus": true,                              // Boolean
    "SystemOperativeReason": "",                                // String (nullable)
    "OverriddenSystemOperativeStatus": true,                    // Boolean
    "ForcedOperativeBy": "Administrator.name",                  // String (nullable)
    "Notes": null,                                              // String (nullable)
    "CategoryLabels": "{\"en\":\"Jolly Smart\"}",               // String
    "CategoryID": 2,                                            // Int
    "CategoryTree":
    {                                                           //
      "ID": 1,                                                  // Int
      "Labels": "{\"en\":\"City Car\"}",                        // String
      "Children": [...]                                         // Category Array (nullable)
    },
    "Devices":                                                  // Device Array (nullable)
    [
      {
        "ID": 13,                                               // Int
        "SerialNumber": "EDOXVERZKOSYXUJ",                      // String
        "LastDeviceSync": "2001-01-01T00:00:00Z"                // DateTime (nullable)
      },
      ...
    ],
    "NominalGarage": "Udine Garage",                            // String
    "NominalGarageID": 4,                                       // Int
    "RecoveringGarage": null,                                   // String (nullable)
    "RecoveringGarageID": null,                                 // Int (nullable)
    "Latitude": 46.0838284476514,                               // Double (nullable)
    "Longitude": 13.217754364013674,                            // Double (nullable)
    "LastPositionUpdate": "2020-09-10T08:31:16Z",               // DateTime (nullable)
    "Groups": [ "51c770b3-c4f6-4203-9067-e05666137cec",... ],   // Guid Array
    "CurrentTripGuid": null,                                    // Guid (nullable)
    "DeviceID": 13,                                             // Int (nullable)
    "LastDeviceSync": null,                                     // DateTime (nullable)
    "LastNetworkSignalStrengthPct": null,                       // Int (nullable)
    "EngineType": 0,                                            // Int
    "FuelTankCapacity": null,                                   // Int (nullable)
    "FuelLevelPct": null,                                       // Double (nullable)
    "EVBLevelPct": null,                                        // Double (nullable)
    "OdometerKm": null,                                         // Double (nullable)
    "LastOdometerReading": null,                                // DateTime (nullable)
    "IsDamaged": true,                                          // Boolean (nullable)
    "Status":
    {
      "CurrentReservationEnd": null,                            // DateTime (nullable)
      "CurrentReservationMaxStart": null,                       // DateTime (nullable)
      "CurrentReservationMinStart": null,                       // DateTime (nullable)
      "LastDeviceSync": null,                                   // DateTime (nullable)
      "LastMaintenanceEnd": null,                               // DateTime (nullable)
      "LastMaintenanceStart": null,                             // DateTime (nullable)
      "LastMotion": null,                                       // DateTime (nullable)
      "LastPositionUpdate": "2020-09-10T08:31:16Z",             // DateTime (nullable)
      "LastTripEnd": "2020-09-10T08:34:33Z",                    // DateTime (nullable)
      "LastTripStart": "2020-09-10T08:31:16Z",                  // DateTime (nullable)
      "FuelLevelPct": null,                                     // Double (nullable)
      "ServiceBattery": null,                                   // Double (nullable)
      "LastNetworkSignalStrengthPct": null,                     // Int (nullable)
      "AdminOperativeStatus": true,                             // Boolean
      "SystemOperativeStatus": true,                            // Boolean
      "IsLowFuel": true,                                        // Boolean
      "IsLowEVB": true,                                         // Boolean
      "IsLostContact": true,                                    // Boolean
      "IsPositionLost": true,                                   // Boolean
      "IsReserved": false,                                      // Boolean
      "IsOnTrip": false,                                        // Boolean
      "IsOnTripAndMoving": false,                               // Boolean
      "IsWithoutTripsForLong": true,                            // Boolean
      "IsInMaintenance": false,                                 // Boolean
      "IsInternetWeak": true                                    // Boolean
    },
    "InternalCleaningStatus": null,                             // Int (nullable)
    "ExternalCleaningStatus": null,                             // Int (nullable)
    "IgnitionVoltageLevel": null                                // Int (nullable)
  },
  ...
]

The field CategoryLabels and Labels in CategoryTree contain a stringified Json containing pairs “language code”:”localized value”

Value of the InternalCleaningStatus and ExternalCleaningStatus can be one of the VehicleCleaningStatus enumeration.

Values of EngineType can be one of the VehicleEngineTypes enumeration.

Get vehicles moving without trips

Gets a list of descriptions of vehicles that have moved without a regular trip (it’s a Paged List APIs, as explained in the introduction):

GET /v1/vehicles/moving-without-trip

Returns a list of descriptions of vehicles that have moved without a regular trip

Status Codes

Returs the list of vehicles:

[
  {
    "ID": 26,                                                   // Int
    "LicensePlate": "AA000AA",                                  // String
    "VIN": "01234567890",                                       // String
    "Sticker": null,                                            // String (nullable)
    "LastSetOperativeBy": null,                                 // String (nullable)
    "IsOperative": true,                                        // Boolean
    "AdminOperativeStatus": true,                               // Boolean
    "SystemOperativeStatus": true,                              // Boolean
    "SystemOperativeReason": "",                                // String (nullable)
    "OverriddenSystemOperativeStatus": true,                    // Boolean
    "ForcedOperativeBy": "Administrator.name",                  // String (nullable)
    "Notes": null,                                              // String (nullable)
    "CategoryLabels": "{\"en\":\"Jolly Smart\"}",               // String
    "CategoryID": 2,                                            // Int
    "CategoryTree":
    {                                                           //
      "ID": 1,                                                  // Int
      "Labels": "{\"en\":\"City Car\"}",                        // String
      "Children": [...]                                         // Category Array (nullable)
    },
    "Devices":                                                  // Device Array (nullable)
    [
      {
        "ID": 13,                                               // Int
        "SerialNumber": "EDOXVERZKOSYXUJ",                      // String
        "LastDeviceSync": "2001-01-01T00:00:00Z"                // DateTime (nullable)
      },
      ...
    ],
    "NominalGarage": "Udine Garage",                            // String
    "NominalGarageID": 4,                                       // Int
    "RecoveringGarage": null,                                   // String (nullable)
    "RecoveringGarageID": null,                                 // Int (nullable)
    "Latitude": 46.0838284476514,                               // Double (nullable)
    "Longitude": 13.217754364013674,                            // Double (nullable)
    "LastPositionUpdate": "2020-09-10T08:31:16Z",               // DateTime (nullable)
    "Groups": [ "51c770b3-c4f6-4203-9067-e05666137cec",... ],   // Guid Array
    "CurrentTripGuid": null,                                    // Guid (nullable)
    "DeviceID": 13,                                             // Int (nullable)
    "LastDeviceSync": null,                                     // DateTime (nullable)
    "LastNetworkSignalStrengthPct": null,                       // Int (nullable)
    "EngineType": 0,                                            // Int
    "FuelTankCapacity": null,                                   // Int (nullable)
    "FuelLevelPct": null,                                       // Double (nullable)
    "EVBLevelPct": null,                                        // Double (nullable)
    "OdometerKm": null,                                         // Double (nullable)
    "LastOdometerReading": null,                                // DateTime (nullable)
    "IsDamaged": true,                                          // Boolean (nullable)
    "Status":
    {
      "CurrentReservationEnd": null,                            // DateTime (nullable)
      "CurrentReservationMaxStart": null,                       // DateTime (nullable)
      "CurrentReservationMinStart": null,                       // DateTime (nullable)
      "LastDeviceSync": null,                                   // DateTime (nullable)
      "LastMaintenanceEnd": null,                               // DateTime (nullable)
      "LastMaintenanceStart": null,                             // DateTime (nullable)
      "LastMotion": null,                                       // DateTime (nullable)
      "LastPositionUpdate": "2020-09-10T08:31:16Z",             // DateTime (nullable)
      "LastTripEnd": "2020-09-10T08:34:33Z",                    // DateTime (nullable)
      "LastTripStart": "2020-09-10T08:31:16Z",                  // DateTime (nullable)
      "FuelLevelPct": null,                                     // Double (nullable)
      "ServiceBattery": null,                                   // Double (nullable)
      "LastNetworkSignalStrengthPct": null,                     // Int (nullable)
      "AdminOperativeStatus": true,                             // Boolean
      "SystemOperativeStatus": true,                            // Boolean
      "IsLowFuel": true,                                        // Boolean
      "IsLowEVB": true,                                         // Boolean
      "IsLostContact": true,                                    // Boolean
      "IsPositionLost": true,                                   // Boolean
      "IsReserved": false,                                      // Boolean
      "IsOnTrip": false,                                        // Boolean
      "IsOnTripAndMoving": false,                               // Boolean
      "IsWithoutTripsForLong": true,                            // Boolean
      "IsInMaintenance": false,                                 // Boolean
      "IsInternetWeak": true                                    // Boolean
    },
    "InternalCleaningStatus": null,                             // Int (nullable)
    "ExternalCleaningStatus": null,                             // Int (nullable)
    "IgnitionVoltageLevel": null                                // Int (nullable)
  },
  ...
]

The field CategoryLabels and Labels in CategoryTree contain a stringified Json containing pairs “language code”:”localized value”

Value of the InternalCleaningStatus and ExternalCleaningStatus fields can be one of the VehicleCleaningStatus enumeration.

Values of EngineType can be one of the VehicleEngineTypes enumeration.

Get attention needed vehicles

Gets the list of vehicles that are either outside the allowed areas, or far outside the allowed areas or that have moved without any related travel:

GET /v1/vehicles/attention-reason-news

Returns a list of vehicles that are either outside the allowed areas, or far outside the allowed areas ** or that have moved without any related travel**

Status Codes

Returns a list of vehicles that currently fall within the attention news requirements:

[
  {
    key: "MV003BB",                       // String
    category: "{\"en\":\"Sedan\",...}",   // String
    outOfZones: false,                    // Boolean
    farFromZones: false,                  // Boolean
    movingWithoutTrip: false              // Boolean
  }
]

The field category contains a stringified Json containing pairs “language code”:”localized value”

Get Scheduled Operations for the Vehicle

Gets the list of vehicle schedules set for a specified vehicle (it’s a Paged List APIs, as explained in the introduction):

GET /v1/vehicles/{id}/schedules

Vehicle Schedules related to a vehicle

Parameters
  • id (integer) – Vehicle ID

Status Codes

This API returns a positive JSON response with the vehicle schedules data:

[
  {
    ID: "43",                                               // Int
    CreatedDate: "2001-01-01T01:01:01Z",                    // DateTime
    LastUpdated: "2001-01-01T01:01:01Z",                    // DateTime
    Type: "0",                                              // Int
    StartTimestamp: "2001-01-01T01:01:01Z",                 // DateTime
    EndTimestamp: "2001-01-01T01:01:01Z",                   // DateTime (nullable)
    IsVehicleAvailable: true,                               // Boolean
    IsMaintenanceAlreadyBegin: true,                        // Boolean
    MinPerformanceBegin: "2001-01-01T01:01:01Z",            // DateTime (nullable)
    MaxPerformanceEnd: "2001-01-01T01:01:01Z",              // DateTime (nullable)
    VehicleID: "1",                                         // Int
    LicensePlate: "AK 365 NF",                              // String
    Sticker: "VHCL01",                                      // String (nullable)
    VIN: "1GCUGDA43SAL7LJVPE",                              // String
    VehicleCategory: "{"en":"English category name",...}"  // String
  },
  ...
]

or an error in case of problems.

The field Type can be one of the value defined in the MovementSchedulableType enumeration.

The field IsVehicleAvailable is a boolean set to true if the vehicle can be reserved during the scheduled period.

The field IsMaintenanceAlreadyBegin is a boolean set to true if the scheduled operation already has some maintenance operation whose begin time is already passed.

The fields MinPerformanceBegin and MaxPerformanceEnd are set only if the schedules operation already has some maintenance operations: in that case, MinPerformanceBegin is set as the min expected start time among all the maintenance operations, and MaxPerformanceEnd as the max expected end time among all the maintenance operations.

The field VehicleCategory is a stringified Json containing pairs “language code”:”localized value”

Get Maintenance Operations for the Vehicle

Gets the list of maintenance operations set for a specified vehicle (it’s a Paged List APIs, as explained in the introduction):

GET /v1/vehicles/{id}/maintenance-operations

Maintenance operations related to a vehicle

Parameters
  • id (integer) – Vehicle ID

Status Codes

This API returns a positive JSON response with the maintenance operations data:

[
  {
    ID: 2,                                                 // Int
    ScheduleID: 43,                                        // Int
    CreatedDate: "2001-01-01T01:01:01Z",                   // DateTime
    LastUpdated: "2001-01-01T01:01:01Z",                   // DateTime
    Description: "Operation description",                  // String
    Summary: "Operation short summary",                    // String (nullable)
    EnteredBy: "Username",                                 // String
    SignedOffBy: "Username",                               // String (nullable)
    PerformedBy: "Username",                               // String (nullable)
    PerformanceBegin: "2001-01-01T01:01:01Z",              // DateTime (nullable)
    PerformanceEnd: "2001-01-01T01:01:01Z",                // DateTime (nullable)
    IsCompleted: true,                                     // Boolean
    IsSuccessful: true,                                    // Boolean
    GarageID: 5,                                           // Int
    GarageName: "Name of operating base garage",           // String
    VehicleID: "1",                                        // Int
    LicensePlate: "AK 365 NF",                             // String
    Sticker: "VHCL01",                                     // String (nullable)
    VIN: "1GCUGDA43SAL7LJVPE",                             // String
    VehicleCategory: "{"en":"English category name",...}", // String
    ScheduleBegin: null,                                   // DateTime (nullable)
    ScheduleEnd: null                                      // DateTime (nullable)
  },
  ...
]

or an error in case of problems.

The fields PerformanceBegin and PerformanceEnd are the expected start and end time of the maintenance operation.

The field VehicleCategory is a stringified Json containing pairs “language code”:”localized value”

The field IsCompleted specifies if the maintenance operation has ended, and the field IsSuccessful specifies if the operation was successful.

Get vehicle metrics list

Retrieves the list of existing vehicle metrics:

GET /v1/vehicles/vehicle-metrics

Returns the list of existing vehicle metrics

Status Codes

The API will return an array with the existing vehicle metric data:

[
  {
    Name: "ODOMETER_KM",                            // String
    Guid: "d54ae016-3606-4f98-a9b2-1df1e4434b40"    // Guid
  },
  { ... }
]