Working with trackers¶
Tracker is one of the key entities in our API. It represents tracking device registered in our GPS monitoring system. Lots of API calls created for manipulation of tracker and/or its properties.
Tracker object structure¶
{
"id": 123456,
"label": "tracker label",
"clone": false,
"group_id": 167,
"avatar_file_name" : "file name",
"source": {
"id": 234567,
"device_id": 9999999988888,
"model": "telfmb920",
"blocked": false,
"tariff_id": 345678,
"status_listing_id": null,
"creation_date": "2011-09-21",
"tariff_end_date": "2016-03-24",
"phone" : "+71234567890"
}
"tag_bindings": [{
"tag_id": 456789,
"ordinal": 4
}]
}
id
- int. Tracker id aka object_id.label
- string. Tracker label.clone
- boolean. True if this tracker is clone.group_id
- int. tracker employee's department id, 0 if no department, -1 if no employee assigned. Read onlyavatar_file_name
- string. Optional. Passed only if present.source
- object.id
- int. Source id.device_id
- string. Device id aka source_imei.model
- string. Tracker model name from "models" table.blocked
- boolean. True if tracker blocked due to tariff end.tariff_id
- int. An id of tracker tariff from "main_tariffs" table.status_listing_id
- int. An id of the status listing associated with this tracker, or null.creation_date
- date/time. Date when the tracker registered.tariff_end_date
- date/time. Date of next tariff prolongation, or null.phone
- string. Phone of the device. Can be null or empty if device has no GSM module or uses bundled SIM which number hidden from the user.
tag_binding
- object. List of attached tags. Appears only for "tracker/list" call.tag_id
- int. An id of tag. Must be unique for a tracker.ordinal
- int. Number that can be used as ordinal or kind of tag. Must be unique for a tracker. Max value is 5.
API actions¶
API base path: /tracker
change_phone¶
Changes tracker's phone and setup new apn.
required sub-user rights: tracker_configure
parameters¶
name | description | type | format |
---|---|---|---|
tracker_id | Id of the tracker (aka "object_id"). Tracker must belong to authorized user and not be blocked. | int | 999199 |
phone | The phone number of the sim card inserted into device in international format without "+" sign. | string | "6156680000" |
apn_name | The name of GPRS APN of the sim card inserted into device. | string | "fast.tmobile.com" |
apn_ user | The user of GPRS APN of the sim card inserted into device. | string | "tmobile" |
apn_password | The password of GPRS APN of the sim card inserted into device. | sting | "tmobile" |
examples¶
curl -X POST 'https://api.navixy.com/v2/fsm/tracker/change_phone' \
-H 'Content-Type: application/json' \
-d '{"hash": "a6aa75587e5c59c32d347da438505fc3", "tracker_id": "265489", "phone": "6156680000", "apn_name": "fast.tmobile.com", "apn_user": "tmobile", "apn_password": "tmobile"}'
response¶
{ "success": true }
errors¶
- 204 – Entity not found (if there is no tracker with such id belonging to authorized user).
- 208 – Device blocked (if tracker exists but was blocked due to tariff restrictions or some other reason).
- 219 – Not allowed for clones of the device (if specified tracker is a clone).
- 214 – Requested operation or parameters are not supported by the device (if device does not have GSM module).
- 223 – Phone number already in use (if specified phone number already used in another device).
- 241 – Cannot change phone to bundled sim. Contact tech support. (if specified phone number belongs tp sim card bundled with the device).
corrupt¶
Marks tracker as deleted and corrupt its source, device_id and phone.
required sub-user rights: tracker_register
parameters¶
name | description | type | format |
---|---|---|---|
tracker_id | Id of the tracker (aka "object_id"). Tracker must belong to authorized user and not be blocked. | int | 999119 |
examples¶
curl -X POST 'https://api.navixy.com/v2/fsm/tracker/corrupt' \
-H 'Content-Type: application/json' \
-d '{"hash": "a6aa75587e5c59c32d347da438505fc3", "tracker_id": "265489"}'
https://api.navixy.com/v2/fsm/tracker/corrupt?hash=a6aa75587e5c59c32d347da438505fc3&tracker_id=265489
response¶
{ "success": true }
errors¶
- 13 – Operation not permitted – if tracker already connected to server, or if user has insufficient rights.
- 243 – Device already connected.
- 201 – Not found in the database (if tracker not found).
- 219 – Not allowed for clones of the device (if source tracker is clone itself).
- 252 – Device already corrupted.
- 208 – Device blocked.
delete¶
Deletes a tracker if it is "clone". Will not work if specified id of the original tracker.
required sub-user rights: admin
(available only to master users).
parameters¶
name | description | type | format |
---|---|---|---|
tracker_id | Id of the tracker (aka "object_id"). Tracker must belong to authorized user and not be blocked. | int | 999119 |
examples¶
curl -X POST 'https://api.navixy.com/v2/fsm/tracker/delete' \
-H 'Content-Type: application/json' \
-d '{"hash": "a6aa75587e5c59c32d347da438505fc3", "tracker_id": "265489"}'
https://api.navixy.com/v2/fsm/tracker/delete?hash=a6aa75587e5c59c32d347da438505fc3&tracker_id=265489
response¶
{ "success": true }
errors¶
- 201 (Not found in the database) – if tracker not found.
- 249 (Operation available for clones only) – if tracker is not clone.
- 203 (Delete entity associated with) – if there are some rules or vehicles associated with tracker.
{
"success": false,
"status": {
"code": 203,
"description": "Delete entity associated with"
},
"rules": [10]
}
{
"success": false,
"status": {
"code": 203,
"description": "Delete entity associated with"
},
"vehicles": [11]
}
rules
- list of associated rule ids.vehicles
- list of associated vehicle ids.
get_diagnostics¶
Gets last sensors and states values received from the device.
parameters¶
name | description | type | format |
---|---|---|---|
tracker_id | Id of the tracker (aka "object_id"). Tracker must belong to authorized user and not be blocked. | int | 999119 |
examples¶
curl -X POST 'https://api.navixy.com/v2/fsm/tracker/get_diagnostics' \
-H 'Content-Type: application/json' \
-d '{"hash": "a6aa75587e5c59c32d347da438505fc3", "tracker_id": "265489"}'
https://api.navixy.com/v2/fsm/tracker/get_diagnostics?hash=a6aa75587e5c59c32d347da438505fc3&tracker_id=265489
response¶
{
"success": true,
"user_time": "2014-07-09 07:50:58",
"inputs": [
{
"label": "Sensor #1",
"name": "can_fuel",
"type": "fuel",
"value": 100.0,
"units_type": "litre",
"units": "litres",
"converted_units_type": null,
"converted_value": null
}
],
"states": {
"obd_vin": "123",
"obd_mil_status": "false"
},
"update_time": "2014-03-06 13:57:00"
}
user_time
- date/time. Current time in user's timezone.inputs
- list ofsensor value
objects.label
- string. Sensor's label. E.g. "Sensor #1".name
- string of enum. Name of sensor's raw input. E.g. "can_fuel" (see below list of values).type
- string of enum. Type of quantity, measured by a sensor. E.g. "fuel".value
- float. Reading's value, measured in units from an eponymous field. E.g. 100.0.units_type
- string of enum. Unit of measurement of input to the sensor. E.g."litre".units
- string. User label for sensor's units.converted_units_type
- string of enum. Unit of measurement system preferred by current user (according to user/settings), suitable for this sensor. Can be null, if there is no need in conversion (unit of sensor's input (fieldunits_type
) belongs to user's measurement system).converted_value
- float. Reading's value in units from fieldconverted_units_type
. Can be null if there is no need in conversion.
states
- map of last state values or null (see below).update_time
- date/time. Date and time when the data updated.
List of available sensor's input names for the object sensor value
:
- composite.
- input_status.
- analog_x (range for x: [1 – 8]).
- freq_x (range for x: [1 – 8]).
- impulse_counter_x (range for x: [1 – 8]).
- fuel_level.
- fuel_frequency.
- fuel_temperature.
- lls_temperature_x (range for x: [1 – 16]).
- lls_level_x (range for x: [1 – 16]).
- fuel_consumption.
- obd_consumption.
- obd_rpm.
- obd_fuel.
- obd_coolant_t.
- obd_intake_air_t.
- obd_throttle.
- obd_speed.
- obd_engine_load.
- obd_absolute_load_value (normalised value of air mass per intake stroke in percents).
- obd_control_module_voltage (in volts).
- obd_time_since_engine_start (run time since engine start in seconds).
- obd_mil_run_time (in minutes).
- rs232_x (range for x: [1 – 6]).
- board_voltage.
- can_engine_temp.
- can_engine_hours.
- can_mileage.
- can_throttle.
- can_fuel (fuel level in percents or in unknown units).
- can_fuel_2 (fuel level in percents or in unknown units).
- can_fuel_litres (fuel level in litres).
- can_fuel_economy (fuel economy in km/litres).
- can_consumption.
- can_rpm.
- can_speed.
- can_r_prefix.
- can_coolant_t.
- can_intake_air_t.
- can_engine_load.
- can_adblue_level.
- can_fuel_rate (instant fuel consumption liter/hour).
- raw_can_x (range for x: [1 – 16]).
- can_axle_load_x (range for x: [1 – 15]).
- temp_sensor.
- ext_temp_sensor_x (range for x: [1 – 10]).
List of state names for the field states
:
- obd_vin (value type: string).
- obd_mil_status (value type: boolean).
- obd_dtc_number (DTC codes number; value type: integer).
- obd_dtc_codes (value type: string).
- obd_dtc_cleared_distance (distance traveled since codes cleared in km; value type: double).
- obd_mil_activated_distance (distance traveled with MIL on in km; value type: double).
- hardware_key (driver identification key; value type: string).
- vibration_state (value type: boolean).
- idling_state (value type: boolean).
- external_power_state (connected/disconnected; value type: boolean).
- case_intrusion_state (value type: boolean).
- driver_ident_state (identified/not identified; value type: boolean).
- tacho_vin (value type: string).
- tacho_card1_sn (value type: string).
- tacho_card2_sn (value type: string).
- tacho_vin_last_download (value type: string).
- tacho_card1_last_download (value type: string).
- tacho_card2_last_download (value type: string).
- can_hand_brake_state (value type: boolean).
- can_hood_state (value type: boolean,
true
means "open"). - can_airbag_state (value type: boolean,
true
means "malfunction"). - can_trunk_state (value type: boolean,
true
means "open"). - can_seat_belt_driver_state (value type: boolean,
true
means "untied"). - can_seat_belt_passenger_state (value type: boolean,
true
means "untied"). - can_door_state (value type: boolean).
- can_door_driver_state (value type: boolean,
true
means "open"). - can_door_passenger_state (value type: boolean,
true
means "open").
errors¶
- 204 – Entity not found (if there is no tracker with such id belonging to authorized user).
- 208 – Device blocked (if tracker exists but was blocked due to tariff restrictions or some other reason).
get_fuel¶
Gets current fuel level (in liters) of tracker's fuel tanks.
parameters¶
name | description | type | format |
---|---|---|---|
tracker_id | Id of the tracker (aka "object_id"). Tracker must belong to authorized user and not be blocked. | int | 999119 |
examples¶
curl -X POST 'https://api.navixy.com/v2/fsm/tracker/get_fuel' \
-H 'Content-Type: application/json' \
-d '{"hash": "a6aa75587e5c59c32d347da438505fc3", "tracker_id": "265489"}'
https://api.navixy.com/v2/fsm/tracker/get_fuel?hash=a6aa75587e5c59c32d347da438505fc3&tracker_id=265489
response¶
{
"success": true,
"user_time": "2014-07-09 07:50:58",
"inputs": [{
"label": "Sensor #1",
"name": "can_fuel",
"type": "fuel",
"value": 100.0,
"units_type": "litre",
"units": "litres",
"converted_units_type": null,
"converted_value": null
}],
"update_time": "2014-03-06 13:57:00"
}
user_time
- date/time. Current time in user's timezone.inputs
- array of last readings of fuel-related sensors. Items are objects of the same type as used in tracker/get_diagnostics.update_time
- date/time. Date and time when the data updated.
errors¶
- 204 – Entity not found (if there is no tracker with such id belonging to authorized user).
- 208 – Device blocked (if tracker exists but was blocked due to tariff restrictions or some other reason).
get_inputs¶
Gets current state of tracker's digital inputs and "semantic" inputs (ignition, buttons, car alarms, etc.) bound to them (if any).
parameters¶
name | description | type | format |
---|---|---|---|
tracker_id | Id of the tracker (aka "object_id"). Tracker must belong to authorized user and not be blocked. | int | 999119 |
examples¶
curl -X POST 'https://api.navixy.com/v2/fsm/tracker/get_inputs' \
-H 'Content-Type: application/json' \
-d '{"hash": "a6aa75587e5c59c32d347da438505fc3", "tracker_id": "265489"}'
https://api.navixy.com/v2/fsm/tracker/get_inputs?hash=a6aa75587e5c59c32d347da438505fc3&tracker_id=265489
response¶
{
"success": true,
"user_time": "2014-07-09 07:50:58",
"inputs": [true, true, false],
"states": [
{
"type": "ignition",
"name": "DIN1",
"status": true,
"input_number": 1
}
],
"update_time": "2014-03-06 13:57:00"
}
user_time
- date/time. Current time in user's timezone.inputs
- array (boolean) of states of all digital inputs.[true, true, false]
means input 1 is on, input 2 is on, input 3 is off.states
- array of state objects.type
- string of enum. One of predefined semantic input types (see below).name
- string. User-defined name for semantic input, or null if not specified.status
- boolean. True if input is active, false otherwise.input_number
- int. Number of the associated discrete input.
update_time
- date/time. Date and time when the data updated.
List of input types
:
- ignition - Car's ignition. There can be only one sensor of this type.
- engine - Engine's working status.
- mass - Car's "ground".
- car_alarm - Expected to be "on" when car alarm triggered.
- sos_button - An emergency "red" button.
- hood - "on" if engine's hood is open.
- door - "on" if car's door is open.
- car_lock - "on" if car's central lock is open.
- custom - user-defined type. In general, should have non-empty "name" field.
errors¶
- 204 – Entity not found (if there is no tracker with such id belonging to authorized user).
- 208 – Device blocked (if tracker exists but was blocked due to tariff restrictions or some other reason).
get_counters¶
Gets last values of the tracker's counters.
parameters¶
name | description | type | format |
---|---|---|---|
tracker_id | Id of the tracker (aka "object_id"). Tracker must belong to authorized user and not be blocked. | int | 999119 |
examples¶
curl -X POST 'https://api.navixy.com/v2/fsm/tracker/get_counters' \
-H 'Content-Type: application/json' \
-d '{"hash": "a6aa75587e5c59c32d347da438505fc3", "tracker_id": "265489"}'
https://api.navixy.com/v2/fsm/tracker/get_counters?hash=a6aa75587e5c59c32d347da438505fc3&tracker_id=265489
response¶
{
"success": true,
"user_time": "2014-07-09 07:50:58",
"list": [
{
"type": "odometer",
"value": 100500.1,
"update_time": "2014-03-06 13:57:00"
}
]
}
user_time
- date/time. Current time in user's timezone.list
- array of counter value objects.type
- string of enum. One of predefined semantic counter types (see below).value
- double. Counter value.update_time
- date/time. Date and time when the data updated.
List of counter types
:
- odometer - Odometer.
- fuel_consumed - Total fuel consumed.
- engine_hours - Engine hours.
errors¶
- 204 – Entity not found (if there is no tracker with such id belonging to authorized user).
- 208 – Device blocked (if tracker exists but was blocked due to tariff restrictions or some other reason).
get_last_gps_point¶
Gets last point of the tracker located by GPS. Points located by GSM LBS are excluded from consideration.
parameters¶
name | description | type | format |
---|---|---|---|
tracker_id | Id of the tracker (aka "object_id"). Tracker must belong to authorized user and not be blocked. | int | 999119 |
examples¶
curl -X POST 'https://api.navixy.com/v2/fsm/tracker/get_last_gps_point' \
-H 'Content-Type: application/json' \
-d '{"hash": "a6aa75587e5c59c32d347da438505fc3", "tracker_id": "265489"}'
https://api.navixy.com/v2/fsm/tracker/get_last_gps_point?hash=a6aa75587e5c59c32d347da438505fc3&tracker_id=265489
response¶
{
"success": true,
"value": {
"lat": 53.445181,
"lng": -2.276432,
"alt": 10,
"satellites": 8,
"get_time": "2011-06-18 03:39:44",
"address": "4B Albany Road, Manchester, Great Britain",
"heading": 298,
"speed": 70,
"precision": 100,
"gsm_lbs": true,
"parking": true
}
}
value
- track point object.lat
- float. Latitude.lng
- float. Longitude.alt
- int. Altitude in meters.satellites
- int. Number of satellites used in fix for this point.get_time
- date/time. GPS timestamp of the point, in user's timezone.address
- string. Point address. "" if no address recorded for the point.heading
- int. Direction bearing in degrees (0-360).speed
- int. Speed in km/h.precision
- int. Optional. Precision in meters.gsm_lbs
- boolean. Optional.true
if location detected by GSM LBS, optional.parking
- boolean. Optional.true
if point does not belong to track.
errors¶
- 201 (Not found in the database) – if there is no tracker with such id belonging to authorized user.
- 208 (Device blocked) – if tracker exists but was blocked due to tariff restrictions or some other reason.
get_readings¶
Gets last sensor values for sensors that are:
- metering.
- not can- or obd-based.
- not "fuel" sensors.
parameters¶
name | description | type | format |
---|---|---|---|
tracker_id | Id of the tracker (aka "object_id"). Tracker must belong to authorized user and not be blocked. | int | 999119 |
examples¶
curl -X POST 'https://api.navixy.com/v2/fsm/tracker/get_readings' \
-H 'Content-Type: application/json' \
-d '{"hash": "a6aa75587e5c59c32d347da438505fc3", "tracker_id": "265489"}'
https://api.navixy.com/v2/fsm/tracker/get_readings?hash=a6aa75587e5c59c32d347da438505fc3&tracker_id=265489
response¶
{
"success": true,
"user_time": "2014-07-09 07:50:58",
"inputs": [{
"label": "Sensor #1",
"name": "can_fuel",
"type": "fuel",
"value": 100.0,
"units_type": "litre",
"units": "litres",
"converted_units_type": null,
"converted_value": null
}]
}
user_time
- date/time. Current time in user's timezone.inputs
- list ofsensor value
objects. See tracker/get_diagnostics.
errors¶
- 204 – Entity not found (if there is no tracker with such id belonging to authorized user).
- 208 – Device blocked (if tracker exists but was blocked due to tariff restrictions or some other reason).
get_state¶
Gets current tracker state (gps, gsm, outputs, etc.).
name | description | type | format |
---|---|---|---|
tracker_id | Id of the tracker (aka "object_id"). Tracker must belong to authorized user and not be blocked. | int | 999119 |
examples¶
curl -X POST 'https://api.navixy.com/v2/fsm/tracker/get_state' \
-H 'Content-Type: application/json' \
-d '{"hash": "a6aa75587e5c59c32d347da438505fc3", "tracker_id": "265489"}'
https://api.navixy.com/v2/fsm/tracker/get_state?hash=a6aa75587e5c59c32d347da438505fc3&tracker_id=265489
response¶
{
"success": true,
"user_time":"2014-07-09 07:50:58",
"state": {
"source_id": 65894,
"gps": {
"updated": "2013-02-19 10:48:08",
"signal_level": 25,
"location": {
"lat": 56.826068,
"lng": 60.594338
},
"heading": 45,
"speed": 20,
"alt": 10,
"precision": 50,
"gsm_lbs": false
},
"connection_status": "active",
"movement_status": "moving",
"gsm": {
"updated": "2013-02-19 10:48:08",
"signal_level": 70,
"network_name": "T-MOBILE",
"roaming": false
},
"last_update": "2013-02-19 10:48:08",
"battery_level": 100,
"battery_update": "2013-02-19 10:48:08",
"inputs": [true, true, false],
"inputs_update": "2013-02-19 10:48:08",
"outputs": [true, true, false],
"outputs_update": "2013-02-19 10:48:08",
"additional": {
"hardware_key": {
"value": 564648745158875,
"updated": "2013-02-19 10:48:08"
}
}
}
}
user_time
- date/time. Current time in user's timezone.source_id
- int. Tracker data source id (from "sources" table).gps
- gps object.updated
- date/time. Date of last gps coordinates update in a timezone of the user or null if there are no updates.signal_level
- int. GPS signal level in percent, e.g. 25, or null if device cannot provide such info.lat
- float. Latitude.lng
- float. Longitude.heading
int. Direction bearing in degrees (0-360).speed
- int. Speed in km/h, e.g. 20.alt
- int. Altitude in meters, e.g. 10.precision
- int. Optional. Precision in meters.gsm_lbs
- boolean. Optional. True if location detected by GSM LBS.
connection_status
- enum. Device connection status, possible values: "signal_lost", "just_registered", "offline", "idle", "active".movement_status
- enum. Movement status, possible values: "moving", "stopped", "parked".gsm
- object. Can be null if device does not support transmission of gsm info.updated
- date/time. Date of last gsm status update in a timezone of the user or null if there are no updates.signal_level
- int. GSM signal level in percent, e.g. 25, or null if device cannot provide such info.network_name
- string. GSM network name, e.g. "T-MOBILE", or null if device cannot provide such info.roaming
- boolean. Roaming state, or null if device cannot provide such info.
last_update
- date/time. Date of last device state update in a timezone of the user or null if there are no updates.battery_level
- int. Battery level in percent, e.g. 25, or null if device cannot provide such info.battery_update
- date/time. Date of last battery update in a timezone of the user or null if there are no updates.inputs
- array of boolean. States of all digital inputs.[true, true, false]
means input 1 is on, input 2 is on, input 3 is off.inputs_update
- date/time. Date of last inputs update in a timezone of the user or null if there are no updates.outputs
- array of boolean. States of all digital outputs.[true, true, false]
means output 1 is on, output 2 is on, output 3 is off.outputs_update
- date/time. Date of last outputs update in a timezone of the user or null if there are no updates.additional
- object. map of additional states, keys depends on tracker model.hardware_key
- last scanned hardware key object.value
- int. Hardware key.updated
- date/time. Date of last hardware key update in a timezone of the user or null if there are no updates.
errors¶
- 204 – Entity not found (if there is no tracker with such id belonging to authorized user).
- 208 – Device blocked (if tracker exists but was blocked due to tariff restrictions or some other reason).
get_states¶
Gets current states (gps, gsm, outputs, etc.) for several trackers.
parameters¶
name | description | type | format |
---|---|---|---|
trackers | Id of trackers (aka "object_id"). Trackers must belong to authorized user and not be blocked. | array of int | [999119, 999199] |
list_blocked | Optional. If true call returns list of blocked tracker IDs instead of error 208. Default is false . | boolean | true/false |
allow_not_exist | Optional. If true call returns list of nonexistent tracker IDs instead of error 217 or 201. Default is false . | boolean | true/false |
examples¶
curl -X POST 'https://api.navixy.com/v2/fsm/tracker/get_states' \
-H 'Content-Type: application/json' \
-d '{"hash": "a6aa75587e5c59c32d347da438505fc3", "trackers": "[999119, 999199]"}'
response¶
{
"success": true,
"user_time":"2014-07-09 07:50:58",
"states": [{
"source_id": 65894,
"gps": {
"updated": "2013-02-19 10:48:08",
"signal_level": 25,
"location": {
"lat": 56.826068,
"lng": 60.594338
},
"heading": 45,
"speed": 20,
"alt": 10,
"precision": 50,
"gsm_lbs": false
},
"connection_status": "active",
"movement_status": "moving",
"gsm": {
"updated": "2013-02-19 10:48:08",
"signal_level": 70,
"network_name": "T-MOBILE",
"roaming": false
},
"last_update": "2013-02-19 10:48:08",
"battery_level": 100,
"battery_update": "2013-02-19 10:48:08",
"inputs": [true, true, false],
"inputs_update": "2013-02-19 10:48:08",
"outputs": [true, true, false],
"outputs_update": "2013-02-19 10:48:08",
"additional": {
"hardware_key": {
"value": 564648745158875,
"updated": "2013-02-19 10:48:08"
}
}
}],
"blocked": [123456],
"not_exist": [234567]
}
user_time
- date/time. Current time in user's timezone.states
- object. A map containing state object for requested trackers. See state object description in tracker/get_state response.blocked
- array of tracker IDs. Returned only if list_blocked=true
.not_exist
- array of tracker IDs. Returned only if allow_not_exist=true
.
errors¶
- 201 – Not found in the database (if tracker corrupted and allow_not_exist =
false
). - 208 – Device blocked (if list_blocked =
false
and tracker exists but was blocked due to tariff restrictions or some other reason). - 217 – List contains nonexistent entities (if allow_not_exist =
false
and there are nonexistent trackers belonging to an authorized user).
list_models¶
Gets all integrated tracker models (from "models" table).
parameters¶
name | description | type | format |
---|---|---|---|
compact_view | Optional. true to compact view. Default is false . | boolean | true/false |
codes | Optional. Array of model codes. If passed only given models will be returned. | array of string | [model_1, model_2, ...] |
examples¶
curl -X POST 'https://api.navixy.com/v2/fsm/tracker/list_models' \
-H 'Content-Type: application/json' \
-d '{"hash": "a6aa75587e5c59c32d347da438505fc3"}'
https://api.navixy.com/v2/fsm/tracker/list_models?hash=a6aa75587e5c59c32d347da438505fc3
response¶
{
"id": 166,
"code": "tt1_wp",
"type": "vehicle",
"name": "WondeProud TT1",
"id_type": "10,2",
"has_phone": true,
"has_apn_settings": true,
"register": true,
"battery": {
"min_charge": 3.4,
"low_charge": 3.7,
"max_charge": 4.1
},
"altitude": true,
"satellites": true,
"gsm_level": true,
"gsm_network": true,
"gsm_roaming": true,
"has_detach_button": false,
"has_fuel_input": true,
"analog_inputs": 2,
"digital_inputs": 4,
"rs232_inputs": 0,
"digital_outputs": 4,
"track_control": "tt1",
"output_control": "default",
"special_control": "none",
"vendor": "WondeProud",
"rules": [
"offline",
"input_change",
"sos",
"sensor_range",
"speedup",
"route",
"track_change",
"inoutzone",
"battery_off"
],
"inputs": ["analog_2", "analog_1"],
"state_fields": [],
"special_settings": ["none"],
"sms_control": [],
"has_led_control": false,
"has_location_request": true,
"has_gsm_lbs_location_request": true,
"has_chat": false,
"check_bundle": false,
"has_odometer": true
}
id
- int. Model id.vendor
- string. Vendor name.parent_code
- string. Can be null.type
- enum. Can be "logger", "portable", "vehicle", or "personal".name
- string. Model name.has_auto_registration
- boolean. Iftrue
device may register by automatic commands from the platform.battery
- object. An internal device's battery.low_charge
- float. Charge level for the "low battery" rule triggers.
analog_inputs
- int. Number of analog inputs.digital_inputs
- int. Number of digital inputs.digital_outputs
- int. Number of digital outputs.rs232_inputs
- int. Number of RS232 inputs.inputs
- array of enum. All available input types.rules
- array of enum. Supported rules.has_led_control
- boolean. Does a switching LED supported by this tracker.has_location_request
- boolean. Does the tracker have an opportunity to request a location with a command by SMS.has_gprs_location_request
- boolean. Does the tracker have an opportunity to request a location with a command over a GPRS connection.has_gsm_lbs_location_request
- boolean. Does the tracker have an opportunity to request a location by LBS with a command over a GPRS connection.has_chat
- boolean. Does chat available for the device.has_odometer
- boolean. Does the tracker have an integrated odometer.has_lbs
- boolean. Does the tracker send information about cell info.has_motion_sensor
- boolean. Does the tracker have an integrated motion sensor.has_hardware_key
- boolean. Does the tracker have an opportunity for identification of a driver by a hardware key.additional_fields
- optional. list of descriptions of special fields using for control trackers that users fill on time of registration.
Id type:¶
An id type used to determine the information needed to register device in our system (see tracker/register).
Possible values are:
- imei – means device uses IMEI as its identifier, e.g. "356938035643809". See Wikipedia article. When needed, you should pass only digits of IMEI, no spaces, minus signs, etc.
- meid means device uses MEID consisting of 14 HEX digits as its identifier, e.g. "A10000009296F2". See Wikipedia article.
- id,n – means device uses n-digit identifier (factory id with length n), for example, "id,7" means that you must pass 7-digit number, for example "1234567".
- n,m – n-digit generated id starting with m. This means that device has configurable ID and our platform generates and configures it automatically. You don't need to pass any identifier during device registration in this case.
errors¶
General types only.
list¶
Gets user's trackers with optional filtering by labels.
parameters¶
name | description | type | format |
---|---|---|---|
labels | Optional. List of tracker label filters. If specified, only trackers that labels contains any of the given filter will be returned. | array of string | ["aa", "b"] |
Constraints for labels:
- Labels array size: minimum 1, maximum 1024.
- No null items.
- No duplicate items.
- Item length: minimum 1, maximum 60.
For example, we have trackers with labels "aa1", "bb2", "cc3", if we pass labels=["aa","b"]
only trackers containing "aa1" and "bb2" will be returned.
examples¶
curl -X POST 'https://api.navixy.com/v2/fsm/tracker/list' \
-H 'Content-Type: application/json' \
-d '{"hash": "a6aa75587e5c59c32d347da438505fc3"}'
https://api.navixy.com/v2/fsm/tracker/list?hash=a6aa75587e5c59c32d347da438505fc3
response¶
{
"success": true,
"list": [{
"id": 123456,
"label": "tracker label",
"clone": false,
"group_id": 167,
"avatar_file_name" : "file name",
"source": {
"id": 234567,
"device_id": 9999999988888,
"model": "telfmb920",
"blocked": false,
"tariff_id": 345678,
"status_listing_id": null,
"creation_date": "2011-09-21",
"tariff_end_date": "2016-03-24",
"phone" : "+71234567890"
},
"tag_bindings": [{
"tag_id": 456789,
"ordinal": 4
}]
}]
}
See tracker object structure description here.
errors¶
General types only.
tags/set¶
Set tags for a tracker. Tags must be created.
parameters¶
name | description | type | format |
---|---|---|---|
tracker_id | Id of the tracker (aka "object_id"). Tracker must belong to authorized user and not be blocked. | int | 999119 |
tag_bindings | List of tag_binding objects. | array of Json objects | [{"tag_id" : 1, "ordinal" : 1}, {"tag_id" : 2, "ordinal" : 2}] |
examples¶
curl -X POST 'https://api.navixy.com/v2/fsm/tracker/tags/set' \
-H 'Content-Type: application/json' \
-d '{"hash": "a6aa75587e5c59c32d347da438505fc3", "tracker_id": "123456", "tag_bindings": "[{"tag_id" : 1, "ordinal" : 1}, {"tag_id" : 2, "ordinal" : 2}]"}'
response¶
{ "success": true }
errors¶
General types only.
location_request¶
Execute this command to get current position of the device. The device must support requesting function.
parameters¶
name | description | type | format |
---|---|---|---|
tracker_id | Id of the tracker (aka "object_id"). Tracker must belong to authorized user and not be blocked. | int | 999119 |
type | Optional. Default type sms. | string | "sms" |
Request types:
- sms – GNSS data via SMS. Will send an SMS to request location. SMS gateway must be installed for the panel.
- gsm – GSM LBS data via GPRS. Device must have
online
orGPS not updated
status. - gprs – GNSS data via GPRS. Device must have
online
orGPS not updated
status.
examples¶
curl -X POST 'https://api.navixy.com/v2/fsm/tracker/location_request' \
-H 'Content-Type: application/json' \
-d '{"hash": "a6aa75587e5c59c32d347da438505fc3", "tracker_id": "123456"}'
https://api.navixy.com/v2/fsm/tracker/location_request?hash=a6aa75587e5c59c32d347da438505fc3&tracker_id=123456
response¶
{ "success": true }
errors¶
- 204 – Entity not found (if there is no tracker with such id belonging to authorized user).
- 208 – Device blocked (if tracker exists but was blocked due to tariff restrictions or some other reason).
- 213 – Cannot perform action: the device is offline.
- 214 – Requested operation or parameters are not supported by the device.
- 256 – Location already actual.
register_quick¶
Registers a new tracker using only IMEI. Automatic SMS commands will not be sent for a register. The device must be preconfigured.
required sub-user rights: tracker_register
parameters¶
name | description | type | format |
---|---|---|---|
label | User-defined label for this tracker. Must consist of printable characters and have length between 1 and 60. | string | "Courier" |
group_id | Tracker group id, 0 if tracker does not belong to any group. The specified group must exist. See group/list. | int | 0 |
imei | Tracker's IMEI. | string | "35645587458999" |
examples¶
curl -X POST 'https://api.navixy.com/v2/fsm/tracker/register_quick' \
-H 'Content-Type: application/json' \
-d '{"hash": "a6aa75587e5c59c32d347da438505fc3", "label": "Courier", "group_id": "0", "imei": "35645587458999"}'
https://api.navixy.com/v2/fsm/tracker/register_quick?hash=a6aa75587e5c59c32d347da438505fc3&label=Courier&group_id=0&imei=35645587458999
response¶
{
"success": true,
"value": {
"id": 123456,
"label": "tracker label",
"clone": false,
"group_id": 167,
"avatar_file_name" : "file name",
"source": {
"id": 234567,
"device_id": 9999999988888,
"model": "telfmb920",
"blocked": false,
"tariff_id": 345678,
"status_listing_id": null,
"creation_date": "2011-09-21",
"tariff_end_date": "2016-03-24",
"phone" : "+71234567890"
},
"tag_bindings": [{
"tag_id": 456789,
"ordinal": 4
}]
}
}
For tracker
object structure, see tracker/.
errors¶
- 13 – Operation not permitted – if user has insufficient rights.
- 201 – Not found in the database (if there is no bundle with such IMEI).
- 204 – Entity not found (if specified group does not exist).
- 220 – Unknown device model (if specified device model does not exist).
- 221 – Device limit exceeded (if device limit set for the user's dealer has been exceeded).
- 222 – Plugin not found (if specified plugin not found or is not supported by device model).
- 223 – Phone number already in use (if specified phone number already used in another device).
- 224 – Device ID already in use (if specified device ID already registered in the system).
- 225 – Not allowed for this legal type (if tariff of the new device is not compatible with user's legal type).
- 226 – Wrong ICCID (if specified ICCID was not found).
- 227 – Wrong activation code (if specified activation code not found or is already activated).
register_retry¶
Resends registration commands to the device. The panel must have installed SMS gateway.
required sub-user rights: tracker_register
parameters¶
name | description | type | format |
---|---|---|---|
tracker_id | ID of the tracker (aka "object_id"). Tracker must belong to authorized user and not be blocked. | int | 999119 |
device_id | Device ID that was used to register, e.g. IMEI. It can be used instead of tracker_id for models with a fixed ID. | string | "4568005588562" |
apn_name | The name of GPRS APN of this sim card inserted into device. | string | "fast.tmobile.com" |
apn_user | The user of GPRS APN of this sim card inserted into device. | string | "tmobile" |
apn_password | The password of GPRS APN of the sim card inserted into device. | string | "tmobile" |
examples¶
curl -X POST 'https://api.navixy.com/v2/fsm/tracker/register_retry' \
-H 'Content-Type: application/json' \
-d '{"hash": "a6aa75587e5c59c32d347da438505fc3", "tracker_id": "999119", "apn_name": "fast.tmobile.com", "apn_user": "tmobile", "apn_password": "tmobile"}'
https://api.navixy.com/v2/fsm/tracker/register_retry?hash=a6aa75587e5c59c32d347da438505fc3&tracker_id=999119&apn_name=fast.tmobile.com&apn_user=tmobile&apn_password=tmobile
response¶
{
"success": true,
"value": {
"id": 123456,
"label": "tracker label",
"clone": false,
"group_id": 167,
"avatar_file_name" : "file name",
"source": {
"id": 234567,
"device_id": 9999999988888,
"model": "telfmb920",
"blocked": false,
"tariff_id": 345678,
"status_listing_id": null,
"creation_date": "2011-09-21",
"tariff_end_date": "2016-03-24",
"phone" : "+71234567890"
},
"tag_bindings": [{
"tag_id": 456789,
"ordinal": 4
}]
}
}
For tracker
object structure, see tracker/.
errors¶
- 13 – Operation not permitted – if user has insufficient rights.
- 204 – Entity not found (if there is no tracker with such id belonging to authorized user).
- 208 – Device blocked (if tracker exists but was blocked due to tariff restrictions or some other reason).
- 219 – Not allowed for clones of the device (if specified tracker is a clone).
- 214 – Requested operation or parameters are not supported by the device (if device does not have GSM module).
- 242 – Device already connected. (if tracker connected to the server).
register¶
Registers a new tracker device. During registration, device linked with current API user's account and automatically configured to send data to our servers (if device model supports it). The panel must have installed SMS gateway.
required sub-user rights: tracker_register
parameters¶
Important
Because of the variety of tracker models and business applications, there are different ways to register tracker in our system. They are called Registration plugins. Each of registration plugins has its own set of additional parameters.
In addition to parameters specified in this section, pass all parameters which are required by the plugin you have chosen. See example below.
Common parameters are:
name | description | type | format |
---|---|---|---|
label | User-defined label for this tracker. Must consist of printable characters and have length between 1 and 60. | string | "Courier" |
group_id | Tracker group id, 0 if tracker does not belong to any group. The specified group must exist. See group/list. | int | 0 |
model | A code of one of the supported models. See tracker/list_models. | string | "pt10" |
plugin_id | An id of a registration plugin which will be used to register the device. See Registration plugins. | int | 37 |
device_id | Must be specified if device model uses fixed device id. See tracker/list_models. | string | "4568005588562" |
send_register_commands | Indicates send or not to send activation commands to device (via SMS or GPRS channel). If parameter is not specified or equals null will be used the platform settings. Default: null . | boolean | true/false |
create_employee | If true, an employee will be created with name equal to label, phone number equal to notification_phone , and email equal to notification_email . If parameter is not specified or equals null , it is treated as false | boolean | true/false |
examples¶
In this example we use plugin id = 37 (see Plugin description) to register Queclink GV55Lite. We chose to include the device to default group, so group ID is 0. As this device identified by IMEI, we include it as device ID (123451234512346).
Also, we include phone, apn_name, apn_user, apn_password of the sim card installed in device and activation_code since these parameters required by the plugin.
You can try to "auto-detect" APN settings by phone number using apn_settings/read API call.
curl -X POST 'https://api.navixy.com/v2/fsm/tracker/register' \
-H 'Content-Type: application/json' \
-d '{"hash": "a6aa75587e5c59c32d347da438505fc3", "label": "Courier", "group_id": "0", "plugin_id": "37", "model": "qlgv55lite", "phone": "79123122312", "activation_code": "123123123", "device_id": "123451234512346", "apn_name": "fast.tmobile.com", "apn_user": "tmobile", "apn_password": "tmobile"}'
https://api.navixy.com/v2/fsm/tracker/register?hash=a6aa75587e5c59c32d347da438505fc3&label=Courier&group_id=0&plugin_id=37&model=qlgv55lite&phone=79123122312&activation_code=123123123&device_id=123451234512346&apn_name=fast.tmobile.com&apn_user=tmobile&apn_password=tmobile
response¶
{
"success": true,
"value": {
"id": 123456,
"label": "tracker label",
"clone": false,
"group_id": 167,
"avatar_file_name" : "file name",
"source": {
"id": 234567,
"device_id": 9999999988888,
"model": "telfmb920",
"blocked": false,
"tariff_id": 345678,
"status_listing_id": null,
"creation_date": "2011-09-21",
"tariff_end_date": "2016-03-24",
"phone" : "+71234567890"
},
"tag_bindings": [{
"tag_id": 456789,
"ordinal": 4
}]
}
}
For tracker
object structure, see tracker/.
errors¶
- 13 – Operation not permitted – if user has insufficient rights.
- 204 – Entity not found (if specified group does not exist. See group/list).
- 220 – Unknown device model (if specified device model does not exist).
- 221 – Device limit exceeded (if device limit set for the user's dealer has been exceeded).
- 222 – Plugin not found (if specified plugin not found or is not supported by device model).
- 223 – Phone number already in use (if specified phone number already used in another device).
- 224 – Device ID already in use (if specified device ID already registered in the system).
- 225 – Not allowed for this legal type (if tariff of the new device is not compatible with user's legal type).
- 226 – Wrong ICCID (Plugin specific: if specified ICCID was not found).
- 227 – Wrong activation code (Plugin specific: if specified activation code not found or is already activated).
- 258 – Bundle not found (Plugin specific: if bundle not found for specified device ID).
send_command¶
Sends command to tracker for performing special control, determined with "special_control" field of tracker model.
required sub-user rights: tracker_configure
, tracker_set_output
common command format is:
{
"command": {
"name": "command name",
"some_parameter1": 12,
"some_parameter2": "parameter",
"special_settings": {
"type": "settings type",
"some_field1": 10,
"some_field2": 32
}
}
}
name
- Command name.some_parameter
- Parameters depend on certain command.special_settings
- optional field. Its structure defined with "special_control" field of tracker model.
Certain commands which can be used is defined with special_control
field of tracker model and corresponds the table below:
special control | available commands |
---|---|
jointech_lock_password | electronic_lock_command, set_special_settings_command |
hhd_lock_password | electronic_lock_command, set_special_settings_command |
vg_lock_password | electronic_lock_command, set_special_settings_command |
any other special control | set_special_settings_command |
command types¶
electronic_lock_command
This command used to seal/unseal electronic lock.
{
"name": "electronic_lock_command",
"command_code": "unseal",
"special_settings": {<special settings JSON object>}
}
command_code
- enum. Can be "seal" or "unseal".special_settings
- This command is equivalent to API call tracker/settings/special/update.
{
"name": "set_special_settings_command",
"special_settings": {<special settings JSON object>}
}
See special settings JSON object
parameters¶
name | description | type | format |
---|---|---|---|
tracker_id | Id of the tracker (aka "object_id"). Tracker must belong to authorized user and not be blocked. | int | 999119 |
command | Command that will be sent to device. Not Null. | JSON object | See format above |
examples¶
curl -X POST 'https://api.navixy.com/v2/fsm/tracker/send_command' \
-H 'Content-Type: application/json' \
-d '"hash": "a6aa75587e5c59c32d347da438505fc3", "tracker_id": "999119", "command": {name: "electronic_lock_command", command_code: "unseal", special_settings:{"type":"electronic_lock_password", "password": "345892", "remember_password": "true"}}}'
response¶
{
"success": true,
"list": [{
"id": 123456,
"label": "tracker label",
"clone": false,
"group_id": 167,
"avatar_file_name" : "file name",
"source": {
"id": 234567,
"device_id": 1234567890,
"model": "telfmb920",
"blocked": false,
"tariff_id": 345678,
"status_listing_id": null,
"creation_date": "2011-09-21",
"tariff_end_date": "2016-03-24",
"phone" : "+71234567890"
},
"tag_bindings": [{
"tag_id": 456789,
"ordinal": 4
}]
}]
}
tracker
object structure, see tracker/. errors¶
General types only.