Object Coordinates History API main purpose is to output clients’ object historical data (coordinates). Object Coordinates History API has two endpoints, thus there are two types of requests. The first type of request is for one object and a specific date and time. Only data recorded at the specified date and time is shown.
Request example for a specific date:
GET /objects/{object_id}/coordinates/{datetime}/?version=1&api_key=<..> HTTP/1.1
HOST:api.fm-track.com
Content-Type:application/json;charset=UTF-8
The request type requires three parameters (not counting the API_key) to be specified in order for the API request to work:
Parameter | Type | Description |
---|---|---|
object_id | String | External object ID |
datetime | Date time | Requested record for the specified date and time. Date and time format example: “2017-04-13T06:58:48.090Z” in accordance to the ISO-8601 standard |
version | String | Version of the API, currently only version=1 is available |
api_key | String | User identification key |
Note
It is recommended to use datetime parameter from the second endpoint of the Object Coordinates History API because the date time parameter is specified by the second, and the system does not search for data around the specified date.
A response example is shown if all the parameters were included and the API_key is valid:
{ "object_id" : "abc123", "datetime" : "2017-04-13T06:58:48.090Z", "ignition_status" : "UNKNOWN", "position" : { "altitude" : 0, "direction" : 0, "latitude" : 0, "longitude" : 0, "hdop": 0, "satellites_count" : 0, "speed" : 0 }, "device_inputs" : { "digital_input_1" : true, "digital_input_2" : true, "digital_input_3" : true, "digital_input_4" : true, "power_supply_voltage" : 0, "ibutton" : "xxxxxxxxxx", "first_driver_id" : "xxxxxxxxxx", "second_driver_id" : "xxxxxxxxxx", "temperature_sensor_0": 0, "temperature_sensor_1": 0, "temperature_sensor_2": 0, "temperature_sensor_3": 0, "temperature_sensor_0_id": "xxxxxxxxxx" }, "calculated_inputs":{ "mileage" : 0 } }
If a parameter or the API_key was inputted incorrectly, the system will respond with an error code, all possible error codes are described in the APIs section. Parameters are described at the end of this section.
The second endpoint of the History API displays an array of history data for a defined period of time. Each set of data has a specified date and time, which can be used when sending the first type of History API request.
Request example for a specific date period:
GET /objects/{object_id}//coordinates?version=1{&fromDatetime,toDatetime,continuationToken,limit}&api_key=<..> HTTP/1.1
HOST:api.fm-track.com
Content-Type:application/json;charset=UTF-8
The request type requires three parameters (not counting the API_key) to be specified in order for the API request to work:
Parameter | Type | Description |
---|---|---|
objectId | String | External object ID |
fromDatetime | Date time | Find records starting from the specified date and time. Date and time format example: “2017-04-13T06:58:48.090Z” in accordance to the ISO-8601 standard |
version | String | Version of API |
api_key | String | User identification key |
Optional parameters that are not mandatory, but can be included in the request:
Parameter | Type | Description |
---|---|---|
toDatetime | Date time | Find records up until the specified date and time. If it is not specified, the system will search for records up until the current date until the limit of records is reached. Date and time format example: “2017-04-13T06:58:48.090Z” in accordance to the ISO-8601 standard |
continuationToken | Date time | Including a continuation token, will display the next set of records, after the previous limit of records was reached. |
limit | Integer | Limits records to the set count in the system response (default value – 100 records, maximum value – 1000) |
api_key | String | User identification code |
A response example is shown below:
{ "continuation_token": "2017-04-13T06:58:48.121Z", "items": [ { "object_id" : "abc123", "datetime" : "2017-04-13T06:58:48.090Z", "ignition_status" : "UNKNOWN", "position" : { "altitude" : 0, "direction" : 0, "latitude" : 0, "longitude" : 0, "hdop": 0, "satellites_count" : 0, "speed" : 0 }, "device_inputs" : { "digital_input_1" : true, "digital_input_2" : true, "digital_input_3" : true, "digital_input_4" : true, "power_supply_voltage" : 0, "ibutton" : "xxxxxxxxxx", "first_driver_id" : "xxxxxxxxxx", "second_driver_id" : "xxxxxxxxxx", "temperature_sensor_0": 0, "temperature_sensor_1": 0, "temperature_sensor_2": 0, "temperature_sensor_3": 0, "temperature_sensor_0_id": "xxxxxxxxxx" }, "calculated_inputs":{ "mileage" : 0 } } ] }
All response fields than can be received with every type of parameter are described in the next table:
Name | Type | Description | Units |
---|---|---|---|
continuation_token | Continuation token is received when requesting large amounts of records, for long periods, which exceeds the set records limit, the continuation token will be displayed at the end of the response. It can be used afterwards to display the next set of records for the selected period. If no more records are available after the token, the response will return empty. | Datetime | |
items | Array | Contains all parameters in accordance to the request | |
object_id | String | Object identifier (external) | Text |
datetime | Date | Date and time point of coordinate generated in hardware Format: "yyyy-mm-ddThh:mm:ss.sssZ" | According ISO-8601 |
ignition_status | Enum | Indicating if object has ignition on. "ON" - Ignition on "OFF" - Ignition off "UNKNOWN" - No data about ignition | ON- OFF |
position | Array | Contains all record GPS parameters | |
latitude | Float | GPS coordinate - latitude value | Degrees |
longitude | Float | GPS coordinate - longitude value | Degrees |
altitude | Integer | GPS coordinate - altitude value | Number |
direction | Integer | Moving direction in degrees | 0 = north, increasing clock-wise |
speed | Integer | Object moving speed | km/h |
satellites_count | Integer | Number of visible GPS or GLONASS satellites(depends on device configuration) while generating record in device | Number |
device_inputs | Array | Container for parameters received from hardware | |
power_supply_voltage | Integer | Object power supply voltage | mV |
ibutton | String | iButton or RFID card code of a driver assigned to a vehicle | Text |
hdop | Float | GPS coordinate precision | Number |
first_driver_id | String | TCO code of the first driver | Text |
second_driver_id | String | TCO code of the second driver | Text |
digital_input_1 | Boolean | Configurated object or its equipment status true - status = active false - status = inactive | True - False |
digital_input_2 | Boolean | Configured object or its equipment status true - status = active false - status = inactive | True - False |
digital_input_3 | Boolean | Configured object or its equipment status true - status = active false - status = inactive | True - False |
digital_input_4 | Boolean | Configured object or its equipment status true - status = active false - status = inactive | True - False |
temperature_sensor_0 | Float | Temperature sensor data | °C |
temperature_sensor_1 | Float | Temperature sensor data | °C |
temperature_sensor_2 | Float | Temperature sensor data | °C |
temperature_sensor_3 | Float | Temperature sensor data | °C |
temperature_sensor_0_id | String | Temperature sensor ID | Text |
calculated_inputs | Array | Container for parameters calculated in system from other parameters according to the configuration | |
mileage | Float | Object driven distance (depends on object configuration) | km |
API endpoints, request parameters and responses can be previewed in “Swagger” through this link : https://api.fm-track.com