Full Navixy API Documentation
Full Navixy API Documentation
Getting started
Get involved
You can really help to improve this documentation o localizations of B2Field Platform.
If the translation of the user interface into your language is missing or contains errors,
you can make or fix the localization on the CrowdIn platform yourself. Read here how to
do it.
Current documentation may also contain errors or white spots. All of it is available in
the public domain on GitHub and you can independently contribute in its correction or
addition. Read here how to do it.
Useful things
It is convenient to use postman for testing work with API.
If you notice an inaccuracy, mistake, typo or want to supplement the information in this
documentation, then you can help us to improve it. All of this documentation is
available in the public domain on GitHub.
3. Manually creating a fork and doing multiply commits before creating a pull request.
In each of these cases, a GitHub account required. If you don't want to register on
GitHub, you can just contact us with any convenient way.
Easy way
On each page in the upper right corner of the text top there is a link with a picture of a
pencil :material-pencil:. After clicking on this link, you will be asked to create a fork of
the repository (if you have not done this before).
Creating a fork done with one green button. After that, the edit form with page source
code will open.
For correct edit of page, please read the introduction into Mkdocs.
After editing the page, you must fill out a description of what you have done.
Skip to content
Submitting a change will write it to a new branch in your fork, so you can send a pull
request. We will review your pull request and accept it in the main branch.
Thus, this method is only suitable for simple edits on one page. There is another way to
create pull requests to fix multiple pages at once.
Second way
This method allows you to make several edits on different pages before proposing them
in a pull request.
1. Create a fork of the repository if it has not been created yet. (Just click the "Fork"
button in the upper right corner.)
2. Go to the created fork and find the file you are interested in.
6. Go to the start page of the fork and click on the "Pull request" button.
After review and pull request will be merged, and you can drop a fork.
Hard way
This method involves installing the Git, IDE, Python and Material for MkDocs on yours
PC.
1. Install Python 3.
cd /path/to/project
mkdir venv
python -m venv ./venv
pip3 install -r requirements.txt
cd /path/to/project
source venv/bin/activate
# Windows: \venv\Scripts\activate.bat
mkdocs serve --dirtyreload
10. Commit and push changes. Please, use English in commit message.
11. Create a Pull Request (PR) on Github from your fork. Please, use English in PR
description.
12. After the PR has been reviewed and merged to upstream you can remove branch
and rebase a fork to the upstream.
Menu
The menu formed using the plugin awesome-pages automatically. To set the desired
page order in the menu, use the file .pages.yml in directory. For example:
Meta information
Each page must have meta information section at the beginning. Required fields: title
and description . For example:
---
title: Get involved
description: Get involved into improving documentation and
translations of the B2Field Platform
---
Headers
The information on each page should be structured. On pages of the same type, the
structure should be uniform.
Example
# Resource name
Path: `/path/to/resource\`.
Resource description.
* [/path/to/resource/method1](#method1)
* [/path/to/resource/method2](#method2)
## method1
Method description.
### Parameters
### Examples
=== "cURL"
```shell
curl -X POST 'https://api.navixy.com/v2/fsm/resource/
sub_resource/action' \
Skip to content
-H 'Content-Type: application/json' \
-d '{"param1": "value1", "param2": "value2", "hash":
"a6aa75587e5c59c32d347da438505fc3"}'
```
```
https://api.navixy.com/v2/fsm/resource/sub_resource/action?
param1=value1&hash=a6aa75587e5c59c32d347da438505fc3
```
### Response
```json
{ "success": true }
```
### Errors
## method2
...
Contacts
• GitHub
• https://www.facebook.com/B2Field/
Languages
B2Field already supports many languages and provides an easy way to add a new
language:
Arabic
Croatian
Dutch
English
French
Georgian
German
Greek
Indonesian
Korean
Mongolian
Polish
Portuguese
Portuguese (Brazil)
Romanian
Russian
Sinhala
Spanish
Tamil
Thai
Turkish
Ukrainian
and others...
In all B2Field products both left-to-right and right-to-left languages are supported. The
following B2Field projects are maintained currently:
Localizing B2Field products to the language of your choice is simple and handy. Add a
new language or update an existing translation in a few easy steps. Then you can
translate Navixy to your language.
All translations are done through the crowdin online translation service, developed
specifically for team-based translation projects.
Getting started
First of all you should contact your manager, to obtain Crowdin account associated with
Navixy Crowdin project.
https://demo.navixy.com/?locale=ach#/login
After authorization standard Navixy UI will appear in a special translation mode. Click
on a little icon near each text item
1. Common Server properties, API server properties, Tracking server properties, SMS
server properties - translation strings for backend (Mainly for Reports, SMS and
Email notifications)
2. Future Web UI, Legacy Web UI - translation strings for Navixy Web UI.
Each entry in each directory contains strings for translation, displayed in translation
screen
If you have some problems with translation feel free to ask questions in comments.
Translations delivery
Skip to content
Usally it takes about a week to deploy translations to production environment.
In case of standalone installations and mobile apps this time is linked to standalone/
mobile app release schedule.
If you translate Navixy to the new language, after translation you should notify your
manager that your translation is complete. Your manager will ask development team to
add new language to the platform. In the other case translations of the existing
language will be delivered to production automatically.
There are many tools that could be used to work with API requests. From simple input
to browser's address line or cmd tool to more complex software. One of our personal
favorites is Postman application. Postman is a collaboration platform for API
development. It can be used for a variety of purposes ranging from simple request
testing to creating and maintaining your own APIs for your own software.
Each API request uses an HTTP method. The most common methods for B2Field
API are GET and POST. GET methods retrieve data from an API. POST sends new
data to an API.
2. Enter base request URL with the resource and sub-resource. In our example we will
Skipuse
to content
user/auth and tracker/list requests. Base request URLs are:
3. Click on the Params button, and you will see a table for key and value input:
We will only ever need to fill 2 fields - Key (parameter name from documentation)
Skipand
to content
value. For user/auth request, we have 2 keys that should be transmitted - login
and password.
You can see that once we fill out the parameter name - it is automatically added to
the request line.
4. Press send, and you will see the reply, already split and highlighted for easier
reading
In this case, we have received a hash that should be copied and user for future
requests.
If your request has multiple parameters listed - you can easily enable and disable,
preventing errors:
History of requests
Skip to content
On the left side of postman application a history of your requests is stored. If you made
errors or oo many changes and just want to go back to the old version or re-execute the
request made in the past - a simple double-click will open a request in a new tab:
Examples in documentation
You could see that our API documentation has both structure of the request and
examples. You can copy them and paste in postman. In this case all parameters will be
automatically separated to strings for more convenient editing
How to install
Skip to content
To get the latest version of the Postman app, visit the download page and click
"Download" for your platform.
General
Each API resource semantically corresponds to some entity, for example: geofences,
rules, objects, etc. The API calls for CRUD and other operations with these entities have
similar names regardless the resource used: list, read, create, delete.
2. Authorize with user/auth . This API method will return the hash you should use for
all your next API calls.
In other words, to start working with API, the developers should have API call
description (as provided herein), and know user login and password.
For example, to make user/auth API call on the European B2Field ServerMate, you
should use the URL:
https://api.eu.navixy.com/v2/fsm/user/auth
API calls format
Skip to content
Notation used in this doc:
/resource/sub_resource/action(parameter1,parameter2,[parameter3])
[api_base_url]/resource/sub_resource/action
• parameter1
• parameter2
• parameter3 is optional
• HTTP GET - not recommended, should be used only for idempotent requests with
small parameters size
HTTP GET
$ curl '[api_base_url]/resource/sub_resource/action?
param1=value1&hash=a6aa75587e5c59c32d347da438505fc3'
Typical actions:
• list – list all resource entities with IDs and minimum additional info
• read – read one entity by ID
Skip to content
• update – update one entity by ID
[api_base_url]/resource/action/
The response will be given with application/json content type, even errors (see error
handling). Response fields and object structure is specific to API call.
Ensuring compatibility
Our API evolves over time, and new methods and JSON object fields are being added.
We are doing our best to ensure our API remains backwards compatible with legacy API
clients. However, you must ensure that any JSON object fields which are not supported
by your app are ignored, and that in event if new JSON fields are returned, your
application will not break. Also, sometimes, to reduce response size, JSON fields which
are NULL are omitted. Your JSON parser should handle missing JSON fields as if they
were NULL.
For example
Skip to content
{
"success": true,
"list": [
{
"id": 560,
"label": "GV55",
"group_id": 12,
"avatar_file_name": "super-avatar.jpg",
"source": {
"id": 2915,
"model": "gv55lite",
"blocked": false,
"tariff_id": 2,
"phone": "111",
"status_listing_id": 333,
"creation_date": "2014-02-02",
"device_id": "888888888888888"
},
"tag_bindings": [
{
"tag_id": 1,
"ordinal": 1
}
],
"clone": true
},
{
"id": 2799,
"label": "2799",
"group_id": 0,
"source": {
"id": 2692,
"model": "m7",
"blocked": true,
"tariff_id": 5,
"phone": null,
"status_listing_id": null,
"creation_date": "2006-02-10",
"device_id": "333333333333333"
},
"tag_bindings": [
{
"tag_id": 9,
"ordinal": 3
}
],
"clone": false
}
]
}
Or error if hash is wrong:
Skip to content
{
"success": false,
"status": {
"code": 4,
"description": "User not found or session ended"
}
}
HTTP codes
If success is true , HTTP code is always 200 OK (unless otherwise stated). If there is
an error, HTTP code is 400 BAD REQUEST (may vary depending on error type) (see
error).
Unless otherwise noted, every API call requires a valid user session hash (A String
containing 32 hexademical characters) that can be passed (in order of lookup priority):
GET
[api_base_url]/user/auth?login=demo&password=demo
Data types
Error handling
If an error occurs, API returns special error response. You can also detect error by
checking HTTP response code. If it's not 200 OK , you should parse and handle
response body as an error response. In the event of error occurs, the response will be in
the following format:
{
"success": false,
"status": {
"code": 1,
"description": "Database error"
}
}
Error codes
Default HTTP code is 400. Common error codes (should be handled for all API calls) are
1-100 and resource or action specific errors are 101-300.
7 Invalid parameters
code description HTTP
Skip to content
code
263 No change needed, old and new values are the same
266 Cannot perform action for the device in current status 403
code description HTTP
Skip to content
code
How to
Working with API might seem hard at first, but the goal of our documentation is to
assist you in this process and make it more approachable.
Our How to's section has step by step examples of working with B2Field API.
From initial step of obtaining a session key to more complicated operations like
retrieving a list of devices, tracks or creating reports. Using API and scripting you will be
able to develop applications that not only satisfy your customer's needs but also help
you make your business more profitable.
"Hash" or "Session key" is a randomly generated string that is used to verify and
authenticate actions. Nearly all API calls require a session key to operate.
https://api.navixy.com/v2/fsm/user/auth?
login=user_login&password=user_password
Received hash should be saved and used in API calls. For security reasons, hash has a
lifetime of 30 days and will expire in certain situations:
• After 30 days.
Correct work with hash is crucial. There is no need to receive a new hash before each
request, instead, your hash should be stored and reused. To prevent expiration, in most
cases you just need to prolong the session.
https://api.navixy.com/v2/fsm/user/session/renew?hash=you_hash
You can disable the current hash with the following call:
https://api.navixy.com/v2/fsm/user/logout?hash=your_hash
Using hash
You must pass session hash with most API calls along other parameters required to
make the call.
For example, if you want to make a call with the single parameter id equal to 1, and
Skipobtained
you to content
hash equal to 882fb333405d006df0d5a3f410115e92 (fake hash, just for
example) you must pass the following parameters in HTTP request:
id=1&hash=882fb333405d006df0d5a3f410115e92 (example is for POST/ x-www-form-
urlencoded or GET requests).
{
"success": false,
"status": {
"code": 3,
"description": "Wrong user hash"
}
}
Whenever you see such response, it means that you did not pass hash value properly.
If session expired or was logged out, you will receive the following response:
{
"success": false,
"status": {
"code": 4,
"description": "User not found or session ended"
}
}
It means that you need to obtain new user hash through user/auth API action.
B2Field has tracking device as a main unit, so most requests would require you to
specify one or several tracker ids. You can receive a list of all trackers in user's account
with tracker/list API request:
cURL
HTTP GET
https://api.navixy.com/v2/fsm/tracker/list?
hash=a6aa75587e5c59c32d347da438505fc3
{
"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
}]
• 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.
• ordinal - int. Number that can be used as ordinal or kind of tag. Must be
unique for a tracker. Max value is 5.
If account has a large amount of trackers, and you only need certain ones, you can add
an optional filter parameter to the request that will only return matching records.
This parameter has following constraints: * labels array size: minimum 1, maximum
1024 * no null items * no duplicate items * item length: minimum 1, maximum 60
To get a list of trackers with labels matching the filter use this API call:
Sometimes necessary to get all points of a trip with more info about the device's
moves. How to get them?
Once you get the hash, you need to get your tracker_id. The platform must know points
for what device must be in reply.
Now you can get all points for the interesting period using /track/read API call.
Parameters that necessary for this call:
• tracker_id - we got them in tracker/list call. Use only one tracker_id per call. It
should be an integer.
Optional parameters:
• track_id - we can get them using track/list API call. If specified, only points
belonging to the specified track will be returned. If not, any valid track points
between from and to will be returned. All requested track ids must be unique and
not null.
• filter – boolean. If true , the returned track will be filtered, applicable only for
LBS tracks. It is false by default.
{
"success": true,
"limit_exceeded": true,
"list": [
{
"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",
Skip to content
"heading": 298,
"speed": 70,
"precision": 100,
"gsm_lbs": true,
"parking": true
}
]
}
You can also download a KML file. You could use this file with map services. It is useful
if you need to see all points on the map:
All parameters are identical with track/read with the except of two new optional
parameters:
• split – boolean. If true , split tracks by folders with start/end placemarks and
track line. Default false .
Reports consider information that can be used to manage your fleet successfully.
Sometimes it is necessary to get a report's information that can be used in programs or
specific reports in needs for business. For example, necessary information about trips +
fuel consumption, drains and refills. Follow the next steps, to obtain report's
information.
Generate report
To receive data for processing, it must be generated. This can be done using a call
report/tracker/generate.
• time_filter - An object which contains everyday time and weekday limits for
processed data, e.g. {"to":"18:00", "from":"12:00", "weekdays":
[1,2,3,4,5]} .
API request:
cURL
Skip to content
curl -X POST 'https://api.navixy.com/v2/fsm/report/tracker/
generate' \
-H 'Content-Type: application/json' \
-d '{"hash": "a6aa75587e5c59c32d347da438505fc3", "title":
"Trip report", "trackers": [669673], "from": "2020-10-05
00:00:00", "to": "2020-10-06 23:59:59", "time_filter": {"from":
"00:00:00", "to": "23:59:59", "weekdays": [1,2,3,4,5,6,7]},
"plugin": {"hide_empty_tabs": true, "plugin_id": 4,
"show_seconds": false, "include_summary_sheet_only": false,
"split": true, "show_idle_duration": false, "show_coordinates":
false, "filter": true, "group_by_driver": false}}'
{
"success": true,
"id": 222
}
Retrieve report
To obtain all generated analytic data from the report in JSON format use report/tracker/
retrieve.
API request:
cURL
HTTP GET
https://api.navixy.com/v2/fsm/report/tracker/retrieve?
hash=a6aa75587e5c59c32d347da438505fc3&report_id=1234567
{
"success": true,
"report": {
"created": "2020-10-06 16:01:46",
"time_filter": {
"from": "00:00:00",
"to": "23:59:59",
"weekdays": [
1,
2,
3,
4,
5,
6,
7
]
},
"title": "Trip report",
"id": 5602232,
"sheets": [
{
"header": "Samantha (Ford Focus)",
"sections": [
{
"data": [
{
"rows": [
{
"to": {
"v": "02:39 - Serpukhov,
Moscow Oblast, Russia, 142253",
"raw": 1601941188000.0,
"type": "value",
"location": {
"lat": 54.9218516,
"lng": 37.335545
}
},
"from": {
"v": "00:47 - Selyatino, Naro-
Fominskii gor. okrug, Moscow Oblast, Russia, 143370",
"raw": 1601934439000.0,
"type": "value",
"location": {
"lat": 55.5311083,
"lng": 36.96743
}
},
"time": {
"v": "01:52",
"raw": 6749.0,
"type": "value"
},
"length": {
"v": "106.29",
"raw": 106.29,
"type": "value"
},
"avg_speed": {
Skip to content
"v": "57",
"raw": 57.0,
"type": "value"
},
"max_speed": {
"v": "94",
"raw": 94.0,
"type": "value"
}
},
{
"to": {
"v": "05:10 - Selyatino, Naro-
Fominskii gor. okrug, Moscow Oblast, Russia, 143370",
"raw": 1601950218000.0,
"type": "value",
"location": {
"lat": 55.5308216,
"lng": 36.967315
}
},
"from": {
"v": "03:11 - Serpukhov,
Moscow Oblast, Russia, 142253",
"raw": 1601943083000.0,
"type": "value",
"location": {
"lat": 54.9218116,
"lng": 37.3354833
}
},
"time": {
"v": "01:58",
"raw": 7135.0,
"type": "value"
},
"length": {
"v": "106.97",
"raw": 106.97,
"type": "value"
},
"avg_speed": {
"v": "54",
"raw": 54.0,
"type": "value"
},
"max_speed": {
"v": "94",
"raw": 94.0,
"type": "value"
}
},
{
"to": {
"v": "07:54 - Khievskii
pereulok, 10, TNKh, Rassudovo, Troitsky Administrative Okrug,
Moscow, Russia, 143340",
"raw": 1601960075000.0,
"type": "value",
"location": {
"lat": 55.4666366,
Skip to content
"lng": 36.9216966
}
},
"from": {
"v": "07:38 - Selyatino, Naro-
Fominskii gor. okrug, Moscow Oblast, Russia, 143370",
"raw": 1601959081000.0,
"type": "value",
"location": {
"lat": 55.53122,
"lng": 36.9672916
}
},
"time": {
"v": "00:16",
"raw": 994.0,
"type": "value"
},
"length": {
"v": "10.03",
"raw": 10.03,
"type": "value"
},
"avg_speed": {
"v": "36",
"raw": 36.0,
"type": "value"
},
"max_speed": {
"v": "85",
"raw": 85.0,
"type": "value"
}
},
{
"to": {
"v": "09:36 - Serpukhov,
Moscow Oblast, Russia, 142253",
"raw": 1601966165000.0,
"type": "value",
"location": {
"lat": 54.926835,
"lng": 37.3341066
}
},
"from": {
"v": "07:58 - Khievskii
pereulok, 10, TNKh, Rassudovo, Troitsky Administrative Okrug,
Moscow, Russia, 143340",
"raw": 1601960315000.0,
"type": "value",
"location": {
"lat": 55.46661,
"lng": 36.9216516
}
},
"time": {
"v": "01:37",
"raw": 5850.0,
"type": "value"
},
Skip to content
"length": {
"v": "95.31",
"raw": 95.31,
"type": "value"
},
"avg_speed": {
"v": "59",
"raw": 59.0,
"type": "value"
},
"max_speed": {
"v": "91",
"raw": 91.0,
"type": "value"
}
},
{
"to": {
"v": "09:53 - Serpukhov,
Moscow Oblast, Russia, 142253",
"raw": 1601967190000.0,
"type": "value",
"location": {
"lat": 54.921935,
"lng": 37.33551
}
},
"from": {
"v": "09:43 - Serpukhov,
Moscow Oblast, Russia, 142253",
"raw": 1601966585000.0,
"type": "value",
"location": {
"lat": 54.9264033,
"lng": 37.3336633
}
},
"time": {
"v": "00:10",
"raw": 605.0,
"type": "value"
},
"length": {
"v": "0.95",
"raw": 0.95,
"type": "value"
},
"avg_speed": {
"v": "6",
"raw": 6.0,
"type": "value"
},
"max_speed": {
"v": "13",
"raw": 13.0,
"type": "value"
}
},
{
"to": {
"v": "12:36 - Selyatino, Naro-
Skip to content
Fominskii gor. okrug, Moscow Oblast, Russia, 143370",
"raw": 1601977017000.0,
"type": "value",
"location": {
"lat": 55.5309666,
"lng": 36.9674183
}
},
"from": {
"v": "10:27 - Serpukhov,
Moscow Oblast, Russia, 142253",
"raw": 1601969226000.0,
"type": "value",
"location": {
"lat": 54.9219933,
"lng": 37.335495
}
},
"time": {
"v": "02:09",
"raw": 7791.0,
"type": "value"
},
"length": {
"v": "108.48",
"raw": 108.48,
"type": "value"
},
"avg_speed": {
"v": "50",
"raw": 50.0,
"type": "value"
},
"max_speed": {
"v": "89",
"raw": 89.0,
"type": "value"
}
},
{
"to": {
"v": "16:01 - KhP \"Lesnoe
ozero\", Dernopol'e, gor. okrug Serpukhov, Moscow Oblast, Russia,
142279",
"raw": 1601989300000.0,
"type": "value",
"location": {
"lat": 54.9875133,
"lng": 37.3093183
}
},
"from": {
"v": "13:34 - Selyatino, Naro-
Fominskii gor. okrug, Moscow Oblast, Russia, 143370",
"raw": 1601980444000.0,
"type": "value",
"location": {
"lat": 55.5309966,
"lng": 36.96738
}
},
Skip to content
"time": {
"v": "02:27",
"raw": 8856.0,
"type": "value"
},
"length": {
"v": "95.79",
"raw": 95.79,
"type": "value"
},
"avg_speed": {
"v": "39",
"raw": 39.0,
"type": "value"
},
"max_speed": {
"v": "88",
"raw": 88.0,
"type": "value"
}
}
],
"total": {
"text": "In total:",
"time": {
"v": "10:33",
"raw": 37980.0,
"type": "value"
},
"length": {
"v": "523.8",
"raw": 523.8,
"type": "value"
},
"avg_speed": {
"v": "50",
"raw": 50.0,
"type": "value"
},
"max_speed": {
"v": "94",
"raw": 94.0,
"type": "value"
}
},
"header": "Oct 6, 2020 (Tue) : 7"
}
],
"type": "table",
"header": "Trips",
"columns": [
{
"align": "left",
"field": "from",
"title": "Movement start",
"width": 4,
"weight": 3,
"highlight_min_max": false
},
{
"align": "left",
Skip to content
"field": "to",
"title": "Movement end",
"width": 4,
"weight": 3,
"highlight_min_max": false
},
{
"align": "right",
"field": "length",
"title": "Total trips length,\nkm",
"width": 1,
"weight": 0,
"highlight_min_max": false
},
{
"align": "right",
"field": "time",
"title": "Travel time",
"width": 1,
"weight": 0,
"highlight_min_max": false
},
{
"align": "right",
"field": "avg_speed",
"title": "Average speed,\nkm/h",
"width": 1,
"weight": 0,
"highlight_min_max": false
},
{
"align": "right",
"field": "max_speed",
"title": "Max. speed,\nkm/h",
"width": 1,
"weight": 0,
"highlight_min_max": false
}
],
"column_groups": []
},
{
"rows": [
{
"v": "7",
"raw": 7.0,
"name": "Trips",
"highlight": false
},
{
"v": "523.8",
"raw": 523.8,
"name": "Total trips length, km",
"highlight": false
},
{
"v": "10:33",
"raw": 633.0,
"name": "Travel time",
"highlight": false
},
Skip to content
{
"v": "50",
"raw": 50.0,
"name": "Average speed, km/h",
"highlight": false
},
{
"v": "94",
"raw": 94.0,
"name": "Max. speed, km/h",
"highlight": false
},
{
"v": "515855",
"raw": 515855.0,
"name": "Odometer value *, km",
"highlight": false
}
],
"type": "map_table",
"header": "Summary"
},
{
"text": "Odometer value at the end of the
selected period.",
"type": "text",
"style": "small_print"
}
],
"entity_ids": [
311852
],
"additional_field": ""
}
],
"from": "2020-10-06 00:00:00",
"to": "2020-10-06 23:59:59"
}
Deleting reports
When the information has been received and processed, there is no need to leave the
generated report. It can be removed. Use report/tracker/delete.
API request:
cURL
Skip to content
curl -X POST 'https://api.navixy.com/v2/fsm/report/tracker/delete'
\
-H 'Content-Type: application/json' \
-d '{"hash": "a6aa75587e5c59c32d347da438505fc3", "report_id":
"1234567"}'
HTTP GET
https://api.navixy.com/v2/fsm/report/tracker/delete?
hash=a6aa75587e5c59c32d347da438505fc3&report_id=1234567
create
Creates new bill for the user. Required subuser rights: payment_create .
parameters
example
https://api.navixy.com/v2/fsm/bill/create?
hash=22eac1c27af4be7b9d04da2ce1af111b&payer=John Doe&sum=500
response
{
"success": true,
"value": 6421 // created bill id
}
errors
• 222 – Plugin not found (when plugin 29 not available for user)
list
Shows list of bills with their parameters in array. Required subuser rights:
payment_create
structure:
https://api.navixy.com/v2/fsm/bill/list?
hash=your_hash&limit=number_of_bills&offset=start_from
parameters
Skip to content
example
https://api.navixy.com/v2/fsm/bill/list?
hash=22eac1c27af4be7b9d04da2ce1af111b&limit=9500&offset=0
response
{
"success": true,
"count": 7, // total number of bills
"bills": [${bill}, ...]
}
where bill is
{
"order_id": 63602, // unique id
"created": "2012-03-05 11:55:03", // creation date/time
"sum": 150.0, // bill sum in rubbles
"status": "created", // bill order status
"positions": ["The subscription fee for the services of Gdemoi
Account W3"], // list of position names.
// usually contains one
element for bill
"link": "http://bill.b2field.com/xK1QEYK" // url to order
}
If bill created using /bill/create call then positions will contains exactly one element.
• settled
• canceled
Note for Standalone version: Base part of link may be changed by billing.orders.baseUrl
config option.
errors
Skip to content
• 222 – Plugin not found (when plugin 29 not available for user)
list
response
{
"success": true,
"list": [<payment_system_settings>, ...]
}
{
"type": "rbkmoney", // payment system type
"url": "https:_rbkmoney.com/acceptpurchase.aspx", // URL to
send payment info,
"account": <string>, // (optional) dealer account in payment
system (eshopId for RBK)
"currency": "EUR", // 3-letter ISO 4217 currency code
"payment_code": "B2Field Demo", // (optional) code for payments
"subscription_code": "4671292", // (string) subscription code.
same as "payment_code" for 2Checkout (formerly Avangate) but for
subscriptions
"methods": [<string>, ...] // (optional) list of available
payment methods (may be empty)
// for type == "ios_inapp" only:
"prices": {
"Loccate_default_pay_1": 0.99,
"Loccate_default_pay_5": 4.99,
"Loccate_default_pay_10": 9.99,
"Loccate_default_pay_20": 19.99
}
}
errors
estimate/get
{
"success": true,
"value": 400.0 // payment amount, rounded up to hundreds for
rubles or to tens for other currencies
}
mobile/pay
parameters
phone 10-digit phone number without country code (e.g. 6156680000) String
response
{
"success": true
}
errors
• 13 – Operation not permitted. (if this payment system is not enabled for user's PaaS
platform)
• 201 – Not found in database. (if payment system was not configured properly)
• 215 – External service error (if QIWI payment gateway returned an error)
Payment subscriptions
/subscription/avangate/
cancel
parameters
response
{
"success": true
}
errors
list
parameters
no parameters
response
{
"success": true,
"list": [
{
Skip to content
"reference": "5EAD4B0B2F" // pass it to /subscription/
avangate/cancel
"code": "4679109" // 2Checkout (formerly Avangate)
product code
"quantity": 123 // count
"expiration_date": "2016-03-10 13:32:11" // next renew
date/time
},
...
]
}
errors
list
parameters
response
{
"success": true,
"list": [
{
"description": , // transaction description, e.g.
"Recharge bonus balance during tracker registration"
"type": , // type, e.g. "bonus_charge"
"subtype": , // subtype, e.g. "register"
"timestamp": , // date/time at which transaction was
created, e.g. "2013-08-02 08:16:40"
"user_id": , // user Id, e.g. 12203
"dealer_id": , // dealer Id, e.g. 5001
"tracker_id": , // tracker id, e.g., 3036, or 0 if
transaction is not associated with tracker
"amount": , // amount of money in transaction, can
be negative. e.g. -10.0000 means 10 money units were removed from
user`s balance
"new_balance": , // user`s money balance after
transaction, e.g. 800.0000
"old_balance": , // user`s money balance before
transaction, e.g. 810.0000
"bonus_amount": , // amount of bonus used in transaction,
can be negative. e.g. 10.0000 means 10 bonuses units were added to
user`s bonus balance
"new_bonus": , // user`s bonus balance after
transaction, e.g. 10.0000
"old_bonus": // user`s bonus balance before
transaction, e.g. 0.0000
}, ...
]
}
errors
Skip to content
• 211 – Requested time span is too big (more than maxReportTimeSpan config
option)
{
"id": 10, // (int) unique id
"name": "Business", // (string) tariff description
"group_id": 2, // (int) group of tariffs. user can change the
tariff only on the tariff in the same group.
"active": true, // (boolean). user can change the tariff only
on the active tariff.
"type": "monthly", // (string). tariff type. one of:
"monthly", "everyday", "activeday"
"price": 13.0, // (double). price per month for "monthly" and
"everyday" tariff or price per "active" day for "activeday" tariff
"early_change_price": 23.0, // (double) price of change tariff
from current to other
// with the last change in less than 30 days
(**tariff.freeze.period** config option).
// When not passed or "null" user cannot change tariff
frequently.
"device_limit": 1000, // (int) maximum number of devices per
account
"has_reports" : true // (boolean) true if reports are allowed,
false otherwise
"paas_free": false, // (boolean) true if this tariff is free
for PaaS owner, false otherwise
"store_period": "12m", // data storage period, e.g. "2h" (2
hours), "3d" (3 days), "5m" (5 months), "1y" (one year)
"features": [
"map_layers"
],
"map_filter": {
"exclusion": true,
"values": []
}
}
list
response
{
"success": true,
"list": [${tariff}, ...] // list of JSON objects
}
2. tracker's tariff last changed more than tariff.freeze.period (config option. default
30 days) ago.
5. t2.active = 1, i.e. new tariff is active (tariff's option "Allow users to switch to this
tariff independently" in panel is set on)
6. t1.grouping = t2.grouping, i.e. user can change tariff only within one group of tariffs
errors
• 201 – Not found in database (if user doesn't have trackers with given tracker_id)
• 237 – Invalid tariff (if there are no tariff with tracker.tariff_id and belongs to user's
effective dealer)
change
response
{ "success": true }
errors
Skip to content
• 221 (Device limit exceeded) – when new tariff device limit is less then count of
trackers in cabinet.
• 238 (Changing tariff is not allowed) – user can't switch tracker to that tariff.
• 240 (Not allowed to change tariff too frequently) – tariff last changed less or equal
to 30 days (tariff.freeze.period config option).
list
List tariffs on which user can switch passed tracker (even when tariff last changed less
or equal than tariff.freeze.period time ago).
parameters
• tracker_id
response
{
"success": true,
"list": [${tariff}, ...],
"days_to_next_change": ${int} // days to next free change, or 0
if free change available.
}
nothing
example
https://api.navixy.com/v2/fsm/base/nothing?
hash=22eac1c27af4be7b9d04da2ce1af111b
response
{ "success": true }
send_email
Sends email from the platform to any email address with specified title and text. Needs
ROOT access level.
structure:
https://api.navixy.com/v2/fsm/base/send_email?
hash=your_hash&from=sender_mail&to=recipient_mail&title=text_title&message=text_message&ser
parameters
example
https://api.navixy.com/v2/fsm/base/send_email?
hash=22eac1c27af4be7b9d04da2ce1af111b&from=b2field@mail.com&to=user@mail.com&title=text+of+
response
{ "success": true }
/data/spreadsheet/parse
Parse spreadsheet file (.xlsx, .xls, .csv) and store it in internal storage.
{
"file_id": <string, unique file id>,
"header": <optional, array of string>,
"preview":<array of array of string, first N rows of file>
}
parameters
If parse_header is set to true, first row of the uploaded file will be treat as header
corresponding to given header_map .
response
{
"file_id": <string, unique file id>,
"header": <optional, array of string>,
"preview": <array of array of string, first N rows of file>
}
errors
get_ui_config
structure:
https://api.navixy.com/v2/fsm/dealer/get_ui_config?
domain=your_domain
parameters
example
https://api.navixy.com/v2/fsm/dealer/get_ui_config?
domain=b2field.com
response
{
"success": true,
"dealer": {
"id": 5001, // int. dealer id
"ui_domain": "demo.b2field.com", // Dealer's UI domain
"company_url": "b2field.com" // Dealer's promo site URL
// e.g. "http://
www.b2field.com" or "demo.b2field.com"
},
"settings": { //may be null if dealer has not set any
custom settings
"domain" : "demo.navixy.com", // same as dealer.ui_domain
"service_title": "Navixy Demo", // Title of the service
"locale": "at_AT", // default locale of the
dealer
"demo_login": "demo", // dealer's login for demo
user
// (or empty string if no
Skip to content
demo user available)
"demo_password": "demo", // dealer's password for
demo user
// (or empty string if no
demo user available)
"maps": ["roadmap", "osm"], // list of available
maps,
// e.g. ["roadmap", "cdcom", "osm", "wikimapia",
"yandexpublic", "hybrid", "satellite"]
"default_map": { //default map settings
"type": "roadmap", // default map type
"location": { //default map center location
"lat": 57.0, // latitude
"lng": 61.0 // longitude
},
"zoom": 10 // default map zoom level
},
"currency": "EUR", // dealer's currency ISO
4217 code
"payment_link": "http://site.de/pay.php", // PaaS-
dependent link that can be used
// to refill user's
account. Can be null or empty.
"promo_url": "http://site.de/about/", //
customizable "About company" url
"google_client_id": "clientID", // client id which which
must be used to work with google API or null
"favicon": "paas/5001/custom.ico", // path or url to
dealer's interface favicon
"logo": "paas/5001/logo.png", // path or url to dealer's
logotype
"app_logo": "paas/5001/app_logo.png", //nullable,
path or url to dealer's mobile app logotype,
"login_wallpaper": "paas/5001/login.png", // path or url
to dealer's interface login wallpaper
"desktop_wallpaper": "http://test.com/test.jpg", // path
to dealer's interface wallpaper or null
"monitoring_logo": "http://test.com/test.jpg", // path to
dealer's interface monitoring logo or null
"login_footer": "All rights reserved.", // footer which
will be included in login page.
"allow_registration": true, // if true then
registration is available for dealer's users
// all html special chars
escaped using HTML entities.
"show_mobile_apps" : true, // if true then mobile
applications are available for dealer's users
"show_call_notifications" : true, // if true then
call notifications are available for dealer's users
"default_user_settings": {
"geocoder": "google", // default geocoder
"route_provider": "progorod", // default router
"measurement_system": "metric", // measurement system
"translit": false
},
"display_model_features_link" : true, // when true show in
model info link to squaregps.com (UI option)
Skip to content
"color_theme": "aqua", // (string) color theme
code or empty string (for default theme)
"app_color_theme": "blue_1", // (string. 128 chars max)
mobile app color theme code or empty string (for default theme)
"privacy_policy_link": "http://privacy-policy-url",
"tos": "Terms Of Service text",
"enable_trackers": true, // if true, GPS monitoring
interface is available for dealer's users
"enable_cameras": false, // if true, camera
monitoring interface is available for dealer's users
"tracker_model_filter": { // a filter which
describes tracker models available for registration
"exclusion": true, // in this example all
models available
"values": []
},
"internal": { // additional options
"light_registration": true, // use "very
simple" registration with demo tracker
"demo_tracker_source_id": 14, // id of tracker
created on 'light_registration'
"demo_tracker_label": "Demo tracker", // label of of
tracker created on 'light_registration'
...
},
"no_register_commands": false // if true then do not send
commands to devices on activation
},
"demo_ends": "2014-01-01", // a date when demo for
this PaaS ends.
// Is null when PaaS is
not on demo tariff
"premium_gis": true, // true, if dealer has
Premium GIS package
"features": ["branding_web"] // set of the allowed
features for dealer (all list see below in "Dealer features")
}
Dealer features
name description
branding_web allow to use custom logos, color theme, domain and favicon in UI
for web version
branding_mobile allow to use custom icon, logo, color theme in the mobile
applications
errors
• 12 – Dealer not found (if corresponding PaaS was not found in database)
• 201 – Not found in database (if there is no Ui settings data for corresponding PaaS)
Feedback
<feedback> = {
"text": <feedback text, string, may not be null>,
"useragent": <optional, string>,
"platform": <optional, string>,
"screenshots": <optional, array of strings, base64-encoded
data:url image, example: data:image/jpeg;base64,[encoded image]>,
"log": <optional, log file>
}
send_email
parameters
• feedback
• type – optional
Send email with feedback message on feedback.toEmail Where type is one of strings:
support_request (default), feature_request and review .
Screenshot and log will be added to email as attachments.
response
{ "success": true }
File
stats/read
response
{
"success": true,
"value": {
"file_count": 24, // count of all updloaded files
"total_size": 40192953 // total files size in bytes
"quota": 104857600 // space available to the user in
bytes
}
}
Notification
list
response
{
"success": true,
"list": [<notification>, ...]
}
where
<notification> =
{
"id": <int>,
"message": <string>,
"show_till": <date/time> // date until notification should
be showed, e.g. "2014-08-03 17:27:28"
}
Timezone
list
Information about all supported timezones for the specified locale. Does not require
user authorization.
response
{
"success": true,
"list": [
{
"zone_id": <string>, // timezone ID, which is used
throughout the API, e.g. "Africa/Dar_es_Salaam"
"description": <string>, // Localized description of
the timezone, e.g. "Ekaterinburg"
"base_offset": <double>, // base timezone offset in
hours, e.g. 4 for Moscow. May be negative or fractional!
"dst_offset": <int>, // DST offset in hours (0 if
no DST rules for this timezone).
"country_code": <string>, // ISO country code for
timezone, e.g. "RU",
"alt_ids": [<string>, <string>] //list of strings,
optional, alternative timezone IDs
},
...
]
}
errors
create
parameters
• size – integer
response
{
"success": true,
"value": {
"file_id": 111,
"url": "http://bla.org/bla",
"expires": "2020-02-03 03:04:00",
"file_field_name": "file1",
"fields": {
"token": "a43f43ed4340b86c808ac"
}
}
}
errors
• 271 - File size is larger than the maximum allowed (by default 16 MB).
Entity describes a class of objects for which representation and editable fields can be
customized. For example, you can add your own custom fields to places entity or
rearrange existing fields.
entity is:
<entity> = {
"id": 123, //identifier
"type": "place", //currently, only "place" is supported
"settings": {
"layout": { //describes layout of fields for entity.
"sections": [ //each section can contain one or
more fields. At least one section must exist in layout.
{
"label": "Section label",
"field_order": [ //built-in fields and ids of
custom fields (as strings)
"label",
"location",
"131212",
"tags",
"description"
]
}
]
}
}
}
Entity Types: * place - a place object, the same that is available through place API
Builtin fields:
• label
• location
• tags
• description
• task - a task object, the same that is available through task API
Builtin fields:
* employee
* status
* label
* location
* period
* status_change_date
Skip to content
* arrival_date
* tags
* stay_duration
* description
* external_id
* form
list
parameters
none
response
{
"success": true,
"list": [ <entity>, ... ]
}
errors
read
parameters
id ID of an entity int
Exactly one of these parameters must be specified. They can't be both null or both
non-null.
response
{
"success": true,
"entity": <entity>,
"fields": [ //fields associated with this entity
Skip to content
<field>,
...
]
}
errors
update(entity)
parameters
errors
response
{
"success": true
}
Fields actions
Field allows to add custom information to a customizable entity. Each field belongs to
one entity.
field is:
<field> = {
"id": 131312, //identifier, null when new object
"label": "Additional info",
"type": "text", //type of field, see below
"required": false, //whether field is required to be filled or
not
"description": "Info about place", //Additional info about the
field, max 250 characters
"params": { ... } //type-specific. If no specific params, this
field should be omitted
}
field types:
• bigtext - bigger text field, up to 20000 unicode symbols with reduced search and
sorting capabilities
• email - field for storing email, validated to contain valid email address
• phone - field for storing phone number, validated to contain valid phone number
Special params:
{
"responsible": true //entities with this set to "true" can be
shown to the employee in the mobile app.
//Only one employee field can have this value
set to "true"
}
If there's an employee assigned to a Mobile Tracker App (Android / iOS), and a place
has a custom field of type "responsible employee", such place will be available in mobile
app to view. Thus, field employee can view all places assigned to him to visit them, etc.
Special params:
{
"allowed_extensions": ["docx", "pdf"]
}
read(entity_id)
Get a set of custom fields associated with the specified entity. Note that you must know
entity id, which can be obtained from entity/list.
parameters
response
{
Skip to"success":
content true,
"list": [ <field>, ... ]
}
errors
Fields passed with id equal to null will be created. If field already exists, its type
must be equal to type of already stored field (i. e. you cannot change type of a field).
All fields associated with the same entity must have different label s.
Passing fields with id from non-existent fields or fields bound to another entity will
result in an error.
WARNING If delete_missing is true , all existing fields which are missing from the
fields list will be permanently deleted! Otherwise they are unaffected.
parameters
errors
{
"success": true,
"list": [ <field>, ... ]
}
Search conditions are used to search and filter list of certain entities by built-in and/or
custom fields.
Example:
<search_conditions> = [
{"type":"and", "conditions":[
{"type":"or", "conditions":[
{
"type": "eq",
"field":"18",
"value": 1111
},
{
"type": "contains",
"field":"27",
"value": "qqq"
}
]
},
{
"type": "contains",
"field":"label",
"value": "who"
}
]
}
]
Conditions are represented by an array, each condition during search is evaluated, and
the result is either true or false . Thus, boolean operations such as AND or OR can be
applied to them. All conditions in a top-level array are joined using AND operator.
Condition types
AND
<and_condition> = {
"type":"and",
"conditions":[
<list of other conditions here...>
]
}
Skip to content
Evaluates all specified conditions and joins them using AND boolean operator.
OR
<or_condition> = {
"type":"or",
"conditions":[
<list of other conditions here...>
]
}
Evaluates all specified conditions and joins them using OR boolean operator.
NUMBER EQUALS
<eq_condition> = {
"type": "eq",
"field":"18", //built-in field or field id
"value": 1111 //number value to which field is matched
against. Can be decimal.
//Must be between -2^63 and 2^63-1. No more
than 6 fraction digits
}
Checks if specified field is equal to provided number value. Works for text fields too
(e.q. "111" is considered equal to 111). For linked entity fields, it matches linked entity
id to number value.
CONTAINS STRING
<contains_condition> = {
"type": "contains",
"field":"label", //built-in field or field id
"value": "who" //string value to which field is matched
against.
//Cannot be null or empty, max length is 760
}
Checks if specified field contains substring equal to provided value. Works for number
fields too, e.g. (123123 contains "123"). For linked entity fields, it matches value against
linked entity label or other similar field (first name, last name, etc.)
{
"id": 1,
"type": "tracker",
"is_read": false,
"message": "Alarm",
"time": "2020-01-01 00:00:00",
"event": "offline", // type of history event extension
"tracker_id": 2, // column object_id
"rule_id": 3, // column event_id
"track_id": 4,
"location":{
"lat": 50.0,
"lng": 60.0,
"precision": 50
},
"address": "address", // string. address of location or
"" (empty string)
"extra": {
"task_id": null , //related task identifier
"parent_task_id": null, //related parent task identifier
(for task checkpoint related history entries)
"counter_id": null, //related counter identifier
"service_task_id": null, //related service task id
"checkin_id": null, //related check-in marker
"place_ids": null, //related place identifiers,
"last_known_location": false, //true if location may be
outdated,
"tracker_label": "Tracker label",//tracker label
"emergency": false //true for events with a same flag,
optional
}
}
read
parameters
{
"success": true,
"value": ${history_entry}
}
errors
• 201 – Not found in database (when there are no history entries with that id)
mark_read
parameters
response
{ "success": true }
errors
• 201 – Not found in database (when there are no history entries with that id)
mark_read_all
response
{ "success": true }
list
List less then or equal to limit of tracker events filtered by event types (events) between
from date/time and to date/time sorted by time field.
parameters
• ascending – boolean (optional, default: true). Sort ascending by time when it is true
and descending when false.
If events (event types) not passed then list all event types.
Default and max limit is 1000 by default. (Note for StandAlone: this value configured by
maxHistoryLimit config option).
example
https://api.navixy.com/v2/fsm/history/tracker/list?
hash=user_hash&trackers=[tracker_id]&from=2018-02-19
10:29:00&to=2018-02-19 11:30:00&events=["event_type"]
response
{
"success": true,
"list": [ ${history_entry}, ... ], // list of zero or more
JSON objects
"limit_exceeded": false // boolean. false when listed all
history entries satisfied to conditions
// and true otherwise
}
• 217 – List contains nonexistent entities – if one of the specified trackers does not
exist or is blocked.
History type
list
parameters
response
{
"success": true,
"list": [<history_type>, ...]
}
where history_type is
{
"type": "alarmcontrol", // history type, e.g.
"alarmcontrol"
"description": "Car alarm" // localized description, e.g. "Car
alarm"
}
list
List less than or equal to limit of the latest user's unread history entries.
parameters
response
{
"success": true,
"list": [${history_entry}, ... ] //list of zero or more JSON
objects
}
errors
count
parameters
• from – optional
• type – optional
response
{
Skip to"success":
content true,
"count": 1
}
Plugins are special software modules which modify the behavior of various API calls.
{
"id": <plugin id, e.g. 1>, //int
"type": <plugin type, e.g. "tracker_register">, //String
"ui_module": <plugin ui module name, e.g.
"Registration.appPlugins.BundledSim">, //String
"module": <plugin module name, e.g.
"com.navixy.plugin.tracker.register.bundled_sim">, //String
"filter": { //a model filter which describes to which device
models this plugin is applicable
"exclusion": true, //if true, "models" lists models NOT
supported by this plugin, if false, "models" contains all
supported models
"values": <list of the regexes for models which are (not)
supported by this plugin, e.g. ["navixymobile",
"mobile_unknown.*"]> //string[]
},
"parameters" : { ... } //Plugin-specific parameters as JSON
object. This field is omitted if it's null (and it is null most of
the time)
}
Example
{
"id": 4,
"type": "tracker_report",
"module": "com.navixy.plugin.tracker.report.trip",
"ui_module": "Trip",
"filter": {
"exclusion": true,
"values": []
}
}
list
Get all plugins available to the user. List of available plugins may vary from user to user
depending on platform settings and purchased features. Only these plugins can be used
to register trackers, generate reports, etc.
response
Skip to content
{
"success": true,
"list": [ <plugin>, … ]
}
errors
Standalone-specific:
If no plugins enabled for user and his dealer then available plugins enabled by default
(config options plugin.tracker.register.defaultIds and plugin.tracker.report.defaultIds).
Trips report
parameters
Default plugin_id: 4.
Plugin-specific parameters:
parameters
Default plugin_id: 6.
Plugin-specific parameters:
parameters
Plugin-specific parameters:
shifts List of shifts with names, start and end time. e.g. array of
[{"name":"Shift1","start_time":"00:00","end_time":"23:59"}] objects
filter If true short trips will not coincide (shorter than 300m/have less than boolean
4 points total and if the device circles around one point (e.g., star
pattern from GPS drifting)).
show_coordinates Every address will contain longitude and latitude if true . boolean
name description type
Skip to content
• shifts is:
{
"shifts": [{
"name":"Shift1",
"start_time":"00:00",
"end_time":"23:59"
}]
}
parameters
Default plugin_id: 8.
Plugin-specific parameters:
parameters
Plugin-specific parameters:
parameters
Plugin-specific parameters:
parameters
Plugin-specific parameters:
parameters
Plugin-specific parameters:
parameters
Plugin-specific parameters:
name description type
Skip to content
parameters
Plugin-specific parameters:
parameters
default plugin_id: 7.
Plugin-specific parameters:
show_detailed boolean
name description type
Skip to content
If true will contain detailed engine
hours tab.
parameters
Plugin-specific parameters:
parameters
Plugin-specific parameters:
detailed_by_dates boolean
name description type
Skip to content
If true , a table with statistics for every
single day in selected date range will
be added to the report.
parameters
Plugin-specific parameters:
• sensors is:
{
Skip"sensors":[{
to content
"tracker_id":37714,
"sensor_id":57968
}]
}
Speed violation
parameters
Plugin-specific parameters:
parameters
Plugin-specific parameters:
name description type
Skip to content
parameters
Plugin-specific parameters:
parameters
default plugin_id: 9.
Plugin-specific parameters:
• sensors is:
{
"sensors":[{
"tracker_id":37714,
"sensor_id":57968
}]
}
parameters
min_working_period_duration int
name description type
Skip to content
A minimum time in seconds the
equipment works to determine
activity. Min = 1.
• sensors is:
{
"sensors":[{
"tracker_id":37714,
"sensor_id":57968
}]
}
Tasks report
parameters
parameters
parameters
Check-in report
parameters
default plugin_id: 80
Plugin-specific parameters:
name description type
Skip to content
parameters
Plugin-specific parameters:
Trips by state
parameters
Plugin-specific parameters:
parameters
Plugin-specific parameters:
{
"event_types":
["auto_geofence_in","auto_geofence_out","door_alarm","forward_collision_warning","gps_lost"
}
parameters
SMS-locations report
parameters
Plugin-specific parameters:
Eco-driving report
parameters
Plugin-specific parameters:
• harsh_driving_penalties is:
{
"harsh_driving_penalties": {
"harshAcceleration":5,
"harshBraking":5,
"harshTurn":5,
"harshAccelerationNTurn":12,
"harshBrakingNTurn":12,
"harshQuickLaneChange":12
}
}
• speeding_penalties is:
{
"speeding_penalties": {
"10":2,
"20":10,
"30":25,
"50":75}
}
"10", "20", "30", "50" - the number of penalty points assigned for speeding by 10, 20, 30,
Skip50
and to km/h.
content
parameters
default plugin_id: 84
plugin-specific parameters:
zone_ids IDs of user zones, required, min size 1, max list of ints
size 30
schedule_entry object:
{
"id": 1,
"enabled": true,
"parameters": {
"period": "1m",
"schedule": {
"type": "weekdays",
"weekdays": [1, 2, 3, 4, 5]
},
"report": {
"trackers": [1],
"title": "Title",
"time_filter": {
"from": "00:00:00",
"to": "23:59:59",
"weekdays": [1, 2, 3, 4, 5, 6, 7]
},
"geocoder": "yandex",
"plugin": {
"plugin_id": 4,
"show_idle_duration": false
}
},
"emails": ["email@example.ru"],
"email_format": "pdf",
"email_zip": false,
"sending_time": "12:00:00"
},
"fire_time": "2014-09-05 00:00:00",
"last_result": {
"success": true,
"id": 1
}
}
create
parameters
example
cURL
response
{
"success": true,
"id": 111
}
• 222 - Plugin not found (if specified report plugin not found).
delete
parameters
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/report/schedule/delete?
hash=a6aa75587e5c59c32d347da438505fc3&schedule_id=1234567
response
{
"success": true
}
errors
• 201 - Not found in the database (if there is no schedule with specified id).
list
cURL
HTTP GET
https://api.navixy.com/v2/fsm/report/schedule/list?
hash=a6aa75587e5c59c32d347da438505fc3
response
{
"success": true,
"list": [{
"id": 1,
"enabled": true,
"parameters": {
"period": "1m",
"schedule": {
"type": "weekdays",
"weekdays": [1, 2, 3, 4, 5]
},
"report": {
"trackers": [1],
"title": "Title",
"time_filter": {
"from": "00:00:00",
"to": "23:59:59",
"weekdays": [1, 2, 3, 4, 5, 6, 7]
},
"geocoder": "yandex",
"plugin": {
"plugin_id": 4,
"show_idle_duration": false
}
},
"emails": ["email@example.ru"],
"email_format": "pdf",
"email_zip": false,
"sending_time": "12:00:00"
},
"fire_time": "2014-09-05 00:00:00",
"last_result": {
"success": true,
"id": 1
}
}]
}
errors
Skip to content
General types only.
update
parameters
example
cURL
response
{
"success": true
}
errors
• 217 - List contains nonexistent entities (if one or more of tracker ids belong to
nonexistent tracker (or to a tracker belonging to different user)).
• 222 - Plugin not found (if specified report plugin not found).
• 236 - Feature unavailable due to tariff restrictions (if device's tariff does not allow
Skipusage
to content
of reports).
delete
parameters
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/report/tracker/delete?
hash=a6aa75587e5c59c32d347da438505fc3&report_id=1234567
response
{
"success": true
}
errors
download
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/report/tracker/download?
hash=a6aa75587e5c59c32d347da438505fc3&report_id=1234567&format=pdf
response
errors
• 204 - Entity not found (if report with the specified id not found).
• 229 - Requested data is not ready yet (if report exists, but its generation is still in
progress).
generate
Part of parameters are plugin-specific. See "Tracker report plugins" section. Common
parameters are:
example
cURL
response
{
"success": true,
"id": 222
}
• id - int. An id of the report queued for generation. Can be used to request report
generation status and to retrieve generated report.
errors
• 15 (Too many requests / rate limit exceeded) - the number of reports created by one
user in parallel limited.
• 211 (Requested time span is too big) - interval from from to to is bigger then max
allowed time span (see response).
{
"success": false,
"status": {
"code": 211,
"description": "Requested time span is too big"
},
"max_time_span": "P90D"
Skip to content
}
• 217 (List contains nonexistent entities) - when one or more of tracker ids belong to
nonexistent tracker (or to a tracker belonging to different user).
• 222 (Plugin not found) - when specified report plugin not found.
• 236 (Feature unavailable due to tariff restrictions) - when one of the trackers has
tariff with disabled reports - ("has_reports" is false).
list
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/report/tracker/list?
hash=a6aa75587e5c59c32d347da438505fc3
response
{
"success": true,"list": [
{
"created": "2020-10-08 21:59:30",
"time_filter": {
"from":"00:00:00",
"to":"23:59:59",
"weekdays":[1,2,3,4,5,6,7]},
"title": "Trip report",
"id": 5601797
"parameters": {
"geocoder": "google",
"trackers": [669673],
"plugins": [{
"plugin_id": 4,
"filter": true,
"hide_empty_tabs": true,
"show_coordinates": false,
"split": true,
"include_summary_sheet_only": false,
"show_seconds": false,
Skip to content
"group_by_driver": false,
"show_idle_duration": false
}],
"locale_info": {
"locale": "ru_RU",
"time_zone": "Asia/Yekaterinburg",
"measurement_system": "metric"
}
},
"percent": 100,
"type": "user",
"from": "2020-10-05 00:00:00",
"to": "2020-10-06 23:59:59"
}
]}
• time_filter - object.
• plugins - array of objects. List of parameters for all plugins which were used
to generate report.
errors
• No specific errors.
retrieve
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/report/tracker/retrieve?
hash=a6aa75587e5c59c32d347da438505fc3&report_id=1234567
response
Skip to content
Example
Skip to content
{
"success": true,
"report": {
"created": "2020-10-06 16:01:46",
"time_filter": {
"from": "00:00:00",
"to": "23:59:59",
"weekdays": [
1,
2,
3,
4,
5,
6,
7
]
},
"title": "Trip report",
"id": 5602232,
"sheets": [
{
"header": "Samantha (Ford Focus)",
"sections": [
{
"data": [
{
"rows": [
{
"to": {
"v": "02:39 - Serpukhov,
Moscow Oblast, Russia, 142253",
"raw": 1601941188000.0,
"type": "value",
"location": {
"lat": 54.9218516,
"lng": 37.335545
}
},
"from": {
"v": "00:47 - Selyatino, Naro-
Fominskii gor. okrug, Moscow Oblast, Russia, 143370",
"raw": 1601934439000.0,
"type": "value",
"location": {
"lat": 55.5311083,
"lng": 36.96743
}
},
"time": {
"v": "01:52",
"raw": 6749.0,
"type": "value"
},
"length": {
"v": "106.29",
"raw": 106.29,
"type": "value"
},
"avg_speed": {
Skip to content
"v": "57",
"raw": 57.0,
"type": "value"
},
"max_speed": {
"v": "94",
"raw": 94.0,
"type": "value"
}
},
{
"to": {
"v": "05:10 - Selyatino, Naro-
Fominskii gor. okrug, Moscow Oblast, Russia, 143370",
"raw": 1601950218000.0,
"type": "value",
"location": {
"lat": 55.5308216,
"lng": 36.967315
}
},
"from": {
"v": "03:11 - Serpukhov,
Moscow Oblast, Russia, 142253",
"raw": 1601943083000.0,
"type": "value",
"location": {
"lat": 54.9218116,
"lng": 37.3354833
}
},
"time": {
"v": "01:58",
"raw": 7135.0,
"type": "value"
},
"length": {
"v": "106.97",
"raw": 106.97,
"type": "value"
},
"avg_speed": {
"v": "54",
"raw": 54.0,
"type": "value"
},
"max_speed": {
"v": "94",
"raw": 94.0,
"type": "value"
}
},
{
"to": {
"v": "07:54 - Khievskii
pereulok, 10, TNKh, Rassudovo, Troitsky Administrative Okrug,
Moscow, Russia, 143340",
"raw": 1601960075000.0,
"type": "value",
"location": {
"lat": 55.4666366,
Skip to content
"lng": 36.9216966
}
},
"from": {
"v": "07:38 - Selyatino, Naro-
Fominskii gor. okrug, Moscow Oblast, Russia, 143370",
"raw": 1601959081000.0,
"type": "value",
"location": {
"lat": 55.53122,
"lng": 36.9672916
}
},
"time": {
"v": "00:16",
"raw": 994.0,
"type": "value"
},
"length": {
"v": "10.03",
"raw": 10.03,
"type": "value"
},
"avg_speed": {
"v": "36",
"raw": 36.0,
"type": "value"
},
"max_speed": {
"v": "85",
"raw": 85.0,
"type": "value"
}
},
{
"to": {
"v": "09:36 - Serpukhov,
Moscow Oblast, Russia, 142253",
"raw": 1601966165000.0,
"type": "value",
"location": {
"lat": 54.926835,
"lng": 37.3341066
}
},
"from": {
"v": "07:58 - Khievskii
pereulok, 10, TNKh, Rassudovo, Troitsky Administrative Okrug,
Moscow, Russia, 143340",
"raw": 1601960315000.0,
"type": "value",
"location": {
"lat": 55.46661,
"lng": 36.9216516
}
},
"time": {
"v": "01:37",
"raw": 5850.0,
"type": "value"
},
Skip to content
"length": {
"v": "95.31",
"raw": 95.31,
"type": "value"
},
"avg_speed": {
"v": "59",
"raw": 59.0,
"type": "value"
},
"max_speed": {
"v": "91",
"raw": 91.0,
"type": "value"
}
},
{
"to": {
"v": "09:53 - Serpukhov,
Moscow Oblast, Russia, 142253",
"raw": 1601967190000.0,
"type": "value",
"location": {
"lat": 54.921935,
"lng": 37.33551
}
},
"from": {
"v": "09:43 - Serpukhov,
Moscow Oblast, Russia, 142253",
"raw": 1601966585000.0,
"type": "value",
"location": {
"lat": 54.9264033,
"lng": 37.3336633
}
},
"time": {
"v": "00:10",
"raw": 605.0,
"type": "value"
},
"length": {
"v": "0.95",
"raw": 0.95,
"type": "value"
},
"avg_speed": {
"v": "6",
"raw": 6.0,
"type": "value"
},
"max_speed": {
"v": "13",
"raw": 13.0,
"type": "value"
}
},
{
"to": {
"v": "12:36 - Selyatino, Naro-
Skip to content
Fominskii gor. okrug, Moscow Oblast, Russia, 143370",
"raw": 1601977017000.0,
"type": "value",
"location": {
"lat": 55.5309666,
"lng": 36.9674183
}
},
"from": {
"v": "10:27 - Serpukhov,
Moscow Oblast, Russia, 142253",
"raw": 1601969226000.0,
"type": "value",
"location": {
"lat": 54.9219933,
"lng": 37.335495
}
},
"time": {
"v": "02:09",
"raw": 7791.0,
"type": "value"
},
"length": {
"v": "108.48",
"raw": 108.48,
"type": "value"
},
"avg_speed": {
"v": "50",
"raw": 50.0,
"type": "value"
},
"max_speed": {
"v": "89",
"raw": 89.0,
"type": "value"
}
},
{
"to": {
"v": "16:01 - KhP \"Lesnoe
ozero\", Dernopol'e, gor. okrug Serpukhov, Moscow Oblast, Russia,
142279",
"raw": 1601989300000.0,
"type": "value",
"location": {
"lat": 54.9875133,
"lng": 37.3093183
}
},
"from": {
"v": "13:34 - Selyatino, Naro-
Fominskii gor. okrug, Moscow Oblast, Russia, 143370",
"raw": 1601980444000.0,
"type": "value",
"location": {
"lat": 55.5309966,
"lng": 36.96738
}
},
Skip to content
"time": {
"v": "02:27",
"raw": 8856.0,
"type": "value"
},
"length": {
"v": "95.79",
"raw": 95.79,
"type": "value"
},
"avg_speed": {
"v": "39",
"raw": 39.0,
"type": "value"
},
"max_speed": {
"v": "88",
"raw": 88.0,
"type": "value"
}
}
],
"total": {
"text": "In total:",
"time": {
"v": "10:33",
"raw": 37980.0,
"type": "value"
},
"length": {
"v": "523.8",
"raw": 523.8,
"type": "value"
},
"avg_speed": {
"v": "50",
"raw": 50.0,
"type": "value"
},
"max_speed": {
"v": "94",
"raw": 94.0,
"type": "value"
}
},
"header": "Oct 6, 2020 (Tue) : 7"
}
],
"type": "table",
"header": "Trips",
"columns": [
{
"align": "left",
"field": "from",
"title": "Movement start",
"width": 4,
"weight": 3,
"highlight_min_max": false
},
{
"align": "left",
Skip to content
"field": "to",
"title": "Movement end",
"width": 4,
"weight": 3,
"highlight_min_max": false
},
{
"align": "right",
"field": "length",
"title": "Total trips length,\nkm",
"width": 1,
"weight": 0,
"highlight_min_max": false
},
{
"align": "right",
"field": "time",
"title": "Travel time",
"width": 1,
"weight": 0,
"highlight_min_max": false
},
{
"align": "right",
"field": "avg_speed",
"title": "Average speed,\nkm/h",
"width": 1,
"weight": 0,
"highlight_min_max": false
},
{
"align": "right",
"field": "max_speed",
"title": "Max. speed,\nkm/h",
"width": 1,
"weight": 0,
"highlight_min_max": false
}
],
"column_groups": []
},
{
"rows": [
{
"v": "7",
"raw": 7.0,
"name": "Trips",
"highlight": false
},
{
"v": "523.8",
"raw": 523.8,
"name": "Total trips length, km",
"highlight": false
},
{
"v": "10:33",
"raw": 633.0,
"name": "Travel time",
"highlight": false
},
Skip to content
{
"v": "50",
"raw": 50.0,
"name": "Average speed, km/h",
"highlight": false
},
{
"v": "94",
"raw": 94.0,
"name": "Max. speed, km/h",
"highlight": false
},
{
"v": "515855",
"raw": 515855.0,
"name": "Odometer value *, km",
"highlight": false
}
],
"type": "map_table",
"header": "Summary"
},
{
"text": "Odometer value at the end of the
selected period.",
"type": "text",
"style": "small_print"
}
],
"entity_ids": [
311852
],
"additional_field": ""
}
],
"from": "2020-10-06 00:00:00",
"to": "2020-10-06 23:59:59"
}
• report - object. Body of the generated report. Its contents are plugin-dependent.
errors
• 204 - Entity not found (if report with the specified id not found).
• 229 - Requested data is not ready yet (if report exists, but its generation is still in
progress).
status
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/report/tracker/status?
hash=a6aa75587e5c59c32d347da438505fc3&report_id=1234567
response
{
"success": true,
"percent_ready": 75
}
errors
• 204 - Entity not found (if report with the specified id not found).
Contains API calls related to sub-users, that is, additional users who have access to
your account and monitoring assets. Sub-users is convenient way for corporate clients
to provide multiple employees, who have different roles and priveleges, with access to
the monitoring system.
Every sub-user can operate on a subset of trackers from your "master account". Every
entity, which is associated with unavailable trackers, also becomes hidden from sub-
user. This is called "scoping". Sub-users's rights can also be limited to prevent
unauthorized changes to your data and application setting.
NOTE: Sub-users cannot have any "exclusive" objects. Every tracker, rule, task, etc., even
created or edited by sub-user, still belongs to your account. The only exception is
reporting system: every sub-user has its own reports pool and reports schedule.
<subuser> = {
"id": 103, //sunuser id, can be null (when creating new sub-
user)
"activated": true, // true if user is
activated (allowed to login)
"login": "user@test.com", // User email as login.
Must be valid unique email address
"first_name": ${string}, // User's or contact
person first name
"middle_name": ${string}, // User's or contact
person middle name
"last_name": ${string}, // User's or contact
person last name
"legal_type": "legal_entity", // either "legal_entity",
"individual" or "sole_trader"
"phone": "491761234567", // User's or contact phone
(10-15 digits)
"post_country": "Germany", // country part of user's
post address
"post_index": "61169", // index part of user's
post address
"post_region": "Hessen", // region part of user's
post address
"post_city": "Wiesbaden", // city from postal address
"post_street_address": "Marienplatz 2", // street address
Skip to content
"registered_country": "Germany", // country part of user's
registered address
"registered_index": "61169", // index part of user's
registered address
"registered_region": "Hessen", // region part of user's
registered address
"registered_city": "Wiesbaden", // city from registered
address
"registered_street_address": "Marienplatz 2", // User's
registered address
"state_reg_num": ${string}, // State registration
number. E.g. EIN in USA, OGRN in Russia. 15 characters max.
"tin": ${string}, // Taxpayer identification
number aka "VATIN"
"legal_name": "E. Biasi GmbH", // user legal name (for
"legal_entity" only)
"iec": ${string}, // Industrial Enterprises
Classifier aka "KPP" (used in Russia. for "legal_entity" only)
"security_group_id": 333, // Id of the security
group to whic sub-user belongs to. Can be null, which means
default group with no privileges
//this fields are read-only, they should not be used in user/
update
"creation_date": "2016-05-20 00:00:00" // date/time when
user was created
}
delete
required tariff features: multilevel_access – for ALL trackers required subuser rights:
admin (available only to master users)
parameters
response
{
"success": true
}
errors
• 236 – Feature unavailable due to tariff restrictions (if there is at least one tracker
without "multilevel_access" tariff feature)
• 201 – Not found in database – if sub-user with such id does not exist or does not
Skipbelong
to content
to current master user.
list
required tariff features: multilevel_access – for ALL trackers required subuser rights:
admin (available only to master users)
parameters
none
response
{
"success": true,
"list": [<subuser>, ... ] //list of all sub-users belonging to
this master account
}
errors
• 236 – Feature unavailable due to tariff restrictions (if there is at least one tracker
without "multilevel_access" tariff feature)
register
required tariff features: multilevel_access – for ALL trackers required subuser rights:
admin (available only to master users)
parameters
response
{
"success": true,
"id": <id of the created sub-user>
}
Skip to content
errors
• 236 – Feature unavailable due to tariff restrictions (if there is at least one tracker
without "multilevel_access" tariff feature)
• 201 – Not found in database – when specified security_group_id does not exist
• 206 – login already in use (if this login email already registered)
update
required tariff features: multilevel_access – for ALL trackers required subuser rights:
admin (available only to master users)
parameters
response
{
"success": true
}
errors
• 236 – Feature unavailable due to tariff restrictions (if there is at least one tracker
without "multilevel_access" tariff feature)
• 201 – Not found in database – if sub-user with such id does not exist or does not
belong to current master user. Also when specified security_group_id does not exist
Contains API calls related to security groups, that is, groups of sub-users with the
specified set of rights and privileges.
${security_group} = {
"id": 103, //group id, can be null (when creating new
security group)
"label": "Managers", //group label
"privileges": {
"rights": [
"tag_update", "tracker_register" //a set of rights
granted to security group (see below)
],
"store_period": "1d" // optional, period of viewing
history in legacy duration format, e.g. "2h" (2 hours), "3d" (3
days), "5m" (5 months), "1y" (one year)
}
}
Default (or empty) security group is the group which is effective when sub-users'
"security_group_id" is null. It has empty "rights" array.
Master user always has all rights, including exclusive "admin" right.
Absolute majority of read operations does not require any rights (that is, they are
available to all sub-users, even with "null" security group). However, some entities may
be hidden because they are associated with the trackers unavailable to sub-user. Most f
data-modifying operations, on the contrary, require some rights to be present.
• tracker_update,
• tracker_register,
Skip to content
• tracker_rule_update,
• tracker_configure,
• tracker_set_output,
• tag_update,
• task_update,
• zone_update,
• place_update,
• employee_update,
• vehicle_update,
• payment_create
• form_template_update,
• reports
• checkin_update
create
required tariff features: multilevel_access – for ALL trackers required subuser rights:
admin (available only to master users)
parameters
response
{
"success": true,
"id": ${id of the created security group}
}
errors
• 236 – Feature unavailable due to tariff restrictions (if there is at least one tracker
without "multilevel_access" tariff feature)
delete
Skip to content
Delete existing security group. All sub-users belonging to this group will be assigned to
default (null) security group.
required tariff features: multilevel_access – for ALL trackers required subuser rights:
admin (available only to master users)
parameters
response
{
"success": true,
}
errors
• 201 – Not found in database – when group with the specified security_group_id
does not exist
• 236 – Feature unavailable due to tariff restrictions (if there is at least one tracker
without "multilevel_access" tariff feature)
list
required tariff features: multilevel_access – for ALL trackers required subuser rights:
admin (available only to master users)
parameters
none.
response
{
"success": true,
"list": [${security_group}, ... ] //list of all sub-users
belonging to this master account
}
• 236 – Feature unavailable due to tariff restrictions (if there is at least one tracker
without "multilevel_access" tariff feature)
update
required tariff features: multilevel_access – for ALL trackers required subuser rights:
admin (available only to master users)
parameters
response
{
"success": true
}
errors
• 201 – Not found in database – when security group with the specified id does not
exist
• 236 – Feature unavailable due to tariff restrictions (if there is at least one tracker
without "multilevel_access" tariff feature)
Subuser session
create
Create new session for the specified sub-user and obtain its hash. Can be used to log in
to sub-user's accounts.
required tariff features: multilevel_access – for ALL trackers required subuser rights:
admin (available only to master users)
parameters
response
{
"success": true,
"hash" : ${hash of the created subuser session}
}
errors
• 236 – Feature unavailable due to tariff restrictions (if there is at least one tracker
without "multilevel_access" tariff feature)
• 201 – Not found in database – if sub-user with such id does not exist or does not
belong to current master user.
bind
required tariff features: multilevel_access – for ALL trackers required subuser rights:
admin (available only to master users)
parameters
• trackers - array of int. array of tracker id-s to associate with the specified sub-user.
All trackers must belong to current master user.
response
{
"success": true
}
errors
• 236 – Feature unavailable due to tariff restrictions (if there is at least one tracker
without "multilevel_access" tariff feature)
• 201 – Not found in database – if sub-user with such id does not exist or does not
belong to current master user.
• 262 – Entries list is missing some entries or contains nonexistent entries – if one or
more of specified tracker ids don't exist.
list
required tariff features: multilevel_access – for ALL trackers required subuser rights:
admin (available only to master users)
parameters
Skip to content
• subuser_id - int. id of the sub-user belonging to current account.
response
{
"success": true,
"list" : [${tracker_id1}, ...] //list of tracker ids to which
this sub-user has acccess
}
errors
• 236 – Feature unavailable due to tariff restrictions (if there is at least one tracker
without "multilevel_access" tariff feature)
• 201 – Not found in database – if sub-user with such id does not exist or does not
belong to current master user.
unbind
required tariff features: multilevel_access – for ALL trackers required subuser rights:
admin (available only to master users)
parameters
• trackers - array of int. array of tracker id-s to associate with the specified sub-user.
All trackers must belong to current master user.
response
{
"success": true
}
errors
• 236 – Feature unavailable due to tariff restrictions (if there is at least one tracker
without "multilevel_access" tariff feature)
• 201 – Not found in database – if sub-user with such id does not exist or does not
belong to current master user.
• 262 – Entries list is missing some entries or contains nonexistent entries – if one or
Skipmore
to content
of specified tracker ids don't exist.
tag object
<tag> =
{
"id": 3,
"avatar_file_name": "asdf.jpg",
"name": "hop",
"color": "FF0000"
}
• place
• task
• task_schedule
• employee
• vehicle
• zone
• tracker
create
parameters
response
{
"success": true,
"id": 111 //id of the created tag
}
errors
parameters
response
{
"success": true
}
errors
• 201 – Not found in database (if there is no tag with such id)
list
parameters
• filter - (string) optional filter for tag name, 3-60 characters or null.
response
{
"success": true,
"list": [ <tag>, ... ]
}
errors
search
parameters
• entity_types - (Array of tagged entity types) optional, filter for entity types.
response
Skip to content
{
"success": true,
"result": {
"place": [...], //array of place objects
"task": [...], //array of task objects
"task_schedule": [...], //array of task schedule objects
"employee": [...], //array of employee objects
"vehicle": [...], //array of vehicle objects
"zone": [...], //array of zone objects
"tracker": [...] //array of tracker objects
}
}
errors
update
parameters
response
{
"success": true
}
errors
• 201 – Not found in database (if there is no tag with such id)
assign
parameters
• tag_id
• icon_id
Assign icon_id (from standard icon set) to this tag. Icon_id can be null – this means
that uploaded avatar should be used instead of icon.
response
{
"success": true
}
errors
• 201 – Not found in database (when vehicle with tag_id not found in db)
upload
MUST be a POST multipart request (multipart/form-data), with one of the parts being an
image file upload (with the name 'file').
• image/jpeg or image/pjpeg
• image/png
• image/gif
Skip to content
parameters
• tag_id – tag id
response
{
"success": true,
"value": <string> // avatar file name
}
errors
• 201 – Not found in database (when tag with tag_id not found in db)
• 234 – Invalid data format (if passed file with unexpected mime type)
• /user/activate
• /user/auth
• /user/get_info
• /user/get_tariff_restrictions
• /user/resend_activation
activate
Activates previously registered user with the provided session hash (it is contained in
activation link from email sent to user). Available only to master users.
Attention
This call will receive only session hash from registration email. Any other hash will
result in result error code 4 (user not found or session ended).
response
{ "success": true }
auth
parameters
login User email as login (or demo login) string not null
example
response
{
"success": true,
"hash": <string> // session hash
}
errors
• 104 – Logins limit exceeded, please reuse existing sessions instead (see also user/
session/renew)
get_info
parameters
example
$ curl -X POST 'https://api.navixy.com/v2/fsm/user/get_info' \
Skip
-H to content
'Content-Type: application/json' \
-d '{ "hash": "a6aa75587e5c59c32d347da438505fc3" }'
response
{
"success": true,
"paas_id": 7,
"paas_settings": ${pass_settings},
"user_info": {
"id": 43568, // user id
"login": "demo@navixy.com", // user's login (in most
cases it's an email address)
"title": "John Smith", // user first and last
name or organization title
"phone": "79123456789", // user phone (if not
empty)
"creation_date": "2016-05-20 01:10:34", // user
registration date/time
"balance": 74.31, // user balance, max. 2
digits after dot. For subusers, this field should be ignored
"bonus": 0, // user bonus, max. 2
digits after dot. For subusers, this field should be ignored
"locale": "en_US", // user locale, for
example "en_EN"
"demo": true, // true if this is a demo
user, false otherwise
"verified" : true, // true if user email
already verified
"legal_type" : "individual", // string. "individual",
"legal_entity" or "sole_trader"
"default_geocoder": "google", // user's default
geocoder ("google", "yandex", "progorod", "osm", or "locationiq")
"route_provider": "google", // user's route provider
("progorod", "google" or "osrm")
"time_zone": "America/New_York", // user timezone name
"measurement_system" : "metric", // user's measurement
system ("metric", "imperial" or "us")
"tin": "2345678239", // Taxpayer
identification number aka "VATIN" or "INN"
"iec": ${string}, // Industrial Enterprises
Classifier aka "KPP". Used in Russia for legal entities. Optional.
// postal address
"post_country": "USA", // country
"post_region": "NY", // region part of post
address (oblast, state, etc.)
"post_index": "10120", // post index or ZIP code
"post_city": "New York", // city part of post
address
"post_street_address": "1556 Broadway, suite 416" // tail
part of post address
// legal (juridical) address
"registered_country": "USA", // country
"registered_region": "NY", // region part of
Skip to content
post address (oblast, state, etc.)
"registered_index": "10120", // post index or
ZIP code
"registered_city": "New York", // city part of
post address
"registered_street_address": "1556 Broadway, suite 416" //
tail part of post address
"first_name": "John",
"middle_name": "Walker",
"last_name": "Smith",
"legal_name": "QWER Inc." // juridical name (optional)
},
"master": { // returned only if current user is sub-user. All
fields have same meaning as in "user_info", but for master user's
account
"id": 1234, // same as in "user_info"
"demo": false, // same as in "user_info"
"legal_type": "individual", // same as in "user_info"
"first_name": "David", // same as in "user_info"
"middle_name": "Middle", // same as in "user_info"
"last_name": "Blane", // same as in "user_info"
"legal_name": "Blah LLC", // same as in "user_info"
"title": "David Blane", // same as in "user_info"
"balance": 0.0, // master user balance, max. 2 digits
after dot. Only returned if subuser has "payment_create" right
"bonus": 89.78, // master user bonus, max. 2 digits after
dot. Only returned if subuser has "payment_create" right
},
"tariff_restrictions": ${tariff_restrictions},
"premium_gis": true,
"features": ["branding_web"],
"privileges": { // only returned for subusers. Describes
effective subuser privileges
"rights": [
"tag_update"
]
}
}
where
get_tariff_restrictions
example
response
{
"success": true,
"value": ${tariff_restrictions}
}
{
"allowed_maps": [${map_name}, ...] // [string]. list of
allowed maps, e.g. ["roadmap","osm"]
}
logout
parameters
example
response
{ "success": true }
resend_activation
example
response
{ "success": true }
errors
• 201 (Not found in database) – user with passed login not found.
• 264 (Timeout not reached) – previous activation link generated less than 5 minutes
ago (or other configured on server timeout).
{
"success": false,
"status": {
"code": 264,
"description": "Timeout not reached"
},
"timeout": "PT5M", // timeout between sending activation
links in ISO-8601 duration format
"remainder": "PT4M31.575S" // remaining time to next try in
ISO-8601 duration format
}
change
Changes password of user with the provided session hash (it is contained in password
restore link from email sent to user by "user/restore_password".
NOTE: this call will receive only session hash from password restore email. Any other
hash will result in result error code 4 (user not found or session ended)
parameters
response
{ "success": true }
errors
• 101 – In demo mode this function is disabled (if specified session hash belongs to
demo user)
set
parameters
response
{ "success": true }
errors
• 101 – In demo mode this function is disabled (if specified session hash belongs to
demo user)
update
parameters
• phone – string. 0-15 digits. optional. Contact phone. Not changes if not passed.
• iec – string. Industrial Enterprises Classifier aka "KPP". Used in Russia. For
legal_entity only.
{ "success": true }
errors
• 222 (Plugin not found) – when plugin 45 not available for user
User audit
checkin
response
{
"success": true
}
{
"id": 1, // ID of the audit record
"user_id": 3, // Master user's ID
"subuser_id": 3, // ID of the subuser who made an action
"entry_category": "user", // Category of the entry on which an
action was made
"entry_id": null, // Nullable. ID of the entry on which an
action was made
"action": "login", // Action on entry
"payload": null, // Nullable json-object. Additional
information about action
"host": "192.168.88.1", // Host from which an action was made.
IPv4 or IPv6
"user_agent": "Apache-HttpClient/4.1.1 (java 1.5)", // User
agent
"action_date": "2018-09-03 11:32:34" // Date and time of the
action
}
list
parameters
• from – string. Include audit objects recorded after this date, e.g. 2014-07-01
00:00:00 .
• subuser_ids – int[]. (optional) Include audits for specific subusers, e.g. [2, 3] .
• actions – string[]. (optional) Include audits for specific actions only, e.g.
["user_checkin"] . Set of valid values is formed by combinations of entry
categories and actions.
• sort – string[]. (optional) Set of sort options. Each option is a pair of property name
and sorting direction, e.g. ["action_date=acs", "user=desc"] . Properties
available for sorting by:
Skip—toaction
content
— action_date (sort only by date, not considering time part)
— action_datetime (sort by date including time)
— user (sort by user's (subuser) last+first+middle name, not by ID)
— host
If no sort param is specified, then sorting equivalent to option
["action_date=asc"] will be applied.
response
{
"success": true,
"list": [ <audit_object>, ... ]
}
User session
renew
response
{ "success": true }
Calls to work with "delivery" type sessions. Those are special sessions to integrate
order (task) tracking functionality into external systems.
create
Create new user delivery session. In demo session allowed to create a new session only
if it not already exists.
response
{
"success": true,
"value": "42fc7d3068cb98d233c3af749dee4a8d" // created session
hash key
}
errors
• 101 (In demo mode this function is disabled) – current session is demo but
weblocator session already exists.
read
response
{
"success": true,
"value": <string> // session hash key
}
errors
bind
parameters
response
{ "success": true }
Delimited with comma list means that allowed only listed categories i.e.
chat_message,history_rule .
Prepended with minus and delimited with comma list means that all categories are
allowed except given i.e. – history_task,history_rule .
POSSIBLE CATEGORIES:
delete
errors
create
Create new user weblocator session. In demo session allowed to create a new session
only if it not already exists.
response
{
"success": true,
"value": "42fc7d3068cb98d233c3af749dee4a8d" // created session
hash key
}
errors
• 101 (In demo mode this function is disabled) – current session is demo but
weblocator session already exists.
read
response
{
"success": true,
"value": <string> // session hash key
}
errors
{
"time_zone": "Europe/Amsterdam", // ISO timezone id
"locale": "nl_NL", // locale code
"measurement_system": "metric" // measurement system
("metric", "imperial", "us" or "metric_gal_us")
"geocoder": "osm", // preferred geocoder type
("google", "yandex", "progorod", "osm" or "locationiq")
"route_provider": "google", // preferred route finding
provider ("google", "progorod" or "osrm")
"translit": false // true if sms notification
should be transliterated, false otherwise
}
{
"emails": ["email1@example.com", "email2@example.com"] //
array of emails to send alert message about balance
//
empty array means disclaimer of notifications
}
{
"auto_overwrite": <true|false> // default - false,
}
read
response
{
"success": true,
"settings": ${settings}, // JSON
object
"file_storage_settings": ${file_storage_settings}, // JSON
object
"balance_alert_settings": ${balance_alert_settings}, // JSON
object
Skip to content
"first_user_balance_warning_period": "7d", // first
interval to send alert
"second_user_balance_warning_period": "2d" // second
interval to send alert
}
update
parameters
response
{ "success": true }
file_storage/update
errors
The user interface settings are intended for storing settings of client applications that
use the API. One can imagine that this works similarly to the browser cache / local
storage mechanism. The feature is that long-term storage of these settings is provided
but not guaranteed - when the quota is exceeded, data could be deleted.
read
parameters
key - string. Length should be between 1 and 50 is 50 symbols, should only contain
English letters, digits, '_' and '-'.
responses:
{
"success": true,
"value": "previously saved value"
}
{
"success": false,
"status": {
"code": 201,
"description": "Not found in database"
}
}
errors
Standard errors
update
responses:
{ "success": true }
errors
• Standard errors
• 268 - over quota. The amount of storage available for the user for these settings
has been exhausted. New settings cannot be added until the amount of stored data
has been reduced.
Check-ins are created using Mobile Tracker App (Android / iOS). They contain date/
time, address, coordinates and additional information (comment, photo, filled form)
which is provided by app user after pressing the "Check-in" in the tracker app. Using
check-ins field personnel can provide information to their HQ while on site. For example,
provide photo proof of the work done, or notify about a malfunction along with filled
form describing the problem.
Check-ins cannot be created using web API, so all actions are read-only.
Check-in object
{
"id": 1,
"marker_time": "2017-03-15 12:36:27",
"user_id": 111,
"tracker_id": 222,
"employee_id": 333,
"location": {
"lat": 56.5,
"lng": 60.5,
"address": "Moltkestrasse 32",
"precision": 150
},
"comment": "houston, we have a problem",
"files": [{
"id": 16,
"storage_id": 1,
"user_id": 12203,
"type": "image",
"created": "2017-09-06 11:54:28",
"uploaded": "2017-09-06 11:55:14",
"name": "lala.jpg",
"size": 72594,
"mime_type": "image/png",
"metadata": {
"orientation": 1
},
"state": "uploaded",
"download_url": "https://static.navixy.com/file/dl/1/0/1g/
01gw2j5q7nm4r92dytolzd6koxy9e38v.png/lala.jpg"
}],
"form_id": 23423,
"form_label": "Service request form"
}
• id - int. An id of a check-in.
• marker_time - string date/time. Non-null. The time of check-in creation.
Skip to content
• user_id - int. Non-null. An id of the master user.
• uploaded - string date/time. Date when file uploaded, can be null if file not yet
uploaded.
• size int. File size in bytes. If file not uploaded, show maximum allowed size for
an upload.
• download_url - string. Actual url at which file is available. Can be null if file not
yet uploaded.
• form_id - int. An id of the form which was sent along with a check-in, can be null.
• form_label - string. Label of the form which was sent along with a check-in, can be
null.
API actions
API path: /checkin .
read
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/checkin/read?
hash=a6aa75587e5c59c32d347da438505fc3&checkin_id=1
response
{
"success": true,
"value": {
"id": 1,
"marker_time": "2017-03-15 12:36:27",
"user_id": 111,
"tracker_id": 222,
"employee_id": 333,
"location": {
"lat": 56.5,
"lng": 60.5,
"address": "Moltkestrasse 32",
"precision": 150
},
"comment": "houston, we have a problem",
"files": [{
"id": 16,
"storage_id": 1,
"user_id": 12203,
"type": "image",
"created": "2017-09-06 11:54:28",
"uploaded": "2017-09-06 11:55:14",
"name": "lala.jpg",
"size": 72594,
"mime_type": "image/png",
"metadata": {
"orientation": 1
},
"state": "uploaded",
"download_url": "https://static.navixy.com/file/dl/1/0/1g/
01gw2j5q7nm4r92dytolzd6koxy9e38v.png/lala.jpg"
Skip to content
}],
"form_id": 23423,
"form_label": "Service request form"
}
}
errors
• 7 – Invalid parameters.
• 204 – Entity not found – when the marker entry is not exists.
list
Gets marker entries on a map for trackers and for the specified time interval.
parameters
trackers Optional. Array of tracker ids. All trackers must array of int
not be deleted or blocked (if list_blocked=false).
If not specified, all available trackers will be
used as value.
location Optional, location with radius, inside which Location JSON. For
check-ins must reside example,
{ "lat":
56.823777,
"lng":
name description type
Skip to content
60.594164,
"radius": 350 }
show_nearby_geo_entities Optional. If true, the call will search for places boolean
and zones where the location of the check-in
falls and add their description to the response.
CONDITION FIELDS
employee number? id
tracker_id number
marker_time DateTime
comment string
SORT
It's a set of sort options. Each option is a pair of field name and sorting direction, e.g.
["location=asc", "employee=desc", "marker_time=desc"] .
SORT FIELDS
Skip to content
Name Type Comment
tracker_id number
marker_time DateTime
comment string
example
cURL
response
{
"success": true,
"list": [<checkin>],
"count": 22
}
"places": [{
"id": integer,
"label": string
}, …],
"zones": [{
"id": integer,
"label": string
}, …]
Skip to content
errors
• 7 – Invalid parameters.
• 211 – Requested time span is too big (more than maxReportTimeSpan config
option).
• 217 – The list contains non-existent entities – if one of the specified trackers does
not exist, is blocked or doesn't have required tariff features.
• 221 – Device limit exceeded (if device limit set for the user's dealer has been
exceeded).
delete
parameters
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/checkin/delete?
hash=a6aa75587e5c59c32d347da438505fc3&checkin_ids=[2132,4533]
response
{
"success": true
}
errors
Skip to content
• 7 – Invalid parameters.
• 201 - Not found in the database - check-ins with the specified ids don't exist, or their
corresponding trackers are not available to current sub-user.
Department object
{
"id": 222,
"label": "Drivers",
"location": {
"lat": 46.9,
"lng": 7.4,
"address": "Rosenweg 3",
"radius": 150
}
}
• id - int. An id of department.
API actions
API base path: /department .
list
HTTP GET
https://api.navixy.com/v2/fsm/department/list?
hash=a6aa75587e5c59c32d347da438505fc3
response
{
"success": true,
"list": [{
"id": 222,
"label": "Drivers",
"location": {
"lat": 46.9,
"lng": 7.4,
"address": "Rosenweg 3",
"radius": 150
}
}]
}
errors
• 7 – Invalid parameters.
• 211 – Requested time span is too big (more than maxReportTimeSpan config
option).
• 217 – The list contains non-existent entities – if one of the specified trackers does
not exist, is blocked or doesn't have required tariff features.
• 221 – Device limit exceeded (if device limit set for the user’s dealer has been
exceeded).
create
example
cURL
response
{
"success": true,
"id": 111
}
errors
• 7 – Invalid parameters.
• 211 – Requested time span is too big (more than maxReportTimeSpan config
option).
• 217 – The list contains non-existent entities – if one of the specified trackers does
not exist, is blocked or doesn't have required tariff features.
• 221 – Device limit exceeded (if device limit set for the user’s dealer has been
exceeded).
update
example
cURL
response
{ "success": true }
errors
• 201 – Not found in the database (if there is no department with specified id).
delete
parameters
HTTP GET
https://api.navixy.com/v2/fsm/department/delete?
hash=a6aa75587e5c59c32d347da438505fc3&department_id=111
response
{ "success": true }
errors
• 201 – Not found in the database (if there is no department with specified id).
Employees are used to represent people working at one's organization. They can be
linked with other entities such as trackers, vehicles, places, etc.
Employee object
{
"id": 222,
"tracker_id": null,
"first_name": "John",
"middle_name": "Jane",
"last_name": "Smith",
"email": "smith@example.com",
"phone": "442071111111",
"driver_license_number": "SKIMP407952HJ9GK 06",
"driver_license_cats": "C",
"driver_license_valid_till": "2018-01-01",
"hardware_key": null,
"icon_id" : 55,
"avatar_file_name": null,
"department_id": null,
"location": {
"lat": 52.5,
"lng": 13.4,
"address": "Engeldamm 18"
},
"personnel_number": "1059236",
"tags": [1,2],
"fuel_consumption": 8.2,
"fuel_cost": 27.1
}
• id - int. Internal ID. Can be passed as null only for "create" action.
• middle_name - string. Middle name. Can be empty, cannot be null. Max 100
characters.
• last_name - string. Last name. Can be empty, cannot be null. Max 100 characters.
• email - string. Employee's email. Must be valid email address. Can be empty,
cannot be null. Max 100 characters.
• phone - string. Employee's phone without "+" sign. Can be empty, cannot be null.
Max 32 characters.
• driver_license_number - string. Driver license number. Can be empty, cannot be
Skipnull.
to content
Max 32 characters.
• icon_id - int. An icon id. Can be null, can only be updated via avatar/assign.
• avatar_file_name - string. A name of the updated avatar file. Nullable, can only be
updated via avatar/upload.
• location - optional object. Location associated with this employee, should be valid
or null.
API actions
API base path: /employee .
list
response
{
"success": true,
"list": [<employee>]
}
HTTP GET
https://api.navixy.com/v2/fsm/employee/list?
hash=a6aa75587e5c59c32d347da438505fc3
errors
create
parameters
example
cURL
errors
• 247 – Entity already exists, if tracker_id !=null and exists an employee that already
bound to this tracker_id .
read
parameters
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/employee/read?
hash=a6aa75587e5c59c32d347da438505fc3&employee_id=111
response
{
"success": true,
"value": {
"id": 222,
"tracker_id": null,
"first_name": "John",
"middle_name": "Jane",
"last_name": "Smith",
"email": "smith@example.com",
"phone": "442071111111",
"driver_license_number": "SKIMP407952HJ9GK 06",
"driver_license_cats": "C",
Skip to content
"driver_license_valid_till": "2018-01-01",
"hardware_key": null,
"icon_id" : 55,
"avatar_file_name": null,
"department_id": null,
"location": {
"lat": 52.5,
"lng": 13.4,
"address": "Engeldamm 18"
},
"personnel_number": "1059236",
"tags": [1,2],
"fuel_consumption": 14.2,
"fuel_cost": 9.99
}
}
errors
• 201 – Not found in the database (if there is no employee with such an id).
update
Update existing employee. If it had tracker assigned and tracker id had changed, tracker
label will be prepended with "Deleted ". New tracker's label will be changed to employee
full name.
parameters
response
{ "success": true }
errors
• 201 – Not found in the database (if there is no employee with such an id).
• 247 – Entity already exists, if tracker_id !=null and exists an employee that already
bound to this tracker_id .
delete
Deletes an employee with the specified id. If it had tracker assigned, tracker label will
be prepended with "Deleted "
parameters
HTTP GET
https://api.navixy.com/v2/fsm/employee/delete?
hash=a6aa75587e5c59c32d347da438505fc3&employee_id=111
response
{ "success": true }
errors
• 201 – Not found in the database (if there is no employee with such an id).
batch_convert
Convert batch of tab-delimited employees and return list of checked employees with
errors.
parameters
{
"success": true,
"list": [{
"success": true,
"value": {
"id": 222,
"tracker_id": null,
"first_name": "John",
"middle_name": "Jane",
"last_name": "Smith",
"email": "smith@example.com",
"phone": "442071111111",
"driver_license_number": "SKIMP407952HJ9GK 06",
"driver_license_cats": "C",
"driver_license_valid_till": "2018-01-01",
"hardware_key": null,
"icon_id" : 55,
"avatar_file_name": null,
"department_id": null,
"location": {
"lat": 52.5,
"lng": 13.4,
"address": "Engeldamm 18"
},
"personnel_number": "1059236",
"tags": [1,2],
"fuel_consumption": 10.0,
"fuel_cost": 0.94,
"errors": <array_of_objects>
}],
"limit_exceeded": false
}
errors
Avatars can't be changed through /employee/update , you must use either assign (to
set avatar to one of preset icons), or upload (to upload your own image).
API actions
API base path: /employee/avatar .
assign
Assign icon_id (from standard icon set) to this employee. The icon_id can be null
– this means that uploaded avatar should be used instead of icon.
parameters
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/employee/avatar/assign?
hash=a6aa75587e5c59c32d347da438505fc3&employee_id=2132&icon_id=3654
response
{ "success": true }
errors
Skip to content
• 201 – Not found in the database (when employee with employee_id not found).
upload
Uploads avatar image for specified employee. Then it will be available from /employee/
avatars/ e.g. https://api.navixy.com/v2/fsm/static/employee/avatars/
abcdef123456789.png .
MUST be a POST multipart request (multipart/form-data), with one of the parts being an
image file upload (with the name file ).
• image/jpeg or image/pjpeg.
• image/png.
• image/gif.
parameters
response
{
"success": true,
"value": "picture.png"
}
• 234 – Invalid data format (if passed file with unexpected mime type).
Forms used to provide additional information, such as user name, phone, delivery date,
etc. upon task completion or check-in from iOS/Android mobile tracker app. Forms can
be attached to tasks. If form attached to task, this task cannot be completed without
form submission.
• For description of <form_field> and <field_value> , see Form fields and values
• Using web API, it's now possible to only attach/fill forms with tasks (checkin forms
are created through Android/iOS tracker applications). See Task form actions to use
forms with tasks.
Form object
{
"id": 2,
"label": "Order form",
"fields": [
{
"id": "111-aaa-whatever",
"label": "Name",
"description": "Your full name",
"required": true,
"min_length": 5,
"max_length": 255,
"type": "text"
}
],
"created": "2017-03-15 12:36:27",
"submit_in_zone": true,
"task_id": 1,
"template_id": 1,
"values": {
"111-aaa-whatever": {
"type": "text",
"value": "John Doe"
}
},
"submitted": "2017-03-21 18:40:54",
"submit_location": {
"lat": 11.0,
"lng": 22.0,
"address": "Wall Street, NY"
}
}
Skip to content
• created - string date/time. Date when this form created (or attached to the task).
The read-only field.
• template_id - int. An id of the form template on which this form based. Can be null
if template deleted.
• values - a map with field ids as keys and field_value objects as values. Can be null
if form not filled.
• key - string. Key used to link field and its corresponding value.
{
"id": 16,
"storage_id": 1,
"user_id": 12203,
"type": "image",
"created": "2017-09-06 11:54:28",
"uploaded": "2017-09-06 11:55:14",
"name": "lala.jpg",
"size": 72594,
"mime_type": "image/png",
"metadata": <metadata_object>,
"state": "uploaded",
"download_url": "https://static.navixy.com/file/dl/1/0/1g/
01gw2j5q7nm4r92dytolzd6koxy9e38v.png/lala.jpg"
}
• uploaded - string date/time. Date when file uploaded. Can be null if file not yet
uploaded.
• name - string. A filename.
Skip to content
• size - int. Size in bytes. If file not uploaded, show maximum allowed size for the
upload.
• download_url - string. Actual url at which file is available. Can be null if file not yet
uploaded.
API actions
API path: /form .
read
parameters
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/form/read?
hash=a6aa75587e5c59c32d347da438505fc3&id=2
response
{
"success": true,
"value": {
"id": 2,
"label": "Order form",
"fields": [
{
"id": "111-aaa-whatever",
"label": "Name",
"description": "Your full name",
"required": true,
Skip to content
"min_length": 5,
"max_length": 255,
"type": "text"
}
],
"created": "2017-03-15 12:36:27",
"submit_in_zone": true,
"task_id": 1,
"template_id": 1,
"values": {
"111-aaa-whatever": {
"type": "text",
"value": "John Doe"
}
},
"submitted": "2017-03-21 18:40:54",
"submit_location": {
"lat": 11.0,
"lng": 22.0,
"address": "Wall Street, NY"
}
}
"files": [{
"id": 16,
"storage_id": 1,
"user_id": 12203,
"type": "image",
"created": "2017-09-06 11:54:28",
"uploaded": "2017-09-06 11:55:14",
"name": "lala.jpg",
"size": 72594,
"mime_type": "image/png",
"metadata": {
"orientation": 1
},
"state": "uploaded",
"download_url": "https://static.navixy.com/file/dl/1/0/1g/
01gw2j5q7nm4r92dytolzd6koxy9e38v.png/lala.jpg"
}]
}
• files - list of form_file objects. Files used in values of this form. Can be null or
empty.
errors
• 201 – Not found in the database (if there is no form with such an id).
download
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/form/download?
hash=a6aa75587e5c59c32d347da438505fc3&id=2&format=pdf
response
errors
• 201 – Not found in the database (if there is no form with such an id).
Every form (and form template) contains an ordered list of fields of various types. Field
type defines how user input elements will look like, and how user input will be validated.
Every field has a set of common parameters, which are the same for all field types, and
type-specific parameters, which define specific style and validation constraints. Both
common and type-specific parameters contained as fields in the JSON object.
Field values for submitted form stored separately as JSON objects. The contents of
value JSON objects are entirely field type-specific.
{
"id": "Text-1",
"label": "Name",
"description": "Your full name",
"required": true,
"type": "text"
}
• description - string. Field description, shown in smaller text under the header, 1 to
512 printable characters.
• required - boolean. If true , form cannot be submitted without filling this field
with valid value.
Text field
type: text .
Note 1: when value contains empty string, it's considered empty, and thus valid when
required: false, min_length != 0 .
Note 2: combination required: true, min_length: 0 is not allowed.
type-specific parameters:
{
Skip to"min_length":
content 5,
"max_length": 255
}
value object:
{
"type": "text",
"value": "text field value"
}
Checkbox group
type: checkbox_group .
Group of checkboxes.
Note 1: when zero checkboxes selected, values considered empty, and thus valid when
required: false, min_checked != 0 .
Note 2: combination required: true, min_checked: 0 is not allowed.
TYPE-SPECIFIC PARAMETERS:
{
"min_checked": 0,
"max_checked": 3,
"group": [{
"label" : "I agree to TOS"
}]
}
VALUE OBJECT:
{
"type": "checkbox_group",
"values": [true]
}
• values - array of boolean. They are in the same order as fields in group .
Dropdown field
Skip to content
type: dropdown .
TYPE-SPECIFIC PARAMETERS:
{
"options": [
{
"label" : "John"
},
{
"label" : "Alice"
}
]
}
VALUE OBJECT:
{
"type": "dropdown",
"value_index": 1
}
type: radio_group .
TYPE-SPECIFIC PARAMETERS:
{
"options": [
{
"label" : "John"
},
{
"label" : "Alice"
}
]
}
VALUE OBJECT:
{
"type": "radio_group",
"value_index": 1
}
Skip to content
Date picker
type: date .
A date picker.
TYPE-SPECIFIC PARAMETERS:
{
"disable_future": false,
"disable_past": true
}
VALUE OBJECT:
{
"type": "date",
"value": "2017-03-14"
}
Rating
type: rating .
TYPE-SPECIFIC PARAMETERS:
{
"max_stars": 5
}
VALUE OBJECT:
{
"type": "rating",
"value": 3
}
Skip to content
File
type: file .
TYPE-SPECIFIC PARAMETERS:
{
"max_file_size": 65536,
"min_file_size": 128,
"allowed_extensions": ["xls", "doc"]
}
VALUE OBJECT:
{
"type": "file",
"file_ids": [3345345]
}
• file_ids - array of int. Ids of the file which should be attached to this form field as
value. Files must be uploaded before form submission.
Photo
type: photo .
Photograph attachment.
TYPE-SPECIFIC PARAMETERS:
{
"max_files": 2
}
Skip to content
{
"type": "photo",
"file_ids": [3345345, 534534534]
}
• file_ids - array of int. Ids of the files which should be attached to this form field
as value. Files must be uploaded before form submission. Only image files allowed.
Signature
type: signature .
A small image of customer's signature (usually obtained via writing on screen with a
stylus).
TYPE-SPECIFIC PARAMETERS:
VALUE OBJECT:
{
"type": "file",
"file_id": 3345345
}
• file_id - int. An id of the file which should be attached to this form field as value.
File must be uploaded before form submission.
Separator
type: separator .
Cosmetic, just to show header. Doesn't contain any actual value. Always filled and valid.
Cannot be required.
Form is a "one-shot" entity; after it was filled by someone, it cannot be reused. It's
stored along with filled fields for future reference. Usually people need to fill forms with
the same fields over an over again, so forms created on the basis of form templates. It's
similar to paper forms: each paper form can be filled only once, but there's an electronic
document, a template, on basis of which all paper forms printed.
The reason for such API design is that template fields can be changed over time
(deleted, removed, reordered, etc)
and it should not affect already filled forms. By separating filled forms and templates,
one can always view filled form in exactly same state regardless of how template
changed.
User can assign form to the task or checkin by choosing template without the need to
create all form fields every time.
{
"id": 1,
"label": "Order form",
"fields":[{
"id": "Text-1",
"label": "Name",
"description": "Your full name",
"required": true,
"type": "text",
"min_length": 5,
"max_length": 255
}],
"created": "2017-03-15 12:36:27",
"submit_in_zone": true,
"updated": "2017-03-16 15:22:53",
"default": false
}
• id - int. An id of a template.
• created - string date/time. Date when this template created. The read-only field.
• default - boolean. This form will be chosen default for all new tasks with form if
true .
API actions
API base path: /form/template .
list
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/form/template/list?
hash=a6aa75587e5c59c32d347da438505fc3
response
{
"success": true,
"list":[{
"id": 1,
"label": "Order form",
"fields":[{
"id": "Text-1",
"label": "Name",
"description": "Your full name",
"required": true,
"type": "text",
"min_length": 5,
"max_length": 255
}],
"created": "2017-03-15 12:36:27",
"submit_in_zone": true,
"updated": "2017-03-16 15:22:53",
"default": false
}]
}
create
parameters
example
cURL
response
{
"success": true,
"id": 111
}
errors
• 101 – In demo mode this function disabled (if current user has "demo" flag).
read
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/form/template/read?
hash=a6aa75587e5c59c32d347da438505fc3&template_id=111
response
{
"success": true,
"list":[{
"id": 1,
"label": "Order form",
"fields": [{
"id": "Text-1",
"label": "Name",
"description": "Your full name",
"required": true,
"type": "text",
"min_length": 5,
"max_length": 255
}],
"created": "2017-03-15 12:36:27",
"submit_in_zone": true,
"updated": "2017-03-16 15:22:53",
"default": false
}]
}
errors
• 201 – Not found in the database (if there is no template with such an id).
update
Skip to content
Updates existing form template.
parameters
example
cURL
response
{ "success": true }
errors
• 201 – Not found in the database (if template with the specified id does not exist).
• 101 – In demo mode this function disabled (if current user has "demo" flag).
delete
parameters
HTTP GET
https://api.navixy.com/v2/fsm/form/template/delete?
hash=a6aa75587e5c59c32d347da438505fc3&template_id=111
response
{ "success": true }
errors
• 201 – Not found in the database (if template with the specified id does not exist).
• 101 – In demo mode this function disabled (if current user has "demo" flag).
stats/read
parameters
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/form/template/stats/read?
hash=a6aa75587e5c59c32d347da438505fc3&template_id=111
response
Skip to content
{
"success": true,
"tasks": {
"unassigned": 0,
"assigned": 6,
"done": 0,
"failed": 0,
"delayed": 9,
"arrived": 0,
"faulty": 0
},
"scheduled": 2
}
• tasks - maps task status to number of tasks with this status which use specified
template.
errors
• 201 – Not found in the database (if template with the specified id does not exist).
"Places" are business-specific points of interest like shops, delivery points, warehouses,
etc - which are visited by user's employees. Place entities can be extended with custom
fields to make them even more useful.
In case an event happened at the place, in various reports name of the place will be
specified after the address.
If there's an employee assigned to a Mobile Tracker App (Android / iOS), and a place
has a custom field of type "responsible employee", such place will be available in the
mobile app to view. Thus, field employee can view all places assigned to him to visit
them, etc.
Place object
{
"id": 1,
"icon_id" : 55,
"avatar_file_name": null,
"location": {
"lat": 52.366,
"lng": 4.895,
"address": "730 5th Ave, New York, NY 10019, Unites
States",
"radius": 500
},
"fields": {
"131312" : {
"type": "text",
"value": "I love text!"
}
},
"label": "Crown Building",
"description": "Here we buy our goods",
"tags": [ 1, 2 ],
"external_id": "1"
}
• id - int. An id of a place.
• icon_id - optional int. Can be 1 to 255. Can only be updated via avatar/assign.
• fields - optional object. A map, each key of which is a custom field id as a string.
See entity/fields
API actions
API base path: /place .
read
parameters
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/place/read?
hash=a6aa75587e5c59c32d347da438505fc3&place_id=122304
response
{
"success": true,
"value": {
"id": 1,
"icon_id" : 55,
"avatar_file_name": null,
"location": {
"lat": 40.773998,
"lng": -73.66003,
"address": "730 5th Ave, New York, NY 10019, Unites
States",
"radius": 50
},
"fields": {
"131312" : {
"type": "text",
Skip to content
"value": "I love text!"
}
}
"label": "Crown Building",
"description": "Here we buy our goods",
"tags": [ 1, 2 ],
"external_id": "1"
}
}
errors
• 201 (Not found in the database) – if there is no place with such ID.
list
parameters
filter Optional. Filter for all built-in and custom fields. If used string
with conditions, both filter and conditions must match
for every returned place.
HTTP GET
https://api.navixy.com/v2/fsm/place/list?
hash=a6aa75587e5c59c32d347da438505fc3
response
{
"success": true,
"list": [{
"id": 1,
"icon_id" : 55,
"avatar_file_name": null,
"location": {
"lat": 40.773998,
"lng": -73.66003,
"address": "730 5th Ave, New York, NY 10019, Unites
States",
"radius": 50
},
"fields": {
"131312" : {
"type": "text",
"value": "I love text!"
}
},
"label": "Crown Building",
"description": "Here we buy our goods",
"tags": [ 1, 2 ],
"external_id": "1"
}],
"count": 1
}
errors
create
example
cURL
response
{
"success": true,
"id": 111
}
errors
update
example
cURL
response
{ "success": true }
errors
• 201 (Not found in the database) – if there is no place with such ID.
delete
parameters
HTTP GET
https://api.navixy.com/v2/fsm/place/delete?
hash=a6aa75587e5c59c32d347da438505fc3&place_id=122304
response
{ "success": true }
errors
• 201 (Not found in the database) – if there is no place with such ID.
batch_convert
Converts batch of tab-delimited places and return list of checked places with errors.
parameters
errors
upload
Upload places.
MUST be a POST multipart request (multipart/form-data), with one of the parts being a
CSV file upload (with the name "file").
CSV column separator is ; , columns header required –
Skip to content
label;address;lat;lng;radius;external_id;description
parameters
response
{
"success": true,
"total": 1,
"errors": 0
}
errors
• 247 (Entity already exists) – if uploaded place contains external_id and place with
this ID already exists and duplicate_policy=fail.
Avatars don't change through /place/update , you must use either assign (to set
avatar to one of preset icons), or upload (to upload your own image).
API actions
API path: /place/avatar .
upload
MUST be a POST multipart request (multipart/form-data), with one of the parts being an
image file upload (with the name "file").
• image/jpeg or image/pjpeg
• image/png
• image/gif
PARAMETERS
Skip to content
{
"success": true,
"value": "Avatar file name"
}
errors
• 201 (Not found in the database) – when place with place_id not found.
• 234 (Invalid data format) – if passed file with unexpected mime type.
assign
Assigns icon_id (from standard icon set) to this place. icon_id can be null – this
means that uploaded avatar should be used instead of icon.
parameters
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/place/avatar/assign?
hash=a6aa75587e5c59c32d347da438505fc3&place_id=122304&icon_id=1
response
{ "success": true }
Skip to content
errors
• 201 (Not found in the database) – when place with place_id not found.
You can assign task to any tracked device. If specified tracker visits task checkpoint at
the specified time and meets other conditions such as filling form or staying in the task
zone for the specified time, the task completed. Otherwise, the task either failed
completely or completed with warnings.
If task assigned to a Mobile Tracker App (Android / iOS), it's available for viewing by app
user. User will also receive notifications of newly assigned tasks, task changes, etc.
Task object
{
"id": 111,
"user_id": 3,
"tracker_id": 22,
"location": {
"lat": 56.5,
"lng": 60.5,
"address": "Fichtenstrasse 11",
"radius": 150
},
"label": "Deliver parcels",
"description": "Quickly",
"creation_date": "2014-01-02 03:04:05",
"from": "2014-02-03 04:05:06",
"to": "2014-03-04 05:06:07",
"external_id": null,
"status": "assigned",
"status_change_date": "2014-01-02 03:04:05",
"max_delay" : 5,
"min_stay_duration": 0,
"arrival_date": "2014-01-02 03:04:05",
"stay_duration": 0,
"origin": "imported",
"tags": [1, 2],
"type": "task",
"form": <form_object>,
"fields": {
"131312" : {
"type": "text",
"value": "I love text!"
}
},
}
• from - string date/time. Date AFTER which task zone must be visited.
• external_id - string. Used if task imported from external system. Arbitrary text
string. Can be null.
• arrival_date - string date/time. When tracker has arrived to the task zone.
IGNORED in create/update.
• fields - optional object. A map, each key of which is a custom field id as a string.
See entity/fields
API actions
API base path: /task .
assign
tracker_id Id of the tracker. Tracker must belong to authorized user and int
not be blocked. If null, task will be assigned to no one.
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/task/assign?
hash=a6aa75587e5c59c32d347da438505fc3&task_id=23144&tracker_id=132421
response
{ "success": true }
errors
• 201 – Not found in the database (if there is no task with such an id).
• 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).
• 255 – Invalid task state (if current task state is not "unassigned" or "assigned").
• 236 – Feature unavailable due to tariff restrictions (if device's tariff does not allow
usage of tasks).
batch_convert
Converts batch of tab-delimited tasks and return list of checked tasks with errors.
response
{
"success": true,
"list": [{
"id": 111,
"user_id": 3,
"tracker_id": 22,
"location": {
"lat": 56.5,
"lng": 60.5,
"address": "Fichtenstrasse 11",
Skip to content
"radius": 150
},
"label": "Deliver parcels",
"description": "Quickly",
"creation_date": "2014-01-02 03:04:05",
"from": "2014-02-03 04:05:06",
"to": "2014-03-04 05:06:07",
"external_id": null,
"status": "assigned",
"status_change_date": "2014-01-02 03:04:05",
"max_delay" : 5,
"min_stay_duration": 0,
"arrival_date": "2014-01-02 03:04:05",
"stay_duration": 0,
"origin": "imported",
"tags": [1, 2]
"type": "task",
"form": <form_object>,
"errors": [<error_object>]
}],
"limit_exceeded": false
}
• list - list of checked task objects that contain all fields from task and field
errors .
errors
count
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/task/count?
hash=a6aa75587e5c59c32d347da438505fc3
response
{
Skip to"success":
content true,
"count": 111
}
create
parameters
{
"tracker_id": 22,
"location": {
"lat": 56.83717295,
"lng": 60.59761920,
"radius": 150
},
"label": "Name",
"description": "Description example",
"from": "2020-02-03 04:05:06",
"to": "2020-03-04 05:06:07"
}
• tracker_id - int. Optional. if the field specified then the task will be assigned to
the employee associated with the tracker, otherwise it won't be assigned to
anybody.
• from - string date/time. Start date of the interval - when the specified location has
to be visited (in the user's time zone).
• to - string date/time. End date of the interval - when the specified location has to
be visited (in the user's time zone).
example
cURL
task/create call returns the identifier of the created task. A returned object also can
include "external_id_counts" field see task/route/create method description.
response
{
"success": true,
"id": 111,
"external_id_counts": [{
"external_id": "456",
"count": 2
}]
}
Note: The "id" parameter is unique, it is automatically generated by the server when you
create a task. Therefore, if you call task/create two times with the same parameters,
every time the new task will be created. These two tasks will differ only by an id.
Respectively, if the created task has to be connected to a certain record in external
system, you have to remember the id of this record to use it in future when you want to
change/delete the associated task in our system.
errors
Skip to content
• 201 – Not found in the database (if task.tracker_id is not null and belongs to
nonexistent tracker).
• 236 – Feature unavailable due to tariff restrictions (if device's tariff does not allow
usage of tasks).
delete
parameters
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/task/delete?
hash=a6aa75587e5c59c32d347da438505fc3&task_id=23144
response
{ "success": true }
errors
• 201 – Not found in the database (if there is no task with such an id).
list
statuses Optional. Default all. List of task statuses, e.g. array of string
["unassigned","failed"] .
from Optional. Show tasks which are actual AFTER string date/time
this date, e.g. "2020-07-01 00:00:00".
Skip to content
Name Type Comment
id number
employee number id
status string
label string
to string date/time?
stay_duration Seconds
description string
external_id string?
If external_id, trackers, filters, from, to or tag_ids is not passed or null then appropriate
condition not used to filter results.
If offset or limit is null then restrictions for pagination will not be applied.
SORT: STRING[]?
set of sort options. Each option is a pair of column name and sorting direction, e.g.
["label=acs", "address=desc", "employee=desc"].
SORT FIELDS
Skip to content
Name Type Comment
id number
status string
label string
to string date/time?
stay_duration Seconds
description string
external_id string?
If external_id, trackers, filters, from, to or tag_ids is not passed or null then appropriate
condition not used to filter results.
cURL
HTTP GET
https://api.navixy.com/v2/fsm/task/list?
hash=a6aa75587e5c59c32d347da438505fc3
response
Skip to content
{
"success": true,
"list": [{
"id": 111,
"user_id": 3,
"tracker_id": 22,
"location": {
"lat": 56.5,
"lng": 60.5,
"address": "Schulhof 2, Wien, Austria",
"radius": 150
},
"label": "Name",
"description": "Description example",
"creation_date": "2014-01-02 03:04:05",
"from": "2020-02-03 04:05:06",
"to": "2020-03-04 05:06:07",
"external_id": "01234567",
"status": "assigned",
"status_change_date": "2020-01-02 03:04:05",
"max_delay": 5,
"min_stay_duration": 0,
"arrival_date": "2020-01-02 03:04:05",
"stay_duration": 10,
"origin": "manual",
"type": "task"
}],
"count": 1
}
• from - string date/time. Start date of the interval - when the specified location
has to be visited (in the user's time zone).
• to - string date/time. End date of the interval - when the specified location has
to be visited (in the user's time zone).
• external_id - string. Text field for tracking of communication of the task with
Skip to content
certain external systems (for example, number of the order). Is for reference
only.
• status - string enum. Current status of a task, can have "unassigned" value
(unassigned to any executor), "assigned", "done", "failed", "delayed", "arrived"
(arrived to geofence but haven't done the task), "faulty" (with problems).
• max_delay - int. The maximum time delay of the execution of the task, in
minutes.
• min_stay_duration - int. The minimum stay time in the area of the task in
which the task has to be done, in minutes.
• arrival_date - string date/time. Date and time of arrival in the area of the
task. Can be null. If the executor has not visited it yet.
errors
read
parameters
HTTP GET
https://api.navixy.com/v2/fsm/task/read?
hash=a6aa75587e5c59c32d347da438505fc3&task_id=23144
response
{
"success": true,
"value": <task, checkpoint or route>,
"checkpoints": [
<checkpoint1>,
<checkpoint2>
]
errors
• 201 – Not found in the database (if there is no task with such an id).
transmute
parameters
order int
name description type
Skip to content
Zero-based index at which checkpoint should be inserted into
route.
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/task/transmute?
hash=a6aa75587e5c59c32d347da438505fc3&task_id=23144&route_id=12334&order=0
response
{ "success": true }
errors
• 201 – Not found in the database (if there is no task or route with such an id, or
tracker to which checkpoint assigned is unavailable to current sub-user).
• 255 – Invalid task state (if task or any of the checkpoints are not in unassigned or
assigned state).
update
Updates existing task. Note that you cannot change task owner using this method.
parameters
example
cURL
response
{
"success": true,
"external_id_counts": [{
"external_id": "456",
"count": 2
}]
}
errors
• 201 – Not found in the database (if there is no task with such an id).
• 255 – Invalid task state (if current task state is not "unassigned" or "assigned").
Routes basically named and ordered set of checkpoints. Each checkpoint is essentially
a task with an additional link to the parent route.
Route completed if all the checkpoints completed and visited in the specified order.
Otherwise, it is considered completed with warnings or failed.
Route object
{
"id": 111,
"user_id": 3,
"tracker_id": 222653,
"label": "Deliver parcels",
"description": "Quickly",
"creation_date": "2014-01-02 03:04:05",
"from": "2014-02-03 04:05:06",
"to": "2014-03-04 05:06:07",
"external_id": null,
"status": "assigned",
"status_change_date": "2014-01-02 03:04:05",
"origin": "imported",
"tags": [1, 2],
"checkpoint_ids": [2977,2978],
"type": "route"
}
• from - string date/time. Date AFTER which first checkpoint zone must be visited,
depends on first checkpoint from , IGNORED in route/create, route/update.
• to - string date/time. Date BEFORE which last checkpoint zone must be visited,
depends on last checkpoint to , IGNORED in route/create, route/update.
• external_id - string. Used if route imported from external system. arbitrary text
string. Can be null.
API actions
API base path: /task/route
assign
parameters
tracker_id ID of the tracker. Tracker must belong to authorized user and int
not be blocked. If null, task will be assigned to none.
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/task/route/assign?
hash=a6aa75587e5c59c32d347da438505fc3&route_id=11231&tracker_id=223465
response
{
"success": true
}
errors
Skip to content
• 201 – Not found in the database (if there is no task with such an id).
• 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).
• 255 – Invalid task state (if current task state is not "unassigned" or "assigned").
• 236 – Feature unavailable due to tariff restrictions (if device's tariff does not allow
usage of tasks).
create
Creates new route. One of checkpoints can have id (in this case it must be a task) - it
will be transmuted from task to checkpoint.
parameters
{
"tracker_id": 223652,
"label": "Name",
"description": "Description example"
}
Also, need checkpoints list in order of execution, checkpoints from and to must be
Skip to with
agreed content
each other i.e. checkpoint to cannot be before 'from' of preceding items.
{
"tracker_id": 223652,
"location": {
"lat": 56.83717295,
"lng": 60.59761920,
"radius": 150
},
"label": "Name",
"description": "Description example",
"from": "2014-02-03 04:05:06",
"to": "2014-03-04 05:06:07"
}
• tracker_id - int. Optional. If the field specified then the task will be assigned to
the employee associated with the tracker, otherwise it won't be assigned to
anybody.
• from - string date/time. Start date of the interval - when the specified location has
to be visited (in the user's time zone).
• to - string date/time. End date of the interval - when the specified location has to
be visited (in the user's time zone).
example
cURL
"success": true,
"result": {
"id": 111,
"user_id": 3,
"tracker_id": 22,
"label": "Deliver parcels",
"description": "Quickly",
"creation_date": "2014-01-02 03:04:05",
"from": "2014-02-03 04:05:06",
"to": "2014-03-04 05:06:07",
"external_id": null,
"status": "assigned",
"status_change_date": "2014-01-02 03:04:05",
"origin": "manual",
"checkpoint_ids": [2977,2978],
"type": "route"
},
"external_id_counts": [{external_id: "456", count: 2}]
}
errors
• 201 – Not found in the database (if task.tracker_id is not null and belongs to
nonexistent tracker).
• 236 – Feature unavailable due to tariff restrictions (if device's tariff does not allow
usage of tasks).
delete
parameters
HTTP GET
https://api.navixy.com/v2/fsm/task/route/delete?
hash=a6aa75587e5c59c32d347da438505fc3&route_id=23144
response
{
"success": true
}
errors
• 201 – Not found in the database (if there is no route with such an id).
list
parameters
from Optional. Show tasks which are actual AFTER this date, string
e.g. "2020-06-01 00:00:00". date/
time
to Optional. Show tasks which are actual BEFORE this date, string
e.g. "2020-07-01 00:00:00". date/
time
name description type
Skip to content
filter Optional. Filter for task label and description. If trackers, string
filter, from or to is not passed or null then appropriate
condition not used to filter results.
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/task/route/list?
hash=a6aa75587e5c59c32d347da438505fc3
response
{
"success": true,
"list": [{
"id": 111,
"user_id": 3,
"tracker_id": 222653,
"label": "Deliver parcels",
"description": "Quickly",
"creation_date": "2014-01-02 03:04:05",
"from": "2014-02-03 04:05:06",
"to": "2014-03-04 05:06:07",
"external_id": null,
"status": "assigned",
"status_change_date": "2014-01-02 03:04:05",
"origin": "imported",
"tags": [1, 2],
"checkpoint_ids": [2977,2978],
"type": "route"
}]
}
errors
read
response
{
"success": true,
"value": {
"id": 111,
"user_id": 3,
"tracker_id": 222653,
"label": "Deliver parcels",
"description": "Quickly",
"creation_date": "2014-01-02 03:04:05",
"from": "2014-02-03 04:05:06",
"to": "2014-03-04 05:06:07",
"external_id": null,
"status": "assigned",
"status_change_date": "2014-01-02 03:04:05",
"origin": "imported",
"tags": [1, 2],
"checkpoint_ids": [2977,2978],
"type": "route"
}
}
errors
• 201 – Not found in the database (if there is no route with such an id).
update
Updates existing route. Note that you cannot change task owner using this method.
Reordering checkpoint IDs in the checkpoint_ids array changes order of execution.
parameters
response
{
"success": true,
"result": {
"id": 111,
"user_id": 3,
"tracker_id": 22,
"label": "Deliver parcels",
"description": "Quickly",
"creation_date": "2014-01-02 03:04:05",
"from": "2014-02-03 04:05:06",
"to": "2014-03-04 05:06:07",
"external_id": null,
"status": "assigned",
"status_change_date": "2014-01-02 03:04:05",
"origin": "manual",
"checkpoint_ids": [2977,2978],
"type": "route"
}
}
errors
• 201 – Not found in the database (if there is no task with such an id).
• 255 – Invalid task state (if current task state is not "unassigned" or "assigned").
Last update: November 25, 2020
Skip to content
Skip to content
Optimizing
Skip to content
routes
To minimize transit time and costs, it may be beneficial to reorder route checkpoints so
total travel time between them is minimal. Our platform provides a way to perform such
optimisation. You don't even need to create route and checkpoints, you just provide data
required to optimize and algorithm returns order in which points should be visited.
API actions
API path: /task/route/points/optimize .
optimize
Suggest optimal order for given route points. Suggested order will correspond to route
points time windows: points with earlier time windows will have lower ordinal numbers.
If time windows overlaps each other, such points can have any order due to maximize
summary efficiency of the route.
parameters
[
{"location": {"lat": 11.111, "lng": 11.111}, "from": "2019-04-05
13:45:00", "to": "2019-04-05 14:00:00"},
{"location": {"lat": 22.222, "lng": -2.222}, "from": "2019-04-05
13:45:00", "to": "2019-04-05 14:00:00"},
{"location": {"lat": -3.333, "lng": 33.333}, "from": "2019-04-05
15:45:00", "to": "2019-04-05 16:00:00"},
{"location": {"lat": -4.444, "lng": -4.444}, "from": "2019-04-05
16:45:00", "to": "2019-04-05 17:00:00"},
{"location": {"lat": 55.555, "lng": 55.555}, "from": "2019-04-05
18:45:00", "to": "2019-04-05 19:00:00"}
]
response
{
Skip"success":
to content true,
"result": [2, 0, 1]
}
[
{route_point_0}, // index in list = 0
{route_point_1}, // index in list = 1
{route_point_2} // index in list = 2
]
errors
• 7 - Invalid parameters.
Every route consists of checkpoints. Using these actions, you can manipulate
checkpoints individually.
Checkpoint object
{
"id": 111,
"user_id": 3,
"tracker_id": 22,
"location": {
"lat": 56.5,
"lng": 60.5,
"address": "Fichtenstrasse 11",
"radius": 150
},
"label": "Deliver parcels",
"description": "Quickly",
"creation_date": "2014-01-02 03:04:05",
"from": "2014-02-03 04:05:06",
"to": "2014-03-04 05:06:07",
"external_id": null,
"status": "assigned",
"status_change_date": "2014-01-02 03:04:05",
"max_delay" : 5,
"min_stay_duration": 0,
"arrival_date": "2014-01-02 03:04:05",
"stay_duration": 0,
"origin": "imported",
"tags": [1, 2],
"type": "checkpoint",
"form": <form_object>
}
• tracker_id - int. An id of the tracker to which task assigned. Can be null. IGNORED
in checkpoint/update.
• external_id - int. Used if task imported from external system. Arbitrary text string.
Can be null.
• arrival_date - string date/time. Wen tracker has arrived to the checkpoint zone.
IGNORED in checkpoint/create, checkpoint/update.
API actions
API base path: /task/checkpoint .
create
parameters
response
Inserts the specified checkpoint at the specified position ( order ) in the parent route
checkpoints list. Shifts the checkpoint currently at that position (if any) and any
subsequent checkpoints to the right (adds one to their orders).
Call returns the identifier of the created task in the form of JSON. The returned object
also can include "external_id_counts" field see task/route/create method description.
{
"success": true,
"id": 222,
"external_id_counts": [{
"external_id": "456",
"count": 2
}]
}
errors
• 201 – Not found in the database (if task.tracker_id is not null and belongs to
nonexistent tracker).
• 236 – Feature unavailable due to tariff restrictions (if device's tariff does not allow
usage of tasks).
delete
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/task/checkpoint/delete?
hash=a6aa75587e5c59c32d347da438505fc3&checkpoint_id=23144
response
{ "success": true }
errors
• 201 – Not found in the database (if there is no checkpoint with such an id).
list
parameters
HTTP GET
https://api.navixy.com/v2/fsm/task/checkpoint/list?
hash=a6aa75587e5c59c32d347da438505fc3&checkpoint_ids=[1,2]
response
{
"success": true,
"list": [{
"id": 111,
"user_id": 3,
"tracker_id": 22,
"location": {
"lat": 56.5,
"lng": 60.5,
"address": "Fichtenstrasse 11",
"radius": 150
},
"label": "Deliver parcels",
"description": "Quickly",
"creation_date": "2014-01-02 03:04:05",
"from": "2014-02-03 04:05:06",
"to": "2014-03-04 05:06:07",
"external_id": null,
"status": "assigned",
"status_change_date": "2014-01-02 03:04:05",
"max_delay" : 5,
"min_stay_duration": 0,
"arrival_date": "2014-01-02 03:04:05",
"stay_duration": 0,
"origin": "imported",
"tags": [1, 2],
"type": "checkpoint"
}]
}
errors
read
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/task/checkpoint/read?
hash=a6aa75587e5c59c32d347da438505fc3&checkpoint_id=111
response
{
"success": true,
"value": {
"id": 111,
"user_id": 3,
"tracker_id": 22,
"location": {
"lat": 56.5,
"lng": 60.5,
"address": "Fichtenstrasse 11",
"radius": 150
},
"label": "Deliver parcels",
"description": "Quickly",
"creation_date": "2014-01-02 03:04:05",
"from": "2014-02-03 04:05:06",
"to": "2014-03-04 05:06:07",
"external_id": null,
"status": "assigned",
"status_change_date": "2014-01-02 03:04:05",
"max_delay" : 5,
"min_stay_duration": 0,
"arrival_date": "2014-01-02 03:04:05",
"stay_duration": 0,
"origin": "imported",
"tags": [1, 2],
"type": "checkpoint",
"form": <form_object>
}
}
Skip to content
errors
• 201 – Not found in the database (if there is no checkpoint with such an id).
transmute
Convert route checkpoint into a standalone task. If it's the only checkpoint in the route,
the route deleted.
parameters
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/task/checkpoint/transmute?
hash=a6aa75587e5c59c32d347da438505fc3&checkpoint_id=111
response
{
"success": true
}
errors
• 201 – Not found in the database (if there is no checkpoint with such an id, or
tracker to which checkpoint assigned is unavailable to current sub-user).
• 255 – Invalid task state (if any of checkpoints are not in unassigned or assigned
Skipstate).
to content
update
parameters
example
cURL
response
{
"success": true,
"external_id_counts": [{
"external_id": "456",
"count": 2
}]
}
errors
• 201 – Not found in the database (if there is no task with such an id).
• 255 – Invalid task state (if current task state is not "unassigned" or "assigned").
Skip to content
Forms can be attached to tasks to be filled by field employees using Mobile Tracker App
(Android / iOS). This document describes API actions specific to working with task
forms (except task/form/list which can return all kinds of forms).
For <form_field> and <form_value> object description, see form fields and values.
API actions
API path: /task/form .
create
Attaches new form to the existing task or checkpoint. Form always created on the basis
of form template.
parameters
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/task/form/create?
hash=a6aa75587e5c59c32d347da438505fc3&task_id=11231&template_id=12548
response
Skip to content
{
"success": true
}
errors
• 201 – Not found in the database (if there is no task or template with such an id, or
task has the "route" type).
• 247 – Entity already exists (if task already has form attached to it).
• 255 – Invalid task state (if current task state is not "unassigned", "assigned" or
"arrived").
delete
parameters
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/task/form/delete?
hash=a6aa75587e5c59c32d347da438505fc3&task_id=11231
response
{
"success": true
}
errors
Skip to content
• 201 – Not found in the database (if there is no task with such an id, or task has the
"route" type, or it has no form attached).
• 255 – Invalid task state (if current task state is not "unassigned", "assigned" or
"arrived").
download
parameters
format Format of the download file. Can be "xls", "csv" or "pdf". string enum
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/task/form/download?
hash=a6aa75587e5c59c32d347da438505fc3&task_id=11231&format=pdf
response
errors
• 201 – Not found in the database (if task does not exist or does not have attached
form).
list
• task_ids (list of integers, optional). Maximum size of list is 500 elements. List of
task ids. The returned list will contain forms, related to tasks, which ids specified in
this parameter.
warning: at least one of form_template_id and task_ids parameters must be not
null.
• order_by (optional, default = submitted). Data field for list sorting. Available values:
• task_id
• created
• submitted
• task_address
• submit_address
• employee_full_name
• vehicle_label
• tracker_label
• task_label
• task_creation_date
• task_from
• task_to
• task_arrival_date
• task_completion_date
• form_label
• form_description
• filters (object, optional). Specifies the criteria for filtering the list based on the
values of the data fields. Conditions are combined by logical AND.\ Filters object
contains following optional elements:
{
"employee_full_name": , // a sequence of characters for
partial matching (against the name of the associated employee)
"form_description": ,
Skip to content
"form_label": ,
"submit_address": ,
"task_id": // strict match
"task_address": ,
"task_label": ,
"tracker_label": ,
"vehicle_label": ,
}
{
"from": "2020-02-03 03:00:00", // string <date/time>
"to": "2020-02-03 08:00:00" // string <date/time>
}
• offset, limit (integers, optional). Specify which subset of elements from all
matching results will be included in the returned list.
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/task/form/list?
hash=a6aa75587e5c59c32d347da438505fc3&ascending=true&include_unsubmitted=true
response
{
"success": true,
"count": 2,
"list": [{
"employee": {
"id": 13,
"first_name": "John",
"middle_name": "",
Skip to content
"last_name": "Dow"
},
"task": {
"id": 7867,
"label": "My task 3",
"from": "2017-07-27 15:00:00",
"to": "2017-07-28 14:59:59",
"creation_date": "2017-07-27 12:12:23",
"arrival_date": "2017-07-27 15:14:07",
"address": "Moltkestrasse 32",
"status": "done",
"completion_date": "2017-07-28 14:36:28",
"fact_duration": "PT22M21S"
},
"tracker": {
"id": 15620,
"label": "Navixy A6"
},
"vehicle": null,
"form": {
"id": 1012,
"label": "A form",
"description": "",
"fields": [],
"created": "2017-07-28 03:48:06",
"submit_in_zone": false,
"task_id": 7867,
"template_id": 449,
"values": null,
"submitted": "2017-03-21 18:40:54",
"submit_location": {
"lat": 26.826762,
"lng": 20.5947311,
"address": "Partizan st., 4"
}
},
"submit_places": {
"location": {
"lat": 26.826762,
"lng": 20.5947311,
"address": "Partizan st., 4"
},
"places": [{
"id": 38,
"label": "Office sweet office"
}],
"zones": [{
"id": 18404,
"label": "Zone 51"
}]
}
}
]}
Skip to content
• zones - list of zones associated with zone submission location. Can be empty.
errors
• 204 – Not found (if there is no form template with such id belonging to authorized
user).
read
parameters
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/task/form/read?
hash=a6aa75587e5c59c32d347da438505fc3&task_id=12546
response
{
"success": true,
"value" : <form>,
"files" : [
{
Skip to content
"id": 16,
"storage_id": 1,
"user_id": 12203,
"type": "image",
"created": "2020-09-06 11:54:28",
"uploaded": "2020-09-06 11:55:14",
"name": "lala.jpg",
"size": 72594,
"mime_type": "image/png",
"metadata": {
"orientation": 1
},
"state": "uploaded",
"download_url": "https://static.navixy.com/file/dl/
1/0/1g/01gw2j5q7nm4r92dytolzd6koxy9e38v.png/lala.jpg",
"bindings": {
"form_field": {
"form_id": 40,
"field_id": "2222",
"submitted": false
}
},
"previews": [
{
"download_url": "https://localhost:8084/file/
preview/1/0/1g/01gw2j5q7nm4r92dytolzd6koxy9e38v.png/lala.jpg"
}
]
}
]
}
• files - list of files, both submitted and unsibmitted, associated with this form's
fields.
• uploaded - string date/time. Date when file uploaded, can be null if file not yet
uploaded.
• size - int. Size in bytes. If file not uploaded, show maximum allowed size for
the upload.
• previews - available preview images for the file. Can be null or empty for any
file in any state.
errors
• 201 – Not found in the database (if there is no task with such an id, or task
assigned to tracker unavailable to current sub-user).
Task form values can be submitted using web API only if there was a submission using
Mobile Tracker App (Android / iOS). The use case is to "fix" incorrectly filled data. This
action not intended to fill empty form from scratch.
API actions
API path: /task/form/values .
update
PARAMETERS
{
"text1": {
"type": "text",
"value": "text field value"
}
}
response
{
"success": true
}
errors
• 101 – In demo mode this function disabled (if current user has "demo" flag).
• 201 – Not found in the database (if task with the specified id does not exist).
• 255 – Invalid task state (if task has already done or failed or no values submitted).
• 242 – There were errors during content validation (if given values are invalid for the
form). Example:
{
"success": false,
"status": {
"code": 242,
"description": "There were errors during content
validation"
},
"errors": [
{
"field_id": "111-aaa-whatever",
"code": 5,
"error": "text length constraints are not met"
}
]
}
When submitting form values of type file, photo or signature, you need to provide file id.
To obtain it, first you create a file entry, then upload a file using provided credentials.
File must adhere to limitations specified in the form field. Note that each file consumes
space and contributes to file storage limit associated with user's account.
API actions
API path: /task/form/file .
create
Creates a new file entry associated with form's field. By making this call you basically
"request permission" to upload a file. In return, you are provided with upload credentials
(url, form fields, etc.).
Note that in order to actually "include" file as form field's value, creating and uploading
file is not enough. You must then submit a form with file id as a value of corresponding
form field.
If file created but not uploaded, it will be deleted after date/time specified in "expires"
response field. If file uploaded but not included as form field's value, it will be deleted
on next form submission.
parameters
size Maximum size in bytes for the file which will be uploaded. int
This is needed to "reserve" the space for a file in user's
disk space quota.
name description type
Skip to content
filename Optional. If specified, uploaded file will have the specified string
name. If not, name will be taken from actual file upload
form.
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/task/form/file?
hash=a6aa75587e5c59c32d347da438505fc3&task_id=11231&field_id=file1&size=10
response
{
"success": true,
"value": {
"file_id": 111,
"url": "http://bla.org/bla",
"expires": "2020-02-03 03:04:00",
"file_field_name": "file1",
"fields": {
"token": "a43f43ed4340b86c808ac"
}
}
}
• url - string. An url to which POST form-data with file contents should be executed.
• expires - string date/time. After this date file record wil expire and upload
requests will be rejected.
------WebKitFormBoundaryePkpFF7tjBAqx29L
Content-Disposition: form-data; name="token"
a43f43ed4340b86c808ac
------WebKitFormBoundaryePkpFF7tjBAqx29L
Content-Disposition: form-data; name="file";
filename="actual_file_name.png"
Content-Type: image/png
errors
• 201 – Not found in the database (if there is no task with such an id, or task doesn't
have form, or form has no field with such a field_id).
• 231 – Entity type mismatch (if form field is not file-based, i.e. doesn't use file id as
its value).
• 255 – Invalid task state (if current task state is not "unassigned", "assigned" or
"arrived", or if task's form not submitted at least once).
• 267 – Too many entities (if there 6 or more unsubmitted files already associated
with this form's field).
• 271 - File size is larger than the maximum allowed (by default 16 MB).
Some tasks happen on regular basis, and it's tedious to create them by hand every time.
Task schedules is the way to automate this process. At the beginning of each day
(moments after 00:00 AM according to user's timezone setting), schedule checked and
if there are tasks which start at this day, they are created and assigned to employees (if
assignee specified).
Schedule entries are very similar to tasks, main difference is that from and to
containing specific date and time replaced with from_time , duration and
parameters .
{
"id": 111,
"user_id": 3,
"tracker_id": 22,
"location": {
"lat": 56.5,
"lng": 60.5,
"address": "Moltkestrasse 32",
"radius": 150
},
"label": "Shop",
"description": "Buy things",
"from_time": "12:34:00",
"duration": 60,
"max_delay" : 5,
"min_stay_duration": 0,
"min_arrival_duration": 0,
"parameters": {
"type": "weekdays",
"weekdays": [1, 5, 6]
},
"tags": [1, 2],
"form_template_id": 1
}
• duration - int. Total duration in minutes between "from" and "to" for generated
tasks.
• min_arrival_duration - int. Visits less than these values will be ignored, minutes.
```json
{
"id": 111,
"user_id": 3,
"tracker_id": 22,
"label": "Shop",
"description": "Buy things",
"parent_id": 1,
"order": 0,
"location": {
"lat": 56.5,
"lng": 60.5,
"address": "Moltkestrasse 32",
"radius": 150
},
"max_delay" : 5,
"min_stay_duration": 0,
"min_arrival_duration": 0,
"from_time": "12:34:00",
Skip to content
"duration": 60,
"tags": [1, 2],
"form_template_id": 1
}
• min_arrival_duration - int. Visits less than these values will be ignored, minutes.
• from_time - string time. Time of day which defines start of the task within the
days.
• duration - int. Total duration in minutes between "from" and "to" for generated
tasks.
{
"type": "weekdays",
"weekdays": [1, 5, 6]
}
{
"type": "month_days",
"month_days": [1, 10, 31]
}
* `month_days` - array of int. Days of month on which tasks will
Skip
be to content(1..31).
created
API actions
API base path: task/schedule .
create
parameters
examples
cURL
response
{
"success": true,
"id": 111
}
• 208 – Device blocked (if tracker exists but was blocked due to tariff restrictions or
some other reason).
• 236 – Feature unavailable due to tariff restrictions (if device's tariff does not allow
usage of tasks).
delete
parameters
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/task/schedule/delete?
hash=a6aa75587e5c59c32d347da438505fc3&schedule_id=23144
response
{ "success": true }
errors
• 201 – Not found in the database (if there is no task schedule with such an id).
list
Skip to content
Get all task or route schedules belonging to user with optional filtering.
Also this call returns all unassigned task schedules.
parameters
filter Optional. Filter for task schedule label and description. string
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/task/schedule/list?
hash=a6aa75587e5c59c32d347da438505fc3
response
{
"success": true,
"list": [{
"id": 111,
"user_id": 3,
"tracker_id": 22,
"location": {
"lat": 56.5,
"lng": 60.5,
"address": "Moltkestrasse 32",
"radius": 150
},
"label": "Shop",
"description": "Buy things",
"from_time": "12:34:00",
"duration": 60,
"max_delay" : 5,
"min_stay_duration": 0,
"min_arrival_duration": 0,
"parameters": {
"type": "weekdays",
"weekdays": [1, 5, 6]
},
"tags": [1, 2],
Skip to content
"form_template_id": 1
}]
}
errors
read
parameters
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/task/schedule/read?
hash=a6aa75587e5c59c32d347da438505fc3&id=12314
response
{
"success": true,
"value": {
"id": 111,
"user_id": 3,
"tracker_id": 22,
"label": "Shop",
"description": "Buy things",
"parameters": {
"type": "weekdays",
"weekdays": [1, 5, 6]
}
},
"checkpoints": [{
"id": 111,
"user_id": 3,
"tracker_id": 22,
Skip to content
"label": "Shop",
"description": "Buy things",
"parent_id": 1,
"order": 0,
"location": {
"lat": 56.5,
"lng": 60.5,
"address": "Moltkestrasse 32",
"radius": 150
},
"max_delay" : 5,
"min_stay_duration": 0,
"min_arrival_duration": 0,
"from_time": "12:34:00",
"duration": 60,
"tags": [1, 2],
"form_template_id": 1
}]
}
• value - object.
• checkpoints - if value is .
errors
update
parameters
response
{
"success": true
}
errors
• 204 – Entity not found (if there is no task schedule with specified id).
• 208 – Device blocked (if tracker exists but was blocked due to tariff restrictions or
some other reason).
• 236 – Feature unavailable due to tariff restrictions (if device's tariff does not allow
usage of tasks).
API actions
API base path: /task/schedule/route .
create
parameters
example
cURL
response
{
"success": true,
"id": 111
}
Skip to content
delete
parameters
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/task/schedule/route/delete?
hash=a6aa75587e5c59c32d347da438505fc3&id=23144
response
{
"success": true
}
update
Updates route schedule with checkpoints. If checkpoint is being created, then it should
have no id. If checkpoint is being updated, then it should have an id. If old checkpoint is
not present in request, then it will be deleted.
parameters
route
name description type
Skip to content
Route schedule entry without fields which are JSON
IGNORED. object
example
cURL
response
{ "success": true }
These actions allow manipulating schedule checkpoint entries similarly to regular route
checkpoints.
API actions
API path: /task/schedule/checkpoint .
delete
parameters
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/task/schedule/checkpoint/delete?
hash=a6aa75587e5c59c32d347da438505fc3&checkpoint_id=11231
response
{ "success": true }
transmute
Skip to content
Transmutes a checkpoint to task and delete its route and other checkpoints in the
route.
parameters
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/task/schedule/checkpoint/transmute?
hash=a6aa75587e5c59c32d347da438505fc3&checkpoint_id=11231
response
{ "success": true }
Schedule proposals are "preview" of what tasks and routes will be created at the
specified date range.
API actions
API base path: /task/schedule/proposal .
list
parameters
trackers Optional. Ids of the trackers to which task is assigned. array of int
from Show tasks that will be created AFTER this date, e.g. string date/
"2014-07-01 00:00:00", should not before now time
to Show tasks will be created BEFORE this date, e.g. string date/
"2014-07-01 00:00:00", should not before from time
filter Optional. Filter for task schedule label and description. string
response
{
"success": true,
"list": [{
"id": 111,
"user_id": 3,
"tracker_id": 22,
"location": {
"lat": 56.5,
"lng": 60.5,
"address": "Fichtenstrasse 11",
"radius": 150
},
"label": "Deliver parcels",
"description": "Quickly",
"creation_date": "2014-01-02 03:04:05",
"from": "2014-02-03 04:05:06",
"to": "2014-03-04 05:06:07",
"external_id": null,
"status": "assigned",
"status_change_date": "2014-01-02 03:04:05",
"max_delay" : 5,
"min_stay_duration": 0,
"arrival_date": "2014-01-02 03:04:05",
"stay_duration": 0,
"origin": "imported",
"tags": [1, 2]
"type": "task",
"form": <form_object>
}]
}
errors
Our platform tracks changes to task fields and state for your convenience.
History entry
{
"id": 22,
"user_id": 3,
"task_id": 1,
"event_date": "2014-08-05 10:54:55",
"operation": "assign",
"payload": {
"tracker_id": 2470
}
}
API actions
API base path: task/history .
list
parameters
HTTP GET
https://api.navixy.com/v2/fsm/task/checkpoint/delete?
hash=a6aa75587e5c59c32d347da438505fc3&checkpoint_id=23144
response
{
"success": true,
"list": [{
"id": 22,
"user_id": 3,
"task_id": 1,
"event_date": "2014-08-05 10:54:55",
"operation": "assign",
"payload": {
"tracker_id": 2470
}
}]
}
errors
read
Gets the APN name/user/password and mobile operator for registered device by phone
number.
parameters
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/apn_settings/read?
hash=a6aa75587e5c59c32d347da438505fc3&phone=1234567890
response
{
"success": true,
"value": {
"name":"internet",
"user":"",
"password":"",
"operator_name":"Deutsche Telekom"
}
}
errors
read
Returns info sufficient for tracking certain task state, and the tracker assigned to it.
Search conducted only among tasks and checkpoints, which have start date less than
or equal now and have statuses: arrived, assigned or delayed. If multiple tasks or
checkpoints found, then return first task, otherwise checkpoint.
session types:
In addition to standard user session, this call supports special DELIVERY session type.
parameters
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/delivery/read?
hash=a6aa75587e5c59c32d347da438505fc3&external_id=259876
response
{
"success": true,
"user_id": 3,
"task" : {<task_object>},
"tracker" : {<tracker_object>},
"restrictions": {<restrictions_object>},
"first_name": "John",
"middle_name": "Micheel",
"last_name": "Johnson",
"vehicle_label": "Service car 002",
"estimated_time": 1122
}
Skip to content
• task - a task object, for more info see /task object structure.
• tracker - corresponding tracker object, for more info see tracker/ object structure.
• first_name - string. The first name of employee assigned to the task, or null if
missing.
• middle_name - string. The middle name of employee assigned to the task, or null if
missing.
• last_name - string. The last name of employee assigned to the task, or null if
missing.
errors
• 201 – Not found in the database (when there is no task or checkpoint with specified
conditions).
list
External_id can be repeated, so this request will return all matching delivery. Returns
info sufficient for tracking certain task state, and the tracker assigned to it. Search
conducted only among tasks and checkpoints, which have start date less than or equal
now and have statuses: arrived, assigned or delayed.
session types:
in addition to standard user session, this call supports special DELIVERY session type.
parameters
HTTP GET
https://api.navixy.com/v2/fsm/delivery/list?
hash=a6aa75587e5c59c32d347da438505fc3&external_id=259876
response
{
"success": true,
"list": [{
"task" : {
"id": 111,
"user_id": 3,
"tracker_id": 22,
"location": {
"lat": 56.5,
"lng": 60.5,
"address": "Fichtenstrasse 11",
"radius": 150
},
"label": "Deliver parcels",
"description": "Quickly",
"creation_date": "2014-01-02 03:04:05",
"from": "2014-02-03 04:05:06",
"to": "2014-03-04 05:06:07",
"external_id": null,
"status": "assigned",
"status_change_date": "2014-01-02 03:04:05",
"max_delay" : 5,
"min_stay_duration": 0,
"arrival_date": "2014-01-02 03:04:05",
"stay_duration": 0,
"origin": "imported",
"tags": [1, 2]
"type": "task",
},
"tracker" : {
"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",
Skip to content
"tariff_end_date": "2016-03-24",
"phone" : "+71234567890"
}
"tag_bindings": [{
"tag_id": 456789,
"ordinal": 4
}]
},
"first_name": "John",
"middle_name": "Micheel",
"last_name": "Johnson",
"vehicle_label": "Service car 002",
"estimated_time": 1122
}],
"user_id": 3,
"restrictions": {"restrictions_object":}
}
• task - a task object, for more info see /task object structure.
• tracker - corresponding tracker object, for more info see tracker/ object structure.
• first_name - string. The first name of employee assigned to the task, or null if
missing.
• middle_name - string. The middle name of employee assigned to the task, or null if
missing.
• last_name - string. The last name of employee assigned to the task, or null if
missing.
errors
• 201 – Not found in the database (when there is no task or checkpoint with specified
conditions).
Geocoder types
• google.
• yandex.
• progorod.
• osm.
• locationiq.
API actions
search_address
Performs a forward geocoding. Returns a list of locations matching the given address.
Items in the list sorted by relevance.
parameters
examples
cURL
response
{
"success": true,
"locations": [{
"lat": 56.26697,
"lng": 19.55436,
"address": "750 Avenue E,San Francisco",
"details": {
"country": "USA",
"province": "CA",
"locality": "San Francisco",
"street": "Avenue E",
"house": "750",
"postcode": "94130",
"bounds": {
"nw":{
"lat": 62.23621,
"lng": 58.56997
},
"se":{
Skip to content
"lat": 31.98753,
"lng": 42.23694
}
}
}
}]
}
• bounds - optional object, the bounding box which can fully contain the returned
result.
search_location
parameters
examples
cURL
response
{
"success": true,
"value": "750 Avenue E,San Francisco,CA 94130,USA",
"details": {
"country": "USA",
"province": "CA",
"locality": "San Francisco",
"street": "Avenue E",
"house": "750",
"postcode": "94130",
"bounds": {
"nw":{
"lat": 62.23621,
"lng": 58.56997
},
"se":{
"lat": 31.98753,
"lng": 42.23694
}
}
}
}
• bounds - optional object, the bounding box which can fully contain the returned
result.
{
"id": 123456,
"label": "test"
}
API actions
read
parameters
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/map_layer/read?
hash=a6aa75587e5c59c32d347da438505fc3&id=123456
response
Skip to content
Layer body with content-type: application/vnd.google-earth.kml+xml;
charset=utf-8 .
errors
• 201 (Not found in the database) – if there is no map layer with such ID belonging to
current user.
list
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/map_layer/listd?
hash=a6aa75587e5c59c32d347da438505fc3
response
{
"success": true,
"list": [{
"id": 123456,
"label": "test"
}]
}
errors
No specific errors.
upload
MUST be a POST multipart request (multipart/form-data), with one of the parts being a
KML file upload (with the name "file").
parameters
Skip to content
response
{
"success": true,
"id": 163
}
errors
• 268 (Over quota) – if the user's quota for map layers exceeded.
update
parameters
response
{ "success": true }
errors
Skip to content
• 201 (Not found in the database) – if there is no map layer with such ID belonging to
current user.
delete
parameters
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/map_layer/delete?
hash=a6aa75587e5c59c32d347da438505fc3&id=123456
response
{ "success": true }
errors
• 201 (Not found in the database) – if there is no map layer with such ID belonging to
current user.
{
"id": 123456,
"name": "protocol",
"has_login": true,
"has_password": false,
"fake_device_id_pattern": "id_pattern",
"required_login": true,
"required_password": false
}
Retranslator object
{
"id": 1,
"name": "Some server",
"protocol_id": 123456,
"address": "127.0.0.1",
"port": 15000,
"login": "login",
"password": "password",
"enabled": true
}
API actions
create
parameters
examples
cURL
response
{
"success": true,
"id": 123456
}
delete
parameters
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/retranslator/delete?
hash=a6aa75587e5c59c32d347da438505fc3&retranslator_id=123456
response
{ "success": true }
errors
list
HTTP GET
https://api.navixy.com/v2/fsm/retranslator/list?
hash=a6aa75587e5c59c32d347da438505fc3
response
{
"success": true,
"list": [{
"id": 1,
"name": "Some server",
"protocol_id": 123456,
"address": "127.0.0.1",
"port": 15000,
"login": "login",
"password": "password",
"enabled": true
}]
}
update
Updates retranslator parameters for the specified retranslator. Note that retranslator
must exist, and must belong to the current user.
examples
cURL
response
{ "success": true }
errors
• 201 (Not found in the database) – if retranslator with the specified ID cannot be
found or belongs to another user.
• 247 (Entity already exists) – if retranslator with this address, port and login already
exists.
protocols list
cURL
HTTP GET
https://api.navixy.com/v2/fsm/retranslator/protocol/list?
hash=a6aa75587e5c59c32d347da438505fc3
response
{
"success": true,
"list": [{
"id": 123456,
"name": "protocol",
Skip to content
"has_login": true,
"has_password": false,
"fake_device_id_pattern": "id_pattern",
"required_login": true,
"required_password": false
}]
}
get
parameters
provider_type Optional. If not specified, the default user provider string enum
is used. One of "progorod", or "google", "osrm".
examples
cURL
response
{
Skip to"success":
content true,
"distance": 2546,
"time": 194,
"list": [{"lat": 56.827001, "lng": 60.594296}, {"lat":
52.835601, "lng": 60.514721}],
"key_points": [{
"id": 123,
"lat": 56.827,
"lng": 60.594296
}]
}
errors
• 236 (Feature unavailable due to tariff restrictions) – if there is at least one tracker
without "routing" tariff feature.
get
parameters
examples
cURL
response
{
"success": true,
"distance": 13482,
"time": 844,
"list": [{"lat": 56.827001, "lng": 60.594296}, {"lat":
52.835601, "lng": 60.514721}],
"key_points": [{
"id": 123,
Skip to content
"lat": 56.827,
"lng": 60.594296,
"distance": 482,
"time": 144
}]
}
• distance - int. Length of full path from start in meters (0 for start point).
• time - int. Duration of full path from start in seconds (0 for start point).
errors
{
"success": false,
"status": {
"code": 215,
"description": "External service error"
},
"errors": ["OVER_QUERY_LIMIT"]
}
236 (Feature unavailable due to tariff restrictions) – if there is at least one tracker
without "routing" tariff feature.
get
parameters
examples
cURL
response
{
"success": true,
"distance": 2546,
"time": 194,
"list": [{"lat": 56.827001, "lng": 60.594296}, {"lat":
52.835601, "lng": 60.514721}],
"key_points": [{
"id": 123,
Skip to content
"lat": 56.827,
"lng": 60.594296
}]
}
errors
{
"success": false,
"status": {
"code": 218,
"description": "Malformed external service parameters"
},
"errors": [
{
"status": "NOT_FOUND",
"status_code": 207,
"message": "Cannot find route between points"
}
]
}
get
parameters
Where location described in data types description section. Order of waypoints may be
changed.
response
{
Skip to"success":
content true,
"distance": 2546,
"time": 194,
"list": [{"lat": 56.827001, "lng": 60.594296}, {"lat":
52.835601, "lng": 60.514721}],
"key_points": [{
"id": 123,
"lat": 56.827,
"lng": 60.594296
}]
}
errors
{
"success": false,
"status": {
"code": 218,
"description": "Malformed external service parameters"
},
"errors": [{
"type": "malformed",
"point": "start",
"index": 3
}]
}
• type - string enum. Type of error. One of: "not_set", "malformed" and "isolated".
• point - string enum. Error point. One of: "start", "end", "waypoint" and "all".
• index - int. Passed only for a waypoint. Index of bad point in waypoints array.
Statuses used to track current activity for employees (in fact, of tracking devices owned
by employees). The simplest example is "busy" | "not busy". This is a status listing
consisting of two elements. Different trackers can be assigned different status lists.
{
"id": 5,
"label": "Busy",
"color": "E57373"
}
{
"id": 1,
"label": "Taxi driver statuses",
"employee_controlled": true,
"supervisor_controlled": false,
"entries": [ 5, 2, 1, 4, 6]
}
• entries - array of int. List of IDs of statuses which belong to this listing. Order
matters, and is preserved.
create
Skip to content
Creates new possible status for the specified status listing.
parameters
examples
cURL
response
{
"success": true,
"id": 111
}
errors
• 201 (Not found in the database) – if listing with the specified ID does not exist.
• 236 (Feature unavailable due to tariff restrictions) – if there are no trackers with
"statuses" tariff feature available.
delete
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/status/delete?
hash=a6aa75587e5c59c32d347da438505fc3&status_id=123
response
{ "success": true }
errors
• 201 (Not found in the database) – if status with the specified ID does not exist.
• 236 (Feature unavailable due to tariff restrictions) – if there are no trackers with
"statuses" tariff feature available.
list
parameters
HTTP GET
https://api.navixy.com/v2/fsm/status/list?
hash=a6aa75587e5c59c32d347da438505fc3&listing_id=12345
response
{
"success": true,
"list":[{
"id": 5,
"label": "Busy",
"color": "E57373"
},{
"id": 6,
"label": "Free",
"color": "A27373"
}]
}
errors
• 236 (Feature unavailable due to tariff restrictions) – if there are no trackers with
"statuses" tariff feature available.
update
parameters
response
{ "success": true }
errors
• 201 (Not found in the database) – if status with the specified ID does not exist.
• 236 (Feature unavailable due to tariff restrictions) – if there are no trackers with
"statuses" tariff feature available.
This resource contains methods to read and assign status of a particular tracker.
assign
parameters
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/status/tracker/assign?
hash=a6aa75587e5c59c32d347da438505fc3&tracker_id=123456&new_status_id=5
response
{
"success": true,
"last_change": {
"id": 11,
"old_status_id": null,
"new_status_id": 2,
"location": {
"lat": 11.0,
"lng": 22.0,
"address": "Jones st, 4"
Skip to content
},
"changed": "2015-11-22 02:02:02",
"origin": "supervisor"
}
}
errors
• 13 (Operation not permitted) – if status listing does not allow for a supervisor to
change status.
• 201 (Not found in the database) – if there is no tracker with such ID belonging to
authorized user.
• 204 (Entity not found) – if there is no listing assigned to this tracker containing with
such ID.
• 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.
• 236 (Feature unavailable due to tariff restrictions) – if there are no trackers with
"statuses" tariff feature available.
• 263 (No change needed, old and new values are the same) – if new status is equal
to current status of tracker.
list
examples
cURL
response
{
"success": true,
"value": {
"5344": {
"current_status": {
"id": 66,
"label": "Busy",
"color": "FFC107"
},
"last_change": {
"id": 441,
"old_status_id": 65,
"new_status_id": 66,
"location": {
"lat": 55.60920599,
"lng": 37.71843797,
"address": "Moscow, Orekhovyy Bul'var, 14a"
},
"changed": "2017-05-02 07:40:39",
"origin": "supervisor"
}
},
"15595": {
"current_status": null,
"last_change": {
"id": 123,
"old_status_id": 67,
"new_status_id": null,
"location": {
"lat": 56.8267226,
"lng": 60.5947458,
"address": ""
},
"changed": "2016-03-14 04:58:32",
"origin": "employee"
}
}
Skip to content
}
}
errors
• 221 (Device limit exceeded) – if device limit set for the user's dealer has been
exceeded.
• 236 (Feature unavailable due to tariff restrictions) – if there are no trackers with
"statuses" tariff feature available.
read
parameters
HTTP GET
https://api.navixy.com/v2/fsm/status/tracker/read?
hash=a6aa75587e5c59c32d347da438505fc3&tracker_id=123456
response
{
"success": true,
"current_status": {
"id": 2,
"label": "On duty",
"color": "FFFF99"
},
"last_change": {
"id": 11,
"old_status_id": null,
"new_status_id": 2,
"location": {
"lat": 11.0,
"lng": 22.0,
"address": "Jones st, 4"
},
"changed": "2015-11-22 02:02:02",
"origin": "supervisor"
}
}
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
Skipsome
to content
other reason.
• 219 (Not allowed for clones of the device) – if specified tracker is a clone.
• 236 (Feature unavailable due to tariff restrictions) – if there are no trackers with
"statuses" tariff feature available.
create
parameters
listing status_listing object without "id" and "entries" fields. JSON object
examples
cURL
response
{
"success": true,
"id": 111
}
errors
• 236 (Feature unavailable due to tariff restrictions) – if there are no trackers with
"statuses" tariff feature available.
parameters
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/status/listing/delete?
hash=a6aa75587e5c59c32d347da438505fc3&listing_id=12345
response
{ "success": true }
errors
• 201 (Not found in the database) – if listing with the specified ID does not exist.
• 236 (Feature unavailable due to tariff restrictions) – if there are no trackers with
"statuses" tariff feature available.
list
HTTP GET
https://api.navixy.com/v2/fsm/status/listing/list?
hash=a6aa75587e5c59c32d347da438505fc3
response
{
"success": true,
"list":[{
"id": 1,
"label": "Taxi driver statuses",
"employee_controlled": true,
"supervisor_controlled": false,
"entries": [ 5, 2, 1, 4, 6]
}]
}
errors
• 236 (Feature unavailable due to tariff restrictions) – if there are no trackers with
"statuses" tariff feature available.
update
parameters
listing status_listing object with "id" and "entries" fields. JSON object
examples
Skip to content
cURL
response
{ "success": true }
errors
• 201 (Not found in the database) – if status listing with the specified ID does not
exist.
• 236 (Feature unavailable due to tariff restrictions) – if there are no trackers with
"statuses" tariff feature available.
• 262 (Entries list is missing some entries or contains nonexistent entries) – if entries
does not contain full set of status IDs associated with this status listing, or if it
contains nonexistent status IDs.
Contains api calls which link together trackers and status listings.
assign
parameters
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/status/listing/tracker/assign?
hash=a6aa75587e5c59c32d347da438505fc3&tracker_id=123456&listing_id=12345
response
{ "success": true }
errors
• 201 (Not found in the database) – if there is no tracker with such ID belonging to
authorized user.
• 204 (Entity not found) – if there is no listing with such ID.
Skip to content
• 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.
• 236 (Feature unavailable due to tariff restrictions) – if there are no trackers with
"statuses" tariff feature available.
download
Downloads track points as KML/KMZ file for the specified track ID, tracker and time
period.
parameters
examples
cURL
response
KML/KMZ file or JSON response if requested time period exceeds limit specified in a
tracker's tariff:
{
"success": true,
"list": [],
"limit_exceeded": 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
Skipsome
to content
other reason.
• 211 (Requested time span is too big) – if interval between "from" and "to" is too big
(maximum value specified in API config).
list
Gets a list of track descriptions for the specified tracker and time period.
parameters
examples
cURL
response
{
"success": true,
"limit_exceeded": false,
"list": [{"track_info": }]
}
where is either , , or :
regular object:
{
"id": 123456
"start_date": "2020-09-23 03:39:44",
"start_address": "1255 6th Ave, New York, NY 10020, USA",
"max_speed": 62,
"end_date": "2020-09-23 06:39:44",
"end_address": "888 5th Ave, New York, NY 10021, USA",
"length": 5.5,
"points": 327,
"avg_speed": 49,
"event_count": 3,
Skip to content
"norm_fuel_consumed": 1.07,
"type": "regular",
"gsm_lbs": false
}
• start_date - string date/time. Track start date, in user's timezone e.g. "2011-06-18
03:39:44".
• end_date - string date/time. Track end date, in user's timezone e.g. "2011-06-18
05:18:36".
• type - string enum. Used to distinguish this track type from the others.
single_report object. Returned if device was creating reports in "interval" mode (e.g.
M7 tracker in interval mode):
{
"id": 123456,
"type": "single_report",
"start_date": "2020-09-24 03:39:44",
"start_address": "1255 6th Ave, New York, NY 10020, USA",
"avg_speed": 34,
"gsm_lbs": false,
"precision": 10
}
• type - string enum. Used to distinguish this track type from the others.
{
"start_date": "2020-09-24 03:39:44",
"start_address": "1255 6th Ave, New York, NY 10020, USA",
"max_speed": 62
"end_date": "2020-09-24 06:39:44",
"end_address": "888 5th Ave, New York, NY 10021, USA",
"length": 5.5,
"points": 327,
"avg_speed": 49,
"event_count": 3,
"norm_fuel_consumed": 1.07,
"type": "merged",
"gsm_lbs": false
}
• start_date - string date/time. Track start date, in user's timezone e.g. "2011-06-18
03:39:44".
• end_date - string date/time. Track end date, in user's timezone e.g. "2011-06-18
05:18:36".
• type - string enum. Used to distinguish this track type from the others.
{
"start_date": "2020-09-24 03:39:44",
"start_address": "1255 6th Ave, New York, NY 10020, USA",
"end_date": "2020-09-24 06:39:44",
Skip to content
"precision": 500,
"points": [{"lat": 56.829274,"lng": 60.597125}, {"lat":
56.829279,"lng": 60.597123}],
"type": "cluster",
"gsm_lbs": false
}
• start_date - string date/time. Track start date, in user's timezone e.g. "2011-06-18
03:39:44".
• end_date - string date/time. Track end date, in user's timezone e.g. "2011-06-18
05:18:36".
• type - string enum. Used to distinguish this track type from the others.
• gsm_lbs - optional boolean. GSM LBS flag, true if cluster contains only GSM LBS
points.
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.
• 211 (Requested time span is too big) – if interval between "from" and "to" is too big
(maximum value specified in API config).
read
Gets track points for the specified track ID, tracker and time period.
parameters
examples
cURL
response
{
Skip to"success":
content true,
"limit_exceeded": true,
"list": [
{
"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
}
]
}
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.
• 211 (Requested time span is too big) – if interval between "from" and "to" is too big
(maximum value specified in API config).
Last update: November 23, 2020
Skip to content
Skip to content
Waybill
Skip to content
download
Downloads a waybill report DOCX file for tracks of the specified tracker and time period.
parameters
examples
cURL
response
errors
• 236 (Feature unavailable due to tariff restrictions) – if one of the trackers has tariff
without "app_fleet" feature.
Skip update:
Last to content
October 1, 2020
Skip to content
Waybill settings
read
Get last waybill number. Waybill number saved when new waybill had downloaded. If it
had only digits, then it was incremented before saving.
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/track/waybill/settings/read?
hash=a6aa75587e5c59c32d347da438505fc3
response
{
"success": true,
"value": {
"number": "test123"
}
}
errors
• 201 (Not found in the database) – if user have never downloaded a waybill.
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.
{
"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
}]
}
• source - object.
• 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.
• 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
parameters
examples
cURL
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.
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/tracker/corrupt?
hash=a6aa75587e5c59c32d347da438505fc3&tracker_id=265489
response
{ "success": true }
errors
• 219 – Not allowed for clones of the device (if source tracker is clone itself).
delete
Deletes a tracker if it is "clone". Will not work if specified id of the original tracker.
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/tracker/delete?
hash=a6aa75587e5c59c32d347da438505fc3&tracker_id=265489
response
{ "success": true }
errors
• 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]
}
or
{
"success": false,
"status": {
"code": 203,
"description": "Delete entity associated with"
},
"vehicles": [11]
}
Skip to content
get_diagnostics
Gets last sensors and states values received from the device.
parameters
examples
cURL
HTTP GET
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"
Skip to content
},
"update_time": "2014-03-06 13:57:00"
}
• name - string of enum. Name of sensor's raw input. E.g. "can_fuel" (see below
list of values).
• value - float. Reading's value, measured in units from an eponymous field. E.g.
100.0.
List of available sensor's input names for the object sensor value :
• composite.
• input_status.
• fuel_level.
• fuel_frequency.
• fuel_temperature.
• obd_rpm.
• obd_fuel.
• obd_coolant_t.
• obd_intake_air_t.
• obd_throttle.
• obd_speed.
• obd_engine_load.
• board_voltage.
• can_engine_temp.
• can_engine_hours.
• can_mileage.
• can_throttle.
• can_consumption.
• can_rpm.
• can_speed.
• can_r_prefix.
• can_coolant_t.
• can_intake_air_t.
• can_engine_load.
• can_adblue_level.
• temp_sensor.
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
parameters
examples
cURL
HTTP GET
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"
Skip to content
}
• inputs - array of last readings of fuel-related sensors. Items are objects of the
same type as used in 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_inputs
Gets current state of tracker's digital inputs and "semantic" inputs (ignition, buttons, car
alarms, etc.) bound to them (if any).
parameters
examples
cURL
HTTP GET
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": [
Skip to content
{
"type": "ignition",
"name": "DIN1",
"status": true,
"input_number": 1
}
],
"update_time": "2014-03-06 13:57:00"
}
• 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.
• 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.
• ignition - Car's ignition. There can be only one sensor of this type.
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
Skip to content
Gets last values of the tracker's counters.
parameters
examples
cURL
HTTP GET
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"
}
]
• type - string of enum. One of predefined semantic counter types (see below).
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
examples
cURL
HTTP GET
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",
Skip to content
"address": "4B Albany Road, Manchester, Great Britain",
"heading": 298,
"speed": 70,
"precision": 100,
"gsm_lbs": true,
"parking": true
}
}
• address - string. Point address. "" if no address recorded for the point.
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
• metering.
examples
cURL
HTTP GET
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
}]
}
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
Skip to content
Gets current tracker state (gps, gsm, outputs, etc.).
examples
cURL
HTTP GET
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],
Skip to content
"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"
}
}
}
}
• signal_level - int. GPS signal level in percent, e.g. 25, or null if device cannot
provide such info.
• 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.
• 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
Skiportonull
content
if there are no updates.
• battery_level - int. Battery level in percent, e.g. 25, or null if device cannot
provide such info.
• 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.
• 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.
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
examples
cURL
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",
Skip to content
"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]
}
• states - object. A map containing state object for requested trackers. See state
object description in tracker/get_state response.
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
parameters
HTTP GET
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": [],
Skip to content
"has_led_control": false,
"has_location_request": true,
"has_gsm_lbs_location_request": true,
"has_chat": false,
"check_bundle": false,
"has_odometer": true
}
• low_charge - float. Charge level for the "low battery" rule triggers.
• has_lbs - boolean. Does the tracker send information about cell info.
Id type:
An id type used to determine the information needed to register device in our system
(see tracker/register).
• 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
list
parameters
• No null items.
• No duplicate items.
• Item length: minimum 1, maximum 60.
Skip to content
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
HTTP GET
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
}]
}]
}
errors
parameters
examples
cURL
response
{ "success": true }
errors
location_request
Execute this command to get current position of the device. The device must support
requesting function.
parameters
Skip to content
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 or GPS not updated
status.
• gprs – GNSS data via GPRS. Device must have online or GPS not updated status.
examples
cURL
HTTP GET
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).
parameters
examples
cURL
HTTP GET
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,
Skip to content
"status_listing_id": null,
"creation_date": "2011-09-21",
"tariff_end_date": "2016-03-24",
"phone" : "+71234567890"
},
"tag_bindings": [{
"tag_id": 456789,
"ordinal": 4
}]
}
}
errors
• 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).
• 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.
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/tracker/register_retry?
hash=a6aa75587e5c59c32d347da438505fc3&tracker_id=999119&apn_name=fast.tmobile.com&apn_user=
response
{
"success": true,
"value": {
"id": 123456,
"label": "tracker label",
"clone": false,
"group_id": 167,
"avatar_file_name" : "file name",
Skip to content
"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
}]
}
}
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).
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.
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.
examples
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
Skip to content
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"}'
HTTP GET
https://api.navixy.com/v2/fsm/tracker/register?
hash=a6aa75587e5c59c32d347da438505fc3&label=Courier&group_id=0&plugin_id=37&model=qlgv55lit
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
}]
}
}
errors
• 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
Skipmodel).
to content
• 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
{
"command": {
"name": "command name",
"some_parameter1": 12,
"some_parameter2": "parameter",
"special_settings": {
"type": "settings type",
"some_field1": 10,
"some_field2": 32
}
}
}
Certain commands which can be used is defined with special_control field of tracker
model and corresponds the table below:
special control available commands
Skip to content
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
command types
electronic_lock_command
{
"name": "electronic_lock_command",
"command_code": "unseal",
"special_settings": {<special settings JSON object>}
}
{
"name": "set_special_settings_command",
"special_settings": {<special settings JSON object>}
}
parameters
command Command that will be sent to device. Not JSON See format
Null. object above
examples
cURL
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
}]
}]
}
errors
read
parameters
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/tracker/alarm_mode/read?
tracker_id=123456&hash=a6aa75587e5c59c32d347da438505fc3
response
{
"success": true,
"enabled": 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).
• 214 – Requested operation or parameters are not supported by the device (if device
Skipdoes
to content
not support alarm mode).
set
Changes the state of alarm mode of device. The device must be online.
parameters
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/tracker/alarm_mode/set?
tracker_id=123456&enabled=true&hash=a6aa75587e5c59c32d347da438505fc3
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 (if corresponding tracker is not
connected to the server).
• 214 – Requested operation or parameters are not supported by the device (if device
Skipdoes
to content
not support alarm mode).
• 219 – Not allowed for clones of the device (if tracker is clone).
APN is short of Access Point Name and provides a device with the information needed
to connect to wireless service. Using this call you can get APN settings by a tracker ID.
read
parameters
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/tracker/apn_settings/read?
tracker_id=123456&hash=a6aa75587e5c59c32d347da438505fc3
response
{
"success": true,
"value": {
"name":"fast.tmobile.com",
"user":"tmobile",
"password":"tmobile"
}
}
errors
Skip to content
• 201 – Not found in the database (if tracker or APN settings not found).
• 214 – Requested operation not supported by the device (if the tracker does not have
a GSM module or uses a bundled SIM card, the number of which is hidden from the
user).
upload
Uploads avatar image for specified tracker. Then it will be available from https://
api.navixy.com/v2/fsm/[api_static_path]/tracker/avatars/<file_name> e.g.
https://api.navixy.com/v2/fsm/static/tracker/avatars/abcdef123456789.png .
MUST be a POST multipart request (multipart/form-data), with one of the parts being an
image file upload (with the name "file").
• image/jpeg or image/pjpeg
• image/png
• image/gif
parameters
response
{
"success": true,
"value": "file name"
}
• 234 – Invalid data format (if passed file with unexpected mime type).
list
parameters
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/tracker/chat/list?
tracker_id=123456&hash=a6aa75587e5c59c32d347da438505fc3
response
Skip to content
{
"success": true,
"list": [{<message1>}, {<message2>}]
}
{
"id": 1,
"submit_time": "2014-04-15 09:02:24",
"update_time": null,
"text": "text of message",
"type": "INCOMING",
"status": "PENDING",
"employee_id": 123456
}
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).
• 236 – Feature unavailable due to tariff restrictions (if one of the trackers has tariff
without "chat" feature).
mark_read_all
Marks all incoming chat messages as read for all or for given user trackers.
parameters
Skip to content
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/tracker/chat/mark_read_all?
hash=a6aa75587e5c59c32d347da438505fc3
response
{ "success": true }
errors
mark_read
parameters
HTTP GET
https://api.navixy.com/v2/fsm/tracker/chat/mark_read?
hash=a6aa75587e5c59c32d347da438505fc3&message_id=123
response
{ "success": true }
errors
send
parameters
message Message text, not null, max size - 20000. string "Hello
World"
examples
cURL
response
{
Skip to"success":
content true,
"id": 222
}
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).
• 236 – Feature unavailable due to tariff restrictions (if one of the trackers has tariff
with disabled reports – ("has_reports" is false)).
broadcast
parameters
message Message text, not null, max size - 20000. string "Hello World"
examples
cURL
response
{
Skip to"success":
content true,
"sent_to": [14],
"not_sent_to": [5234]
}
errors
• 217 – The list contains non-existent entities – if one of the specified trackers does
not exist, is blocked or doesn't have required tariff features.
• 221 – Device limit exceeded (if device limit set for the user's dealer has been
exceeded).
updated/list
parameters
examples
cURL
response
{
"success": true,
"value": {
"101": "2016-02-29 00:23:00",
"122": "2017-02-28 00:23:00"
}
}
Skip to content
errors
• 217 – The list contains non-existent entities – if one of the specified trackers does
not exist, is blocked or doesn't have required tariff features.
• 221 – Device limit exceeded (if device limit set for the user's dealer has been
exceeded).
unread/count
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/tracker/chat/unread/count?
hash=a6aa75587e5c59c32d347da438505fc3
response
{
"success": true,
"value": {
"1": 123,
"2": 321
}
}
errors
• 236 – Feature unavailable due to tariff restrictions (if there is no tracker which has
a tariff with "chat" feature).
Deprecated
list
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/tracker/contact/list?
hash=a6aa75587e5c59c32d347da438505fc3
response
{
"success": true,
"contacts": [{<contact1>}, {<contact n>}],
"trackers": [{<tracker1>}, {<tracker n>}]
}
{
"user_id": 12059,
"first_name": "Adam",
"middle_name": "James",
"last_name": "Williams",
"trackers": [{<tracker1>}, {<tracker n>}]
}
Skip to content
errors
Datalogger
upload
MUST be a POST multipart request (multipart/form-data), with one of the parts being a
CSV file upload (with the name "file").
parameters
response
{ "success": true }
errors
• 201 – Not found in the database (if there is no tracker with such id belonging to
authorized user).
• 219 – Not allowed for clones of the device (if tracker is clone).
• 214 – Requested operation or parameters are not supported by the device (if
specified tracker is not datalogger).
read
parameters
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/tracker/engine_immobilizer/read?
tracker_id=123456&hash=a6aa75587e5c59c32d347da438505fc3
response
{
"success": true,
"enabled": true
}
• 208 – Device blocked (if tracker exists but was blocked due to tariff restrictions or
some other reason).
• 214 – Requested operation or parameters are not supported by the device (if device
does not support alarm mode).
set
Request to change the engine immobilizer state of the device. The device must be
online.
parameters
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/tracker/engine_immobilizer/set?
tracker_id=123456&enabled=true&hash=a6aa75587e5c59c32d347da438505fc3
response
{ "success": true }
errors
Skip to content
• 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 (if corresponding tracker is not
connected to the server).
• 214 – Requested operation or parameters are not supported by the device (if device
does not support alarm mode).
• 219 – Not allowed for clones of the device (if tracker is clone).
group
Tracker group is used to organize trackers in user interface. Currently, its function is
purely visual. In FSM api, groups are read-only and represent departments of the
employees assigned to trackers. Group id 0 means employee has no department, group
id -1 means tracker has no employee assigned.
{
"id": 167,
"title": "Main office",
"color": "FF6DDC"
}
• id - int. Group id. Used to reference group in objects and API calls. Read-only,
assigned automatically by the server.
• color - string. Group color in web format (without #), e.g. "FF6DDC". Determines
the color of tracker markers on the map.
API actions
API base path: /tracker/group
list
Gets all user tracker groups. There is always "default" unnamed group with id = 0. It
cannot be modified, deleted, and is not returned by this API call.
examples
Skip to content
cURL
HTTP GET
https://api.navixy.com/v2/fsm/tracker/group/list?
hash=a6aa75587e5c59c32d347da438505fc3
response
{
"success": true,
"list": [
{
"title": "test",
"color": "FF6DDC",
"id": 129301
}
]
}
errors
read
parameters
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/tracker/led/read?
hash=a6aa75587e5c59c32d347da438505fc3&tracker_id=265489
response
{
"success": true,
"value": true
}
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).
parameters
value The new LED state, true – ON, false – OFF. boolean true
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/tracker/led/update?
hash=a6aa75587e5c59c32d347da438505fc3&tracker_id=265489&value=true
response
{ "success": true }
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).
Deprecated
register
parameters
response
{
"success": true,
"value": {<tracker>}
}
errors
• 204 – Entity not found (if specified group does not exist).
• 221 – Device limit exceeded (if device limit set for the user's dealer has been
exceeded).
• 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).
set_all
Request to change the states of all digital outputs of the device. The device must be
online.
parameters
examples
cURL
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
Skipsome
to content
other reason).
• 213 – Cannot perform action: the device is offline (if corresponding tracker is not
connected to the server).
• 214 – Requested operation or parameters are not supported by the device (if device
does not support batch mode, or has a different number of outputs).
• 219 – Not allowed for clones of the device (if tracker is clone).
set
Request to change the state of the specified digital output of the device. The device
must be online.
parameters
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/tracker/output/set?
hash=a6aa75587e5c59c32d347da438505fc3&tracker_id=265489&output=1&enable=true
response
{ "success": true }
Skip to content
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 (if corresponding tracker is not
connected to the server).
• 214 – Requested operation or parameters are not supported by the device (if device
does not support controlling single output, does not have specified digital output, or
the specified output reserved to "engine block" feature. In this case, output cannot
be controlled by this command for safety reasons).
• 219 – Not allowed for clones of the device (if tracker is clone).
list
Gets last values for all metering sensors and state values. Includes CAN, OBD, and fuel.
parameters
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/tracker/readings/list?
hash=a6aa75587e5c59c32d347da438505fc3&tracker_id=265489
response
{
"success": true,
"inputs": [
{
"value": 5.66,
"label": "label",
"units": "litres",
"name": "fuel_level",
"type": "fuel",
"units_type": "custom",
"update_time": "2019-03-16 11:15:19"
}
],
"states": [
{
"field": "obd_mil_status",
"value": 12345.23,
"update_time": "2019-03-16 11:15:19"
Skip to content
}
]
}
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).
tracker_retranslator_binding is:
{
"retranslator_id": 4548
"fake_device_id": "AI568T"
}
• fake_device_id - string. Optional. If this field set retranslator use it instead of real
device id to forward data.
API actions
API base path: /tracker/retranslator
bind
parameters
HTTP GET
https://api.navixy.com/v2/fsm/tracker/retranslator/bind?
hash=a6aa75587e5c59c32d347da438505fc3&tracker_id=265489&retranslator_id=123
response
{ "success": true }
errors
• 208 (Device blocked) – if tracker exists but was blocked due to tariff restrictions or
some other reason.
• 236 (Feature unavailable due to tariff restrictions) – if there are no trackers with
"retranslation" tariff feature available.
• 242 (There were errors during content validation) – if fake_device_id is invalid for
the protocol.
list
parameters
HTTP GET
https://api.navixy.com/v2/fsm/tracker/retranslator/list?
hash=a6aa75587e5c59c32d347da438505fc3&tracker_id=265489
response
{
"success": true,
"list": [{
"retranslator_id": 4548
"fake_device_id": "AI568T"
}]
}
errors
• 208 (Device blocked) – if tracker exists but was blocked due to tariff restrictions, or
some other reason.
unbind
parameters
HTTP GET
https://api.navixy.com/v2/fsm/tracker/retranslator/unbind?
hash=a6aa75587e5c59c32d347da438505fc3&tracker_id=265489&retranslator_id=123
response
{ "success": true }
errors
• 208 (Device blocked) – if tracker exists but was blocked due to tariff restrictions, or
some other reason.
list
parameters
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/tracker/trusted_number/list?
hash=a6aa75587e5c59c32d347da438505fc3
response
{
"success": true,
"list": ["496156680000", "496156680001"]
}
• list - List of strings containing trusted phone numbers in the international format
without "+".
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).
update
Skip to content
Replaces the list of trusted numbers for a specified tracker with the new one.
parameters
examples
cURL
response
{ "success": true }
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).
count
parameters
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/tracker/command/unconfirmed/count?
hash=a6aa75587e5c59c32d347da438505fc3&tracker_id=123456
response
{
"success": true,
"count": 0
}
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).
reset
Skip to content
Removes all pending SMS commands from the queue for the specified tracker.
parameters
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/tracker/command/unconfirmed/reset?
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).
read
parameters
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsmtracker/counter/read?
hash=a6aa75587e5c59c32d347da438505fc3&tracker_id=123456&type=odometer
response
{
"success": true,
"value": {
"id": 111,
"type": "odometer",
"multiplier": 1.0
}
}
errors
Skip to content
• 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.
update
parameters
HTTP GET
https://api.navixy.com/v2/fsmtracker/counter/update?
hash=a6aa75587e5c59c32d347da438505fc3&tracker_id=123456&type=odometer&multiplier=3.14&senso
response
{ "success": true }
errors
• 8 (Queue service error, try again later) – cannot set counter value, try later.
• 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.
• 7 (Invalid parameters) –
• if sensor_id is negative.
get
parameters
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsmtracker/counter/value/get?
hash=a6aa75587e5c59c32d347da438505fc3&tracker_id=123456&type=odometer
response
{
"success": true,
"value": 18.9
}
• 208 (Device blocked) – if tracker exists but was blocked due to tariff restrictions or
some other reason.
list
parameters
examples
cURL
response
{
"success": true,
"value": {
"14": 18.9
}
}
• 217 (List contains nonexistent entities) – if one of the specified trackers does not
exist or is blocked.
set
Creates new counter of passed type (if not) and update its value .
parameters
examples
cURL
response
{ "success": true }
errors
• 8 (Queue service error, try again later) - can't set counter value, try later.
• 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
Skipsome
to content
other reason.
• 219 (Not allowed for clones of the device) – if specified tracker is a clone.
Rule object
{
"id": 1,
"name": "rule",
"description": "description",
"zone_ids": [12, 15],
"trackers": [123456, 234567],
"type": "alarmcontrol",
"primary_text": "ON",
"secondary_text": "OFF",
"param": 1,
"alerts": {
"sms_phones": ["98829991"],
"phones": ["98829991"],
"emails": ["example@test.com"],
"push_enabled": true
},
"suspended": false,
"schedule": [{
"type":"weekly",
"from":{"weekday":1,"time":"00:00:00"},
"to":{"weekday":7,"time":"23:59:59"}],
"extended_params": {
"alarmcontrol": {
"enabled": true,
"sms": false,
"call": false,
"email": true,
"push": true,
"always_notify": false
},
"auto_created": true
}
• id - int. An id of a rule.
• extended_params - optional. An object specified for concrete rule type. See rule
types.
• auto_created - optional, boolean. true means that the rule created automatically.
• weekly_schedule_interval
{
"type": "weekly",
"from": <weekday_time>,
"to": <weekday_time>,
"interval_id": 1
}
* fixed_schedule_interval
{
"type": "fixed",
"from": "2014-07-09 07:50:58",
"to": "2014-07-10 07:50:58",
"interval_id": 3
}
{
"weekday": 1,
"time": "01:00:00"
}
• date/time and local_time types described at the data types description section.
API actions
Skip to content
API base path: /tracker/rule
bind
parameters
examples
cURL
response
{ "success": true }
errors
• 201 (Not found in the database) – if rule with rule_id does not exist or owned by
other user.
create
examples
cURL
response
{
"success": true,
"id": 123
}
errors
delete
Deletes rule with rule_id and all related objects from the database.
parameters
HTTP GET
https://api.navixy.com/v2/fsm/tracker/rule/delete?
hash=a6aa75587e5c59c32d347da438505fc3&rule_id=123
response
{ "success": true }
errors
• 201 (Not found in the database) – if rule with rule_id does not exist or owned by
other user.
list
List tracker rules bound to tracker with an id= tracker_id or all users' tracker rules if
tracker_id not passed.
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/tracker/rule/list?
hash=a6aa75587e5c59c32d347da438505fc3
response
{
"success": true,
"list": [{
"id": 1,
"name": "rule",
"description": "description",
"zone_ids": [12, 15],
"trackers": [123456, 234567],
"type": "alarmcontrol",
"primary_text": "ON",
"secondary_text": "OFF",
"param": 1,
Skip to content
"alerts": {
"sms_phones": ["98829991"],
"phones": ["98829991"],
"emails": ["example@test.com"],
"push_enabled": true
},
"suspended": false,
"schedule": [{
"type":"weekly",
"from":{"weekday":1,"time":"00:00:00"},
"to":{"weekday":7,"time":"23:59:59"}],
"extended_params": {
"alarmcontrol": {
"enabled": true,
"sms": false,
"call": false,
"email": true,
"push": true,
"always_notify": false
},
"auto_created": true
}]
}
unbind
parameters
response
{ "success": true }
errors
• 201 (Not found in the database) – if rule with rule_id does not exist or owned by
other user.
update
parameters
examples
cURL
response
{ "success": true }
errors
Skip to content
• 201 (Not found in the database) – if rule is not exists or owned by other user.
• 204 (Entity not found) – when new associated zone is not exists.
Rule types with all parameters to create. The rule availability depends on the device and
rule integration for it.
Common parameters
parameters
extended parameters
Speed exceeding
parameters
parameters
parameters
extended parameters
parameters
Task performance
parameters
extended parameters
parameters
parameters
parameters
extended parameters
Harsh driving
parameters
Auto geofencing
parameters
Fall detection
parameters
Unauthorized movement
Car crash
parameters
Autocontrol related
parameters
extended parameters
{
"alarmcontrol": {
"enabled": true,
"sms": false,
"call": false,
"email": true,
"push": true,
"always_notify": false
},
"battery_off": {
"enabled": true,
"sms": true,
"call": false,
"email": true,
"push": true
},
"door_alarm": {
"enabled": true,
"sms": false,
"call": false,
"email": true,
"push": true
},
"hood_alarm": {
"enabled": true,
"sms": false,
"call": false,
"email": true,
"push": true
},
"ignition": {
"enabled": true,
Skip to content
"sms": false,
"call": false,
"email": true,
"push": true
},
"parking": {
"enabled": true,
"sms": false,
"call": false,
"email": true,
"push": true
},
"gsm_damp": {
"enabled": true,
"sms": false,
"call": false,
"email": true,
"push": true
},
"security_control": {
"enabled": true,
"sms": false,
"call": false,
"email": true,
"push": true
}
parameters
extended parameters
parameters
Driver change
parameters
Fatigue driving
parameters
parameters
parameters
parameters
Low battery
Bracelet sensor
parameters
parameters
parameters
parameters
parameters
parameters
parameters
parameters
Locking/unlocking (padlock)
parameters
Case intrusion
parameters
parameters
Padlock tampering
parameters
parameters
Light sensor
parameters
parameters
Tracker switched ON
parameters
parameters
Inputs triggering.
parameters
parameters
Parameter in range
parameters
extended parameters
sensor
Data types
{
"type": "metering",
"id": 860250,
"sensor_type": "temperature",
"name": "OBD Coolant temperature",
"input_name": "obd_coolant_t",
"divider": 1.0,
"accuracy": 0,
"units": "",
"units_type": "celsius"
"parameters": {
"parent_ids": [123042, 123566]
"volume": 0.7,
"min": 0.0,
"max": 12.0,
"max_lowering_by_time": 120.0
"max_lowering_by_mileage": 120.0
}
}
• input_name - string.
• divider - double.
• accuracy - int.
• units - string.
Discrete input
{
"type": "discrete",
"id": 888951,
"sensor_type": "ignition",
"name": "Ignition",
"input_number": 4
}
• id - int. An id of a sensor.
• name - string.
batch_list
There exist a similar method for working with a single tracker - list.
parameters
response
Contains a map, where keys are IDs from trackers parameter and values are lists of
sensor objects.
{
Skip"success":
to content true,
"result": {
"11": [
{
"id": 1,
"type": "discrete",
"sensor_type": "fuel",
"name": "Main tank",
"input_name": "fuel_level",
"group_type": null,
"divider": 1,
"accuracy": 0,
"units": null,
"units_type": "litre"
}
]
}
}
errors
• 217 (List contains nonexistent entities) - if one of trackers either does not exist or
is blocked.
• 221 (Device limit exceeded) - if too many ids were passed in trackers parameter.
create
Creates a sensor.
parameters
response
{
"success": true,
"id": 937
}
errors
• 232 (Input already in use) – if given input number (for discrete input) or input name
(for metering sensor) already in use.
• 208 (Device blocked) – if tracker exists but was blocked due to tariff restrictions, or
some other reason.
• 270 (Too many sensors of same type) - the number of tracker's sensors, having
same sensor_type is limited.
delete
parameters
HTTP GET
https://api.navixy.com/v2/fsm/tracker/sensor/delete?
hash=a6aa75587e5c59c32d347da438505fc3&tracker_id=123456&sensor_id=23456
response
{ "success": true }
errors
• 201 - Not found in the database (if sensor with a sensor_id is not exists or owned by
other 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 tracker is clone).
list
parameters
HTTP GET
https://api.navixy.com/v2/fsm/tracker/sensor/list?
hash=a6aa75587e5c59c32d347da438505fc3&tracker_id=123456
response
{
"success": true,
"list": [{
"type": "metering",
"id": 860250,
"sensor_type": "temperature",
"name": "OBD Coolant temperature",
"input_name": "obd_coolant_t",
"divider": 1.0,
"accuracy": 0,
"units": "",
"units_type": "celsius"
}]
}
errors
• 208 (Device blocked) – if tracker exists but was blocked due to tariff restrictions, or
some other reason.
update
Updates sensor.
parameters
examples
cURL
response
{ "success": true }
errors
• 201 (Not found in the database) – if sensor not exists or owned by other user.
• 232 (Input already in use) – if given input number (for discrete input) or input name
(for metering sensor) already in use.
• 208 (Device blocked) – if tracker exists but was blocked due to tariff restrictions, or
some other reason.
read
parameters
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/tracker/sensor/calibration_data/read?
hash=a6aa75587e5c59c32d347da438505fc3&tracker_id=123456&sensor_id=12345
response
{
"success": true,
"value": [{"in":0.0,"out":0.0},{"in":0.7,"out":60.0}]
}
errors
• 201 – Not found in the database (if there is no tracker with such id belonging to
authorized user).
• 228 – Not supported by the sensor (if sensor doesn't support calibration).
Skip to content
update
parameters
examples
cURL
response
{ "success": true }
errors
• 201 – Not found in the database (if there is no tracker with such id belonging to
authorized user).
• 228 – Not supported by the sensor (if sensor doesn't support calibration).
• 228 – Not supported by the sensor (if sensor doesn't support calibration).
• 219 – Not allowed for clones of the device (if tracker is clone).
upload_omnicomm
Skip to content
Replaces the calibration data for a sensor from Omnicomm LLSmonitor's XML
configuration file. If XML file contains information about multiple sensors, user must
specify which sensor number to use.
MUST be a POST multipart request (multipart/form-data), with one of the parts being an
XML file upload (with the name "file").
parameters
response
{ "success": true }
errors
• 201 – Not found in the database (if there is no tracker with such id belonging to
authorized user).
• 228 – Not supported by the sensor (if sensor doesn't support calibration).
• 219 – Not allowed for clones of the device (if tracker is clone).
• 234 – Invalid data format (if supplied file is not a valid LLSmonitor XML file).
• 235 – Missing calibration data (if there is no calibration data for the specified
sensor number).
list
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/tracker/sensor/input_name?
hash=a6aa75587e5c59c32d347da438505fc3
response
{
"success": true,
"list": [{
"input_name": "analog_1",
"description": "Sensor analógico #1"
},
{
"input_name": "can_coolant_t",
"description": "CAN: Temperatura del refrigerante"
}]
}
errors
No specific errors.
read
parameters
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/tracker/settings?
hash=a6aa75587e5c59c32d347da438505fc3&tracker_id=123456
response
{
"success": true,
"settings": {
"label": "Courier",
"group_id": 1
}
}
• group_id - int. Tracker group id. 0 if tracker does not belong to any group.
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
Skipsome
to content
other reason).
update
parameters
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/tracker/update?
hash=a6aa75587e5c59c32d347da438505fc3&tracker_id=123456&group_id=1&label=Courier
response
{ "success": true }
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
Skipsome
to content
other reason).
• 204 – Entity not found (if there is no group with the specified group id).
read
parameters
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/tracker/settings/lbs/read?
hash=a6aa75587e5c59c32d347da438505fc3&tracker_id=123456
response
{
"success": true,
"max_radius": 300
}
• max_radius - int. Max allowed radius for LBS points in meters. Min=0, max=10000.
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).
update
Skip to content
Updates LBS settings for the specified tracker.
parameters
max_radius Max allowed radius for LBS points in meters. int 1000
Min=0, max=10000.
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/tracker/settings/lbs/update?
hash=a6aa75587e5c59c32d347da438505fc3&tracker_id=123456&max_radius=1000
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).
read
parameters
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/tracker/settings/tracking/read?
hash=a6aa75587e5c59c32d347da438505fc3&tracker_id=123456
response
Returned fields may differ from model to model. See tracking profiles for more
information.
{
"success": true,
"value" : {<tracking settings>}
}
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
Skipsome
to content
other reason).
• 214 – Requested operation or parameters are not supported by the device (if device
model has no tracking settings at all).
update
parameters
examples
cURL
response
Returned fields may differ from model to model. See tracking profiles for more
information.
{ "success": true }
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
Skipsome
to content
other reason).
• 214 – Requested operation or parameters are not supported by the device (if device
model has no tracking settings at all).
• 219 – Not allowed for clones of the device (if specified tracker is clone of another
tracker).
albatross_s6
{
"tracking_interval": 30,
"tracking_distance": 100
}
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=30, max=65535.
• tracking_distance - int. Distance in meters, e.g. 100 means that the device will
send data every 100 meters. Min=50, max=65535
albatross_s8_5
{
"tracking_interval": 30,
"psm_interval": 60000,
"psm_mode": 0
}
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=30, max=65535.
• psm_interval - optional int. Duration in seconds for the device to stay in the deep
sleep mode. Min=600, max=65535.
apkcom
Tracking profile for АПК КОМ ASC-2 GLONASS/GPS, АПК КОМ ASC-6 GLONASS/GPS,
АПК КОМ ASC-7, АПК КОМ ASC-8.
{
"tracking_angle": 30,
"tracking_interval": 30,
"tracking_distance": 100
}
Skip to content
• tracking_angle - int. The device will additionally send data when it changes
direction to specified angle, e.g. 30 degrees. Min=5, max=180.
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=10, max=300.
• tracking_distance - int. Distance in meters, e.g. 100 means that the device will
send data every 100 meters. Min=50, max=5000.
arknav_x8
{
"tracking_angle": 30,
"tracking_interval": 60,
"tracking_distance": 150
}
• tracking_angle - int. The device will additionally send data when it changes
direction to specified angle, e.g. 30 degrees. Min=10, max=180.
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=10, max=65534.
• tracking_distance - int. Distance in meters, e.g. 100 means that the device will
send data every 100 meters. Min=50, max=65534.
arnavi2
{
"tracking_angle": 30,
"tracking_distance": 100,
"min_tracking_interval": 30,
"max_tracking_interval": 300,
"speed_change": 50,
"freeze_by_speed": false,
"freeze_by_motion": true,
"freeze_by_ignition": false
}
* tracking_angle – int. Degrees 10-255, the device will send tracking data when
course changing more than defined value. * tracking_distance – int. Distance in
meters 50-65535, e.g. 100 means that the device will send data every 100 meters. *
min_tracking_interval – int. Min interval in seconds 30-255, e.g. 30 means that the
Skip towill
device content
send tracking data no more frequently than every 30 seconds. *
max_tracking_interval – int. Max interval in seconds 30-65535, e.g. 30 means that
the device will send tracking data not less frequently than every 30 seconds. *
speed_change – int. Kph 3-255, the device will send tracking data when speed changing
more than defined value. * freeze_by_speed – boolean. Freeze coordinates when
speed is less than 2kph. * freeze_by_motion – boolean. Freeze coordinates when
motion sensor detects no motion. * freeze_by_ignition – boolean. Freeze
coordinates when ignition is OFF.
arnavi4
Tracking profile for Arnavi 4, Arnavi 5, Arnavi Integral, Arnavi Integral-2, Arnavi
Integral-3.
{
"max_tracking_interval": 60,
"min_tracking_interval": 5,
"speed_change": 10,
"tracking_angle": 30,
"tracking_distance": 150
}
• speed_change – int. Kph 3-255, the device will send tracking data when speed
changing more than defined value.
• tracking_angle – int. Degrees 10-255, the device will send tracking data when
course changing more than defined value.
• tracking_distance – int. Distance in meters 50-65535, e.g. 100 means that the
device will send data every 100 meters.
atlanta
Tracking profile for Atlanta L-100, Atlanta O-300, Atlanta PT-100, Atlanta W-track,
Atlanta WP-30C.
{
"tracking_distance": 150,
"tracking_interval": 60
}
Skip to content
• tracking_distance - int. Distance in meters, e.g. 100 means that the device will
send data every 100 meters. Min=50, max=65534.
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=30, max=18000.
atlanta_pt100
{
"tracking_interval": 300
}
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=300, max=18000.
atrack
{
"control_mode": "acc",
"tracking_interval": 30,
"tracking_distance": 150,
"tracking_angle" : 30,
"psm_mode": 0,
"psm_interval": 30,
"on_stop_tracking_interval": 1
}
* control_mode - optional string enum. Mode of tracking by the ACC or engine status.
Can be "acc" | "engine_status". * tracking_interval - optional int. Interval in seconds,
e.g. 30 means that the device will send tracking data every 30 seconds. Min=30,
max=65535x10, default=300. * tracking_distance - optional int. Distance in meters,
e.g. 100 means that the device will send data every 100 meters. Min=50, max=65535,
default=100. * tracking_angle - optional int. The device will additionally send data
when it changes direction to specified angle, e.g. 30 degrees. Min=10, max=80,
default=10. * psm_mode - optional int. Define the sleep level, 0 – no sleeping, 1- light
sleep (GPS Off, GPRS On, G-sensor On), 2- deep sleep (GPS Off, GPRS Off, G-sensor On).
Min=0, max=2, default=0. * psm_interval - optional int. Duration in seconds for the
device to stay in the deep sleep mode. Min=30, max=65535x60, default=90x60. *
on_stop_tracking_interval - int. Minimum time in seconds that must elapse before
reporting next position while the ACC is in Off status. "acc" in control_mode must be set
Skip
in to content
order to use this time interval. Min=1, max=65535x10, default=15x60.
autofon
Autofon profile.
{
"type": "interval",
"tracking_interval": 30,
"online_on_ext_power": true,
"timer1_time" : "2020-09-16 03:17:26",
"timer1_interval": 15,
"timer2_time" : "2020-09-18 03:17:26"
"timer2_interval": 30
}
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=30, max=240.
autoleaders_st901
{
"psm_interval": 60,
"psm_mode": 0,
"tracking_interval": 30
}
• psm_interval - int. Duration in seconds for the device to stay in the deep sleep
mode. Min=30, max=18000.
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=30, max=18000.
autoseeker_at17
Skip to content
Tracking profile for Autoseeker AT-17.
{
"tracking_interval": 30
}
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=1, max=18000.
avlsat_neos
{
"tracking_interval": 60
}
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=60, max=599940.
bitrek310
{
"psm_interval": 12000,
"psm_mode": 0,
"tracking_interval": 720
}
• psm_interval - int. Duration in seconds for the device to stay in the deep sleep
mode. Min=300, max=86400.
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=720, max=21600.
bofan_pt521
{
"tracking_angle": 30,
"tracking_distance": 100,
"tracking_interval": 60,
"type": "interval"
Skip to content
}
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=10, max=90.
• tracking_distance - int. Distance in meters, e.g. 100 means that the device will
send data every 100 meters. Min=50, max=5000.
• tracking_angle - int. The device will additionally send data when it changes
direction to specified angle, e.g. 30 degrees. Min=10, max=1200.
box
{
"tracking_angle": 30,
"tracking_interval": 120
}
• tracking_angle - int. The device will additionally send data when it changes
direction to specified angle, e.g. 30 degrees. Min=10, max=359.
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=30, max=4294968.
boxfinder
{
"shock_value": 1.5,
"sleep_timeout": 180
}
bsj
• tracking_angle - int. The device will additionally send data when it changes
direction to specified angle, e.g. 30 degrees. Min=5, max=180.
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=30, max=86400.
c2stek_fl
{
"tracking_angle": 30,
"tracking_distance": 300,
"tracking_interval": 120
}
• tracking_angle - int. The device will additionally send data when it changes
direction to specified angle, e.g. 30 degrees. Min=0, max=360.
• tracking_distance - int. Distance in meters, e.g. 100 means that the device will
send data every 100 meters. Min=0, max=9999.
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=0, max=9999.
calamp
Tracking profile for CalAmp ATU-620, CalAmp LMU-1100, CalAmp LMU-1200, CalAmp
LMU-200, CalAmp LMU-2030, CalAmp LMU-2600, CalAmp LMU-2630, CalAmp
LMU-2720, CalAmp LMU-300, CalAmp LMU-3030, CalAmp LMU-3640, CalAmp LMU-400,
CalAmp LMU-4200, CalAmp LMU-4230, CalAmp LMU-4520, CalAmp LMU-5530, CalAmp
LMU-700, CalAmp LMU-800, CalAmp LMU-900, CalAmp TTU-1200, CalAmp TTU-2830,
CalAmp TTU-700.
{
"psm_interval": 600,
"tracking_angle": 30,
"tracking_distance": 200,
"tracking_interval": 60
}
• psm_interval - int. Duration in seconds for the device to stay in the deep sleep
mode. Min=30, max=86400.
• tracking_angle - int. The device will additionally send data when it changes
Skipdirection
to content
to specified angle, e.g. 30 degrees. Min=5, max=180.
• tracking_distance - int. Distance in meters, e.g. 100 means that the device will
send data every 100 meters. Min=50, max=5000.
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=30, max=86400.
cantrack_t80
{
"tracking_interval": 10
}
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=10, max=1000.
careu
Tracking profile for CAREU U1 Lite Plus, CAREU U1 Plus, CAREU UT1, CAREU UW1,
CAREU Ucan, CAREU Ueco, CAREU Ugo, IntelliTrac A1, Intellitrac S1.
{
"tracking_angle": 45,
"tracking_distance": 50,
"tracking_interval": 20
}
• tracking_angle - int. The device will additionally send data when it changes
direction to specified angle, e.g. 30 degrees. Min=5, max=180.
• tracking_distance - int. Distance in meters, e.g. 100 means that the device will
send data every 100 meters. Min=25, max=50000.
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=10, max=65535.
cargo
{
"psm_interval": 600,
"tracking_angle": 60,
"tracking_distance": 100,
"tracking_interval": 30
}
Skip to content
• psm_interval - int. Duration in seconds for the device to stay in the deep sleep
mode. Min=30, max=86400.
• tracking_angle - int. The device will additionally send data when it changes
direction to specified angle, e.g. 30 degrees. Min=5, max=180.
• tracking_distance - int. Distance in meters, e.g. 100 means that the device will
send data every 100 meters. Min=50, max=5000.
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=30, max=86400.
carscop_cctr800
{
"psm_interval": 3600,
"psm_mode": 1,
"tracking_interval": 30
}
• psm_interval - int. Duration in seconds for the device to stay in the deep sleep
mode. Min=3600, max=432000.
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=30, max=999.
carscop_cctr830
{
"tracking_interval": 40
}
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=30, max=999.
castel_idd
• sleep_report_interval - int. Interval in minutes, e.g. 10 means that the device will
send tracking data every 10 minutes in a sleep mode. Min=10, max=1440.
• tracking_angle - int. The device will additionally send data when it changes
direction to specified angle, e.g. 30 degrees. Min=10, max=90.
• tracking_distance - int. Distance in meters, e.g. 100 means that the device will
send data every 100 meters. Min=50, max=5000.
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=30, max=600.
castel_interval
{
"tracking_interval": 60
}
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=10, max=18000.
cguard
{
"tracking_interval": 60,
"tracking_distance": 100,
"tracking_angle" : 15,
"psm_interval": 300
}
* tracking_interval - int. Interval in seconds, e.g. 30 means that the device will send
tracking data every 30 seconds. Min=0, max=65535, default=60. * tracking_distance -
int. Distance in meters, e.g. 100 means that the device will send data every 100 meters.
Min=0, max=65535, default=100. * tracking_angle - int. The device will additionally
send data when it changes direction to specified angle, e.g. 30 degrees. Min=0,
max=180, default=15. * psm_interval - int. Duration in seconds for the device to stay
Skip
in thetodeep
content
sleep mode. Min=0, max=65535, default=300.
cguard_asset
{
"tracking_interval": 60,
"tracking_distance": 100,
"tracking_angle" : 45,
"psm_interval": 300,
"mode": "ASSET",
"wakeup_type": "PERIODICAL",
"wakeup_day": "EVERYDAY",
"wakeup_time": "12:00",
"wakeup_period": 1440,
"moving_detection": true
}
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=0, max=65535, default=60.
• tracking_distance - int. Distance in meters, e.g. 100 means that the device will
send data every 100 meters. Min=0, max=65535, default=100.
• tracking_angle - int. The device will additionally send data when it changes
direction to specified angle, e.g. 30 degrees. Min=0, max=180, default=45.
• psm_interval - int. Duration in seconds for the device to stay in the deep sleep
mode. Min=0, max=65535, default=300.
• mode - string enum. Device working mode. TRACKER means that device work in the
continuous mode. ASSET means that device work in the periodical mode and wakes
up on schedule or by period.
{
"tracking_distance": 100,
"tracking_interval": 30
}
• tracking_distance - int. Distance in meters, e.g. 100 means that the device will
send data every 100 meters. Min=100, max=10000.
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=30, max=18000.
concox_gt350
{
"psm_interval": 600,
"psm_mode": 1,
"tracking_interval": 10
}
• psm_interval - int. Duration in seconds for the device to stay in the deep sleep
mode. Min=600, max=432000.
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=10, max=1800.
concox_gt700
{
"psm_interval": 2,
"tracking_interval": 1,
"type": "interval",
"wakeup_time": "10:20"
}
• psm_interval - int. Duration in hours for the device to stay in the deep sleep mode.
Min=1, max=24. Valid values are 1, 2, 3, 4, 6, 8, 12, 24.
concox_interval
Tracking profile for Concox GK309 , Concox GS503, Concox GT03A, Concox GT03C,
Concox WeTrack Lite, Concox WeTrack2, Jimi JI09.
{
"tracking_interval": 30
}
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=30, max=18000.
concox_jv200
{
"tracking_interval": 30
}
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=30, max=18000.
concox_qbit
{
"gps_tracking_interval": 10,
"lbs_tracking_interval": 60,
"mode": "lbs"
}
{
"tracking_interval": 30
}
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=30, max=18000.
concoxgt06
{
"psm_interval": 3000,
"tracking_angle": 120,
"tracking_distance": 250,
"tracking_interval": 30,
"type": "intelligent"
}
• psm_interval - int. Duration in seconds for the device to stay in the deep sleep
mode. Min=30, max=65535.
• tracking_angle - int. The device will additionally send data when it changes
direction to specified angle, e.g. 30 degrees. Min=0, max=180.
• tracking_distance - int. Distance in meters, e.g. 100 means that the device will
send data every 100 meters. Min=50, max=10000.
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=30, max=65535.
default
{
"type": "interval",
"tracking_interval": 30,
"tracking_distance": 100
}
Skip to content
• type - string enum. Can be "interval" (send tracking data based on time intervals)
or "distance" (send tracking data after passing specified distance).
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds.
• tracking_distance - int. Distance in meters, e.g. 100 means that the device will
send data every 100 meters.
default_angle
{
"type": "distance",
"tracking_interval": 30,
"tracking_distance": 100,
"tracking_angle" : 30
}
• type - string enum. Can be "interval" (send tracking data based on time intervals)
or "distance" (send tracking data after passing specified distance).
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds.
• tracking_distance - int. Distance in meters, e.g. 100 means that the device will
send data every 100 meters.
• tracking_angle - optional int. If specified, the device will additionally send data
when it changes direction to specified angle, e.g. 30 degrees.
default_powersave
{
"type": "power_save",
"tracking_interval": 30,
"tracking_distance": 100,
"tracking_angle" : 30,
"psm_interval": 65535,
"psm_mode": 2
}
• type - string enum. Can be "interval" (send tracking data based on time intervals)
or "distance" (send tracking data after passing specified distance).
• tracking_interval - optional int. Interval in seconds, e.g. 30 means that the
Skipdevice
to content
will send tracking data every 30 seconds.
• tracking_distance - optional int. Distance in meters, e.g. 100 means that the
device will send data every 100 meters.
• tracking_angle - optional int. If specified, the device will additionally send data
when it changes direction to specified angle, e.g. 30 degrees.
• psm_interval - optional int. Define the time interval in seconds (60-65535) which
the unit stays in the sleeping state when type= power_save .
• psm_mode - optional int. Define the sleep level when type != power_save , 0 - no
sleeping, 1 - light sleep(GPS Off, GPRS On, G-sensor On), 2 - deep sleep(GPS Off,
GPRS Off, G-sensor On).
defenstar_007
{
"tracking_interval": 65534
}
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=60, max=65534.
defenstar_008
{
"tracking_interval": 1000
}
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=10, max=9999.
digitalsystems_dsf22
{
"tracking_angle": 10,
"tracking_interval": 120
}
Skip to content
• tracking_angle - int. The device will additionally send data when it changes
direction to specified angle, e.g. 30 degrees. Min=10, max=359.
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=30, max=86400.
distance_interval
{
"tracking_distance": 250,
"tracking_interval": 3600
}
• tracking_distance - int. Distance in meters, e.g. 100 means that the device will
send data every 100 meters. Min=50, max=100000.
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=30, max=86400.
distance_interval_angle_ps
Tracking profile with distance, interval, angle and power save mode.
{
"psm_interval": 86400,
"tracking_angle": 10,
"tracking_distance": 100,
"tracking_interval": 60
}
• psm_interval - int. Duration in seconds for the device to stay in the deep sleep
mode. Min=30, max=86400.
• tracking_angle - int. The device will additionally send data when it changes
direction to specified angle, e.g. 30 degrees. Min=10, max=359.
• tracking_distance - int. Distance in meters, e.g. 100 means that the device will
send data every 100 meters. Min=50, max=100000.
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=30, max=86400.
distance_interval_angle
Skip to content
Tracking profile with distance, interval and angle.
{
"tracking_interval": 30,
"tracking_distance": 100,
"tracking_angle" : 30
}
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds.
• tracking_distance - int. Distance in meters, e.g. 100 means that the device will
send data every 100 meters.
• tracking_angle - int. The device will additionally send data when it changes
direction to specified angle, e.g. 30 degrees.
eelink
Tracking profile for Eelink GOT08, Eelink GOT10, Eelink GPT18, Eelink TK-319, Eelink
TK116, Eelink TK119.
{
"tracking_interval": 30
}
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=10, max=18000.
eelink_tk116
{
"tracking_interval": 3600
}
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=10, max=3600.
eelink_v2
• tracking_angle - int. The device will additionally send data when it changes
direction to specified angle, e.g. 30 degrees. Min=0, max=180.
• tracking_distance - int. Distance in meters, e.g. 100 means that the device will
send data every 100 meters. Min=50, max=10000.
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=30, max=65535.
enfora
Tracking profile for Enfora MT-GL (GSM2218), Enfora MT-Gu (GSM2338), Novatel
MT4100, SkyPatrol TT8740, SkyPatrol TT8750.
{
"tracking_distance": 100,
"tracking_interval": 60
}
• tracking_distance - int. Distance in meters, e.g. 100 means that the device will
send data every 100 meters. Min=100, max=10000.
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=30, max=18000.
esino
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=20, max=3600.
etrack_tlt2h
{
"tracking_interval": 600
}
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=10, max=59999.
fifotrack
Tracking profile for fifotrack A100, fifotrack A100 FW1.15+, fifotrack A300, fifotrack
A300 FW1.23+, fifotrack A600 (FW before V1.07), fifotrack A600 FW1.07+.
{
"psm_interval": 3600,
"psm_mode": 2,
"tracking_angle": 45,
"tracking_distance": 100,
"tracking_interval": 60
}
• psm_interval - int. Duration in seconds for the device to stay in the deep sleep
mode. Min=0, max=3932100.
• psm_mode - int. Define the sleep level when type != power_save , 0 - no sleeping, 1
- light sleep(GPS Off, GPRS On, G-sensor On), 2 - deep sleep(GPS Off, GPRS Off, G-
sensor On).
• tracking_angle - int. The device will additionally send data when it changes
direction to specified angle, e.g. 30 degrees. Min=10, max=359.
• tracking_distance - int. Distance in meters, e.g. 100 means that the device will
send data every 100 meters. Min=50, max=65535.
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=30, max=655350.
genesis_g36
Skip to content
Tracking profile for Castel HT-770, Ezlink T28, G36, Orion 7, XiLi Technologies PT100.
{
"tracking_interval": 1
}
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=1.
gl200
{
"type": "distance",
"tracking_interval": 30
"tracking_distance": 100
"tracking_angle" : 30
"psm_interval": 600
"movement_detection": true,
"non_movement_duration": 420
}
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds.
• tracking_distance - int. Distance in meters, e.g. 100 means that the device will
send data every 100 meters.
• tracking_angle - int. The device will additionally send data when it changes
direction to specified angle, e.g. 30 degrees.
• movement_detection - boolean.
gl500
{
"type": "interval"
"tracking_interval": 1
"wakeup_time": "10:00"
"psm_interval": 8
}
Skip to content
gt300
{
"tracking_interval": 5,
"start_time": "0000",
"end_time": "2359",
"movement_detection": true,
"min_speed": 10,
"min_distance": 20
}
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=5, max=86400.
• start_time - string. Start time of scheduled fix timing report. The valid format is
"HHMM" 0000-2359.
• end_time - string. End time of scheduled fix timing report. The valid format is
"HHMM" 0000-2359.
gotoptk206_amgps_freko
{
"tracking_interval": 10
}
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=10, max=3600.
gv500
Skip to content
Queclink/Ruslink GV500 profile.
{
"type": "interval",
"tracking_interval": 30,
"tracking_distance": 100,
"tracking_angle" : 30,
"psm_mode": 1,
"psm_interval": 600
}
• type - string enum. Tracking type when ignition is ON, "distance" or "interval".
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds.
• tracking_distance - int. Distance in meters, e.g. 100 means that the device will
send data every 100 meters.
• tracking_angle - int. The device will additionally send data when it changes
direction to specified angle, e.g. 30 degrees.
• psm_mode - int. Define the sleep level when type != power_save , 0 - no sleeping, 1
- light sleep(GPS Off, GPRS On, G-sensor On), 2 - deep sleep(GPS Off, GPRS Off, G-
sensor On).
gv55lite
{
"type": "interval",
"tracking_interval": 30,
"tracking_distance": 100,
"tracking_angle" : 30,
"psm_mode": 1,
"psm_interval": 600
}
• type - string enum. Tracking type when ignition is ON, "distance" or "interval".
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds.
• tracking_distance - int. Distance in meters, e.g. 100 means that the device will
send data every 100 meters.
• tracking_angle - int. The device will additionally send data when it changes
Skipdirection
to content
to specified angle, e.g. 30 degrees.
• psm_mode - int. Define the sleep level when type != power_save , 0 - no sleeping, 1
- light sleep(GPS Off, GPRS On, G-sensor On), 2 - deep sleep(GPS Off, GPRS Off, G-
sensor On).
gubloost1
{
"tracking_interval": 10
}
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=10, max=9999.
haicom_hi603x
{
"tracking_interval": 30
}
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=30, max=2592000.
helioversal_m1
{
"tracking_interval": 30
}
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=30, max=86400.
hhd_g
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=20.
howen_herome
{
"tracking_interval": 30
}
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=30, max=86400.
hua_sheng_hs3000g
{
"psm_interval": 600,
"tracking_angle": 10,
"tracking_interval": 30
}
• psm_interval - int. Sending interval when the engine is off, seconds. Min=60,
max=86400.
• tracking_angle - int. The device will additionally send data when it changes
direction to specified angle, e.g. 30 degrees. Min=5, max=250.
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=30, max=450.
huabao
{
"tracking_interval": 1000
}
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=10, max=9999.
intellitrac_x1
Skip to content
Tracking profile for IntelliTrac X1, IntelliTrac X1+.
{
"tracking_angle": 5,
"tracking_distance": 100,
"tracking_interval": 30,
"type": "interval"
}
• tracking_angle - int. The device will additionally send data when it changes
direction to specified angle, e.g. 30 degrees. Min=5, max=358.
• tracking_distance - int. Distance in meters, e.g. 100 means that the device will
send data every 100 meters. Min=100, max=65534.
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=30, max=65534.
interval
{
"tracking_interval": 30
}
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=30.
interval_angle
{
"tracking_interval": 30
"tracking_angle" : 30
}
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds.
• tracking_angle - int. The device will additionally send data when it changes
direction to specified angle, e.g. 30 degrees.
interval_angle_powersave
Skip to content
Tracking profile with an interval, angle and powersave mode.
{
"psm_interval": 60,
"tracking_angle": 55,
"tracking_interval": 30
}
• psm_interval - int. Sending interval when the engine is off, seconds. Min=60,
max=86400.
• tracking_angle - int. The device will additionally send data when it changes
direction to specified angle, e.g. 30 degrees. Min=5, max=355.
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=30, max=900.
interval_powersave
{
"psm_interval": 3000,
"psm_mode": 1,
"tracking_interval": 30
}
• psm_interval - int. Sending interval when the engine is off, seconds. Min=60,
max=86400.
• psm_mode - int. Define the sleep level when type != power_save , 0 - no sleeping, 1
- light sleep(GPS Off, GPRS On, G-sensor On).
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=10, max=180.
jimi_jc100
{
"tracking_interval": 30
}
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=30, max=18000.
jinsheng_js810
Skip to content
Tracking profile for Jin Sheng JS810, Jin Sheng JS810S.
{
"tracking_interval": 30
}
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=30, max=65534.
jointech_gp
{
"psm_interval": 3600,
"psm_mode": 1,
"tracking_angle": 45,
"tracking_distance": 150,
"tracking_interval": 30,
"type": "interval"
}
• psm_interval - int. Sending interval when the engine is off, seconds. Min=300,
max=65535.
• psm_mode - int. Define the sleep level when type != power_save , 1 - no sleeping, 2
- light sleep(GPS Off, GPRS On, G-sensor On), 3 - deep sleep(GPS Off, GPRS Off, G-
sensor On).
• tracking_angle - int. The device will additionally send data when it changes
direction to specified angle, e.g. 30 degrees. Min=10, max=90.
• tracking_distance - int. Distance in meters, e.g. 100 means that the device will
send data every 100 meters. Min=100, max=65535.
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=30, max=65535.
jointech_jt701
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=10, max=60000.
jointech_jt703
{
"tracking_interval": 10,
"sleep_mode": "enabled",
"wakeup_timers": ["10:00:00", "16:00:00"]
"sleep_time_in_minutes": 60
}
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=10, max=60000.
• wakeup_timers - optional string. Define wake-up timers when the sleep mode
enabled, 1-48 timers. Local time in a standard format HH:mm:ss .
• sleep_time_in_minutes - optional int. Define the time interval which the unit stays
in the sleeping state when wake-up timers not defined. Min=10, max=1440.
jointech_jt707
{
"psm_interval": 150,
"psm_mode": 0,
"tracking_interval": 60
}
• psm_interval - int. Sending interval when the engine is off, seconds. Min=10,
max=1440.
• psm_mode - int. Define the sleep level when type != power_save , 0 - no sleeping, 1
- light sleep(GPS Off, GPRS On, G-sensor On).
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=5, max=43200.
keson_ks168
Skip to content
Tracking profile for Keson KS168.
{
"tracking_interval": 10
}
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=10, max=65535.
laipacs911
{
"tracking_distance": 1000,
"tracking_interval": 30,
"type": "distance"
}
• tracking_distance - int. Distance in meters, e.g. 100 means that the device will
send data every 100 meters. Min=50, max=100000.
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=5, max=43200.
lk200
{
"tracking_interval": 45
}
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=30, max=65535.
logosoft
{
"type": "interval",
"tracking_interval": 30,
"tracking_distance": 300,
Skip to content
"tracking_angle" : 10
}
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=30.
• tracking_distance - int. Distance in meters, e.g. 100 means that the device will
send data every 100 meters. Min=300.
• tracking_angle - int. The device will additionally send data when it changes
direction to specified angle, e.g. 30 degrees. Min=10.
m7
{
"type": "interval",
"psm_mode": 1,
"tracking_interval": 30,
"tracking_distance": 100
"tracking_angle" : 30,
"psm_interval": 600,
"wakeup_timer1": "10:00"
"wakeup_timer2": "16:00"
"wakeup_timer3": "22:00"
}
• type - string enum. Can be "interval" (send tracking data based on time intervals),
"distance" (send tracking data after passing specified distance).
• tracking_distance - optional int. Distance in meters, e.g. 100 means that the
device will send data every 100 meters.
• tracking_angle - optional int. If specified, the device will additionally send data
when it changes direction to specified angle, e.g. 30 degrees.
{
"tracking_angle": 60,
"tracking_distance": 500,
"tracking_interval": 20
}
• tracking_angle - int. The device will additionally send data when it changes
direction to specified angle, e.g. 30 degrees. Min=10, max=180.
• tracking_distance - int. Distance in meters, e.g. 100 means that the device will
send data every 100 meters. Min=0, max=25500.
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=20, max=65535.
megastek_gvt430
{
"tracking_angle": 25,
"tracking_distance": 100,
"tracking_interval": 30
}
• tracking_angle - int. The device will additionally send data when it changes
direction to specified angle, e.g. 30 degrees. Min=10, max=60.
• tracking_distance - int. Distance in meters, e.g. 100 means that the device will
send data every 100 meters. Min=100, max=1000.
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=30, max=86400.
megastek_mt
{
"tracking_interval": 30
}
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=30, max=86400.
megastek_mt100
Skip to content
Tracking profile for Megastek MT100.
{
"tracking_distance": 50,
"tracking_interval": 300,
"type": "intelligent"
}
• tracking_distance - int. Distance in meters, e.g. 100 means that the device will
send data every 100 meters. Min=50, max=100000.
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=30, max=65535.
meiligaovt
Tracking profile for GoTop VT360, GoTop VT380, Meiligao VT310, Meitrack VT310,
RedView VT310.
{
"tracking_angle": 30,
"tracking_distance": 200,
"tracking_interval": 10
}
• tracking_angle - int. The device will additionally send data when it changes
direction to specified angle, e.g. 30 degrees. Min=0, max=359.
• tracking_distance - int. Distance in meters, e.g. 100 means that the device will
send data every 100 meters. Min=50, max=5000.
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=10, max=655350.
meitrack
Meitrack profile.
{
"tracking_interval": 30,
"tracking_distance": 100,
"tracking_angle" : 30,
"psm_mode": 0,
"psm_interval": 3600
}
Skip to content
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds.
• tracking_distance - int. Distance in meters, e.g. 100 means that the device will
send data every 100 meters.
• tracking_angle - int. The device will additionally send data when it changes
direction to specified angle, e.g. 30 degrees.
• psm_mode - optional int. Define the sleep level when type != power_save , 0 - no
sleeping, 1 - light sleep(GPS Off, GPRS On, G-sensor On), 2 - deep sleep(GPS Off,
GPRS Off, G-sensor On).
• psm_interval - optional int. Define the time interval in seconds which the unit
stays in the sleeping state.
meitrack_asset
{
"psm_interval": 3932100,
"psm_mode": 0,
"tracking_angle": 10,
"tracking_distance": 50,
"tracking_interval": 30
}
• psm_interval - int. Define the time interval in seconds which the unit stays in the
sleeping state. Min=0, max=3932100.
• psm_mode - optional int. Define the sleep level when type != power_save , 0 - no
sleeping, 1 - light sleep(GPS Off, GPRS On, G-sensor On), 2 - deep sleep(GPS Off,
GPRS Off, G-sensor On).
• tracking_angle - int. The device will additionally send data when it changes
direction to specified angle, e.g. 30 degrees. Min=10, max=359.
• tracking_distance - int. Distance in meters, e.g. 100 means that the device will
send data every 100 meters. Min=50, max=65535.
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=30, max=655350.
meitrack_vehicle
Skip to content
Tracking profile for Meitrack MVT100, Meitrack MVT340, Meitrack MVT380, Meitrack
MVT600, Meitrack T1, Meitrack T3, Meitrack T333, Meitrack T366G, Meitrack T366L,
Meitrack T622G, Meitrack TC68S, Meitrack TC68SG.
{
"on_stop_tracking_interval": 120,
"psm_interval": 300,
"psm_mode": 2,
"tracking_angle": 45,
"tracking_distance": 50,
"tracking_interval": 30
}
• psm_interval - int. Define the time interval in seconds which the unit stays in the
sleeping state. Min=0, max=3932100.
• psm_mode - optional int. Define the sleep level when type != power_save , 0 - no
sleeping, 1 - light sleep(GPS Off, GPRS On, G-sensor On), 2 - deep sleep(GPS Off,
GPRS Off, G-sensor On).
• tracking_angle - int. The device will additionally send data when it changes
direction to specified angle, e.g. 30 degrees. Min=10, max=359.
• tracking_distance - int. Distance in meters, e.g. 100 means that the device will
send data every 100 meters. Min=50, max=65535.
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=30, max=655350.
meitrack_without_ps
{
"tracking_angle": 45,
"tracking_distance": 150,
"tracking_interval": 60
}
• tracking_angle - int. The device will additionally send data when it changes
direction to specified angle, e.g. 30 degrees. Min=10, max=359.
• tracking_distance - int. Distance in meters, e.g. 100 means that the device will
send data every 100 meters. Min=50, max=65535.
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
Skipsend
to content
tracking data every 30 seconds. Min=30, max=655350.
mictrack_mp90
{
"tracking_angle": 20,
"tracking_interval": 60
}
• tracking_angle - int. The device will additionally send data when it changes
direction to specified angle, e.g. 30 degrees. Min=20, max=180.
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=10, max=65535.
mika_g1
{
"tracking_interval": 30
}
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=30, max=10000.
mrd_100
{
"tracking_interval": 20
}
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=20, max=65535.
mwp008_a
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=10, max=655350.
myrope_m500
{
"psm_interval": 60,
"tracking_distance": 10,
"tracking_interval": 50
}
• psm_interval - int. Define the time interval in seconds which the unit stays in the
sleeping state. Min=60, max=65535.
• tracking_distance - int. Distance in meters, e.g. 100 means that the device will
send data every 100 meters. Min=1, max=65535.
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=1, max=65535.
navisetgt
{
"tracking_angle": 120,
"tracking_distance": 150,
"tracking_interval": 240
}
• tracking_angle - int. The device will additionally send data when it changes
direction to specified angle, e.g. 30 degrees. Min=5, max=180.
• tracking_distance - int. Distance in meters, e.g. 100 means that the device will
send data every 100 meters. Min=50, max=255.
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=10, max=300.
noran
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=15, max=64800.
oigo_ar2
{
"psm_interval": 60,
"tracking_angle": 45,
"tracking_distance": 300,
"tracking_interval": 15
}
• psm_interval - int. Define the time interval in seconds which the unit stays in the
sleeping state. Min=15, max=604800.
• tracking_angle - int. The device will additionally send data when it changes
direction to specified angle, e.g. 30 degrees. Min=0, max=180.
• tracking_distance - int. Distance in meters, e.g. 100 means that the device will
send data every 100 meters. Min=0, max=60000.
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=15, max=604800.
orange_tk103
{
"tracking_interval": 990
}
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=30, max=990.
piccolo_atx
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=300, max=86400.
piccolo_distance_interval_angle
Tracking profile for Piccolo ATX2S, Piccolo Hybrid+, Piccolo STX, Piccolo TMX+.
{
"tracking_angle": 30,
"tracking_distance": 100,
"tracking_interval": 30
}
• tracking_angle - int. The device will additionally send data when it changes
direction to specified angle, e.g. 30 degrees. Min=30, max=150.
• tracking_distance - int. Distance in meters, e.g. 100 means that the device will
send data every 100 meters. Min=100, max=10000.
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=30, max=65535.
piccolo_plus
{
"sleep_mode": "disabled",
"track_by": "interval",
"tracking_interval": 60,
"tracking_distance": 100
"track_by_angle": true,
"tracking_angle": 30,
"asset_moving_interval": 300,
"asset_stopped_interval": 86400
}
• track_by - optional string enum. Can be "interval" | "distance". Need for disabled,
engine, hybrid modes.
• tracking_angle - optional int. If specified, the device will additionally send data
when it changes direction to specified angle, e.g. 30 degrees, need for disabled,
engine, hybrid modes. Min=30, max=150.
• asset_moving_interval - optional int. Need for asset and hybrid modes. Min=300,
max=86400.
• asset_stopped_interval - optional int. Need for asset and hybrid modes. Min=300,
max=86400.
redview_vt680
{
"tracking_angle": 60,
"tracking_interval": 10
}
• tracking_angle - int. The device will additionally send data when it changes
direction to specified angle, e.g. 30 degrees. Min=30, max=270.
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=10, max=655350.
sanfone
{
"tracking_angle": 120,
"tracking_distance": 60,
"tracking_interval": 60
}
• tracking_angle - int. The device will additionally send data when it changes
direction to specified angle, e.g. 30 degrees. Min=10, max=360.
• tracking_distance - int. Distance in meters, e.g. 100 means that the device will
send data every 100 meters. Min=30, max=60000.
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=30, max=999.
satsol
Skip to content
Tracking profile for SAT-LITE 3, SAT-LITE 4, Sat Lite 2, Sat Pro, Super Lite.
{
"psm_interval": 30,
"tracking_angle": 10,
"tracking_distance": 50,
"tracking_interval": 30
}
• psm_interval - int. Define the time interval in seconds which the unit stays in the
sleeping state. Min=30, max=86400.
• tracking_angle - int. The device will additionally send data when it changes
direction to specified angle, e.g. 30 degrees. Min=10, max=359.
• tracking_distance - int. Distance in meters, e.g. 100 means that the device will
send data every 100 meters. Min=50, max=9999.
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=30, max=86400.
senseitp211
{
"tracking_interval": 30,
"gps_enabled": true
}
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=30.
• gps_enabled - boolean.
sheriff_awax12
{
"tracking_interval": 900
}
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=900, max=86400.
sinowell_g102
Skip to content
Tracking profile for Sinowell G102.
{
"psm_interval": 10,
"tracking_angle": 5,
"tracking_distance": 50,
"tracking_interval": 10
}
• psm_interval - int. Define the time interval in seconds which the unit stays in the
sleeping state. Min=10, max=65000.
• tracking_angle - int. The device will additionally send data when it changes
direction to specified angle, e.g. 30 degrees. Min=5, max=180.
• tracking_distance - int. Distance in meters, e.g. 100 means that the device will
send data every 100 meters. Min=50, max=1000.
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=10, max=1000.
skypatrol_tt8750plus
{
"psm_interval": 30,
"tracking_angle": 10,
"tracking_distance": 100,
"tracking_interval": 30
}
• psm_interval - int. Define the time interval in seconds which the unit stays in the
sleeping state. Min=30, max=18000.
• tracking_angle - int. The device will additionally send data when it changes
direction to specified angle, e.g. 30 degrees. Min=10, max=359.
• tracking_distance - int. Distance in meters, e.g. 100 means that the device will
send data every 100 meters. Min=100, max=10000.
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=30, max=18000.
sleep_active
spetrotec_iwatcher
{
"tracking_distance": 100,
"tracking_interval": 60,
"type": "interval"
}
• tracking_distance - int. Distance in meters, e.g. 100 means that the device will
send data every 100 meters. Min=100, max=100000.
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=60, max=86400.
stab_liner
{
"psm_interval": 3600,
"tracking_angle": 10,
"tracking_distance": 50,
"tracking_interval": 30
}
• psm_interval - int. Define the time interval in seconds which the unit stays in the
sleeping state. Min=0, max=3600.
• tracking_angle - int. The device will additionally send data when it changes
direction to specified angle, e.g. 30 degrees. Min=0, max=180.
• tracking_distance - int. Distance in meters, e.g. 100 means that the device will
send data every 100 meters. Min=50, max=100000.
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=0, max=3600.
starcom_helios
Skip to content
Tracking profile for Starcom Helios Advanced, Starcom Helios Hybrid, Starcom Helios
TT.
{
"tracking_interval": 10
}
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=0, max=432000.
starline_m17
{
"psm_interval": 600,
"psm_mode": 0,
"tracking_interval": 100
}
• psm_interval - int. Define the time interval in seconds which the unit stays in the
sleeping state. Min=60, max=3540.
• psm_mode - int. Define the sleep level when type != power_save , 0 - no sleeping, 1
- light sleep(GPS Off, GPRS On, G-sensor On).
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=0, max=300.
suntech_distance_interval_angle
Tracking profile for Suntech ST200, Suntech ST215, Suntech ST300, Suntech ST310U,
Suntech ST340LC, Suntech ST600R, Suntech ST600V, Suntech ST650.
{
"tracking_angle": 30,
"tracking_distance": 50,
"tracking_interval": 20
}
• tracking_angle - int. The device will additionally send data when it changes
direction to specified angle, e.g. 30 degrees. Min=0, max=180.
• tracking_distance - int. Distance in meters, e.g. 100 means that the device will
send data every 100 meters. Min=50, max=60000.
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
Skipsend
to content
tracking data every 30 seconds. Min=20, max=60000.
suntech_interval
{
"tracking_interval": 20
}
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=20, max=60000.
syrus
{
"tracking_angle": 5,
"tracking_distance": 200,
"tracking_interval": 30
}
• tracking_angle - int. The device will additionally send data when it changes
direction to specified angle, e.g. 30 degrees. Min=5, max=90.
• tracking_distance - int. Distance in meters, e.g. 100 means that the device will
send data every 100 meters. Min=100, max=5000.
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=30, max=9999.
telfm
{
"tracking_angle": 30,
"tracking_distance": 100,
"tracking_interval": 60,
"on_stop_tracking_interval": 180,
"sleep_mode": "disabled",
"stop_detection": "ignition"
}
* tracking_angle – int. Degrees 10-255, the device will send tracking data when
course changing more than defined value. * tracking_distance – int. Distance in
meters 50-65535, e.g. 100 means that the device will send data every 100 meters. *
Skip to content
tracking_interval – int. Interval in seconds 30-255, e.g. 30 means that the device will
send tracking data no more frequently than every 30 seconds. *
on_stop_tracking_interval – int. On stop interval in seconds 30-65535, e.g. 30
means that the device will send tracking data not less frequently than every 30
seconds. * sleep_mode – string enum. Can be "disabled" | "soft_sleep". *
stop_detection – string enum. Can be "ignition" | "g_sensor" | "gps".
telfm5x
Tracking profile for Teltonika FM5500, Teltonika FM6320, Teltonika FMB630, Teltonika
FMB640.
{
"sleep_mode": "disabled",
"sleep_timeout": 300,
"tracking_angle": 25,
"tracking_distance": 50,
"tracking_interval": 30
}
• tracking_angle – int. Degrees min=0, max=180, the device will send tracking data
when course changing more than defined value.
topfly
{
"psm_interval": 10000,
"tracking_angle": 60,
"tracking_distance": 50,
"tracking_interval": 30
}
Skip to content
• psm_interval - int. Define the time interval in seconds which the unit stays in the
sleeping state. Min=0, max=65535.
• tracking_angle - int. The device will additionally send data when it changes
direction to specified angle, e.g. 30 degrees. Min=0, max=90.
• tracking_distance - int. Distance in meters, e.g. 100 means that the device will
send data every 100 meters. Min=50, max=65535.
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=0, max=65535.
topshine_distance_interval
Tracking profile for TopShine MT02, TopShine MT08, TopShine OGT100, TopShine
VT1000, TopShine VT200W, TopShine VT900.
{
"tracking_distance": 50,
"tracking_interval": 10
}
• tracking_distance - int. Distance in meters, e.g. 100 means that the device will
send data every 100 meters. Min=50, max=65535.
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=10, max=655350.
topshine_distance_interval_angle
{
"tracking_angle": 15,
"tracking_distance": 50,
"tracking_interval": 60
}
• tracking_angle - int. The device will additionally send data when it changes
direction to specified angle, e.g. 30 degrees. Min=0, max=359.
• tracking_distance - int. Distance in meters, e.g. 100 means that the device will
send data every 100 meters. Min=50, max=65535.
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=10, max=655350.
topten
Skip to content
Tracking profile for TopTen GT08, TopTen TK-510, TopTen TK228.
{
"tracking_angle": 25,
"tracking_interval": 30
}
• tracking_angle - int. The device will additionally send data when it changes
direction to specified angle, e.g. 30 degrees. Min=0, max=359.
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=10, max=655350.
totarget
{
"tracking_interval": 30
}
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=30, max=300.
totem
{
"psm_interval": 15000,
"tracking_angle": 10,
"tracking_distance": 60,
"tracking_interval": 30
}
• psm_interval - int. Define the time interval in seconds which the unit stays in the
sleeping state. Min=10, max=18000.
• tracking_angle - int. The device will additionally send data when it changes
direction to specified angle, e.g. 30 degrees. Min=10, max=180.
• tracking_distance - int. Distance in meters, e.g. 100 means that the device will
send data every 100 meters. Min=10, max=18000.
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=10, max=18000.
trackertech_msp320
Skip to content
Tracking profile for Tracker Technology MSP320.
{
"tracking_interval": 30
}
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=30, max=86400.
trackertech_msp340
{
"psm_interval": 180,
"tracking_interval": 30
}
• psm_interval - int. Define the time interval in seconds which the unit stays in the
sleeping state. Min=180, max=86400.
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=30, max=86400.
trackertech_msp350
{
"psm_interval": 2147483647,
"psm_mode": 0,
"tracking_distance": 50,
"tracking_interval": 30
}
• psm_interval - int. Define the time interval in seconds which the unit stays in the
sleeping state. Min=60, max=2147483647.
• psm_mode - int. Define the sleep level when type != power_save , 0 - no sleeping, 1
- light sleep(GPS Off, GPRS On, G-sensor On), 2 - deep sleep(GPS Off, GPRS Off, G-
sensor On), 3 - ultra deep sleep.
• tracking_distance - int. Distance in meters, e.g. 100 means that the device will
send data every 100 meters. Min=50, max=100000.
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
Skipsend
to content
tracking data every 30 seconds. Min=30, max=86400.
tramigo
Profile for Tramigo models that do not support the interval in seconds
{
"tracking_interval": 1,
"tracking_distance": 0.5,
"tracking_angle": 20,
"on_stop_tracking_interval": 120,
"sleep_mode": "disabled"
}
• tracking_interval - int. Interval in minutes, e.g. 30 means that the device will
send tracking data every 30 minutes. Min=1, max=10080.
• tracking_distance - float. Distance in kilometers, e.g. 0.5 means that the device
will send data every 500 meters. Min=0.5, max=20.
• tracking_angle - int. The device will additionally send data when it changes
direction to specified angle, e.g. 30 degrees. Min=20, max=180.
tramigo_with_seconds
{
"tracking_interval": 30,
"tracking_distance": 20,
"tracking_angle": 180,
"on_stop_tracking_interval": 100,
"sleep_mode": "enabled"
}
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=30, max=604800.
• tracking_distance - float. Distance in kilometers, e.g. 0.5 means that the device
will send data every 500 meters. Min=0.5, max=20.
• tracking_angle - int. The device will additionally send data when it changes
direction to specified angle, e.g. 30 degrees. Min=20, max=180.
• on_stop_tracking_interval - int. Interval in minutes when not in a trip. Min=1,
Skipmax=10080.
to content
tt1
{
"type": "interval",
"psm_mode": 2,
"tracking_interval": 30,
"tracking_distance": 100,
"tracking_angle" : 30,
"psm_interval": 60,
"bat_voltage": "1.5"
"bat_psm_interval": 600
}
• type - string enum. Can be "interval" (send tracking data based on time intervals),
"distance" (send tracking data after passing specified distance).
• tracking_distance - optional int. Distance in meters, e.g. 100 means that the
device will send data every 100 meters.
• tracking_angle - optional int. If specified, the device will additionally send data
when it changes direction to specified angle, e.g. 30 degrees.
ulbotech_t300
{
"tracking_angle": 3,
"tracking_distance": 150,
"tracking_interval": 30
}
Skip to content
• tracking_angle - int. The device will additionally send data when it changes
direction to specified angle, e.g. 30 degrees. Min=3, max=20.
• tracking_distance - int. Distance in meters, e.g. 100 means that the device will
send data every 100 meters. Min=0, max=25500.
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=30, max=900.
vjoy
Tracking profile for Kingneed C30, Kingneed T0024 / T4024, Kingneed T0026, Kingneed
T1124, Kingneed T12, Kingneed T16/T18/T19, Kingneed T300, Kingneed T3124 / T5124,
Kingneed T500, Kingneed T6024, Kingneed T6124, Kingneed T630, Kingneed T8124,
Kingneed TK10, Kingneed TK101, Kingneed TK20, Kingneed TK5, VJOYCAR T0026G,
VJOYCAR T13G, VJOYCAR T13GSE, VJOYCAR T633G, VJOYCAR TK10SDC, VJoy T12,
VJoy TK05, VJoy TK10GSE, VJoy TK10GSE Solar, VJoy TK20SE.
{
"continuous_report_interval": 10,
"motion_interval": 30,
"psm_mode": 1,
"psm_wake_up_interval": 1
}
• psm_mode - int. Define the sleep level when type != power_save , 0 - no sleeping, 1
- light sleep(GPS Off, GPRS On, G-sensor On).
xirgo
Tracking profile for Xirgo XT-2050C, Xirgo XT-2060G, Xirgo XT-2150C, Xirgo XT-2160G,
Xirgo XT-2450V, Xirgo XT-2460G, Xirgo XT-4750C, Xirgo XT-4760G, Xirgo XT-4850C.
{
"psm_interval": 2592000,
"tracking_angle": 10,
"tracking_distance": 1,
"tracking_interval": 30
}
Skip to content
• psm_interval - int. Define the time interval in seconds which the unit stays in the
sleeping state. Min=60, max=2592000.
• tracking_angle - int. The device will additionally send data when it changes
direction to specified angle, e.g. 30 degrees. Min=10, max=180.
• tracking_distance - int. Distance in miles, e.g. 100 means that the device will
send data every 100 miles. Min=1, max=100.
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=30, max=2592000.
xirgo_48
{
"psm_interval": 60,
"tracking_angle": 10,
"tracking_distance": 1,
"tracking_interval": 30
}
• psm_interval - int. Define the time interval in seconds which the unit stays in the
sleeping state. Min=60, max=2592000.
• tracking_angle - int. The device will additionally send data when it changes
direction to specified angle, e.g. 30 degrees. Min=10, max=180.
• tracking_distance - int. Distance in miles, e.g. 100 means that the device will
send data every 100 miles. Min=1, max=100.
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=30, max=2592000.
xirgo_dist
Tracking profile for Xirgo XT-2050C, Xirgo XT-2060G, Xirgo XT-2450V, Xirgo XT-2460G,
Xirgo XT-4750C, Xirgo XT-4760G.
{
"psm_interval": 60,
"tracking_angle": 10,
"tracking_distance": 2,
"tracking_interval": 60
}
Skip to content
• psm_interval - int. Define the time interval in seconds which the unit stays in the
sleeping state. Min=60, max=2592000.
• tracking_angle - int. The device will additionally send data when it changes
direction to specified angle, e.g. 30 degrees. Min=10, max=180.
• tracking_distance - int. Distance in miles, e.g. 100 means that the device will
send data every 100 miles. Min=1, max=100.
• tracking_interval - int. Interval in seconds, e.g. 30 means that the device will
send tracking data every 30 seconds. Min=30, max=2592000.
yatut_poisk
{
"mode": "DAILY",
"main_wakeup_time": "12:00",
"wakeup_period": "24",
"gps_determination_period": 0,
}
• mode - string enum. Device's working mode. Can be "DAILY" | "TEST" | "SEARCH",
default="DAILY".
read
parameters
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/tracker/settings/trip_detection/read?
hash=a6aa75587e5c59c32d347da438505fc3&tracker_id=123456
response
{
"success": true,
"min_idle_duration_minutes": 5,
"idle_speed_threshold": 3,
"ignition_aware": false,
"motion_sensor_aware": false
}
• idle_speed_threshold - int. Speed (km/h) below which the device marked as being
idle.
• 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).
update
parameters
HTTP GET
https://api.navixy.com/v2/fsm/tracker/settings/trip_detection/
update?
hash=a6aa75587e5c59c32d347da438505fc3&tracker_id=123456&min_idle_duration_minutes=5&idle_sp
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).
API actions
API base path: /tracker/settings/special
read
parameters
HTTP GET
https://api.navixy.com/v2/fsm/tracker/settings/special/read?
hash=a6aa75587e5c59c32d347da438505fc3&tracker_id=123456
responses
{
"success": true,
"value": {
"type": "electronic_lock_password",
"password": "4567879",
"remember_password": false
}
}
{
"success": true,
"list": [{
"type": "electronic_lock_password",
"password": "4567879",
"remember_password": false
},{
"type": "hhd_lock_password",
"password": "25698545",
"remember_password": true
}]
}
electronic_lock_password
{
"type": "electronic_lock_password",
"password": "password",
"remember_password": false
}
Skip to content
hhd_lock_password
{
"type": "hhd_lock_password",
"password": "56894567",
"remember_password": true
}
jointech_lock_password
{
"type": "jointech_lock_password",
"password": "d45s6w",
"remember_password": false
}
vg_lock_password
{
"type": "vg_lock_password",
"password": "123456",
"remember_password": true
}
autofon_sms_alerts
{
"type": "autofon_sms_alerts",
"low_battery_mode": "enable",
"ext_input_mode": "disable",
"sos_button_mode": "enable"
}
auto_geofence_telfm
{
Skip to"type":
content "auto_geofence_telfm",
"mode": "enable",
"activation_timeout": 300,
"radius": 50
}
bce_tacho_control
{
"type": "bce_tacho_control",
"function": "slot1"
}
call_button
{
"type": "call_button",
"capacity": 1,
"items": [{ "phone": "45641784111"}]
}
• phone - string. Phone number in the international format without "+" sign.
call_buttons_v40
{
"type": "call_buttons_v40",
"capacity": 4,
"items": [{ "phone": "45641784111"}]
}
• phone - string. Phone number in the international format without "+" sign.
careu_psm
{
"type": "careu_psm",
"sleep_when_ignition_off": true,
"sleep_when_no_motion": true,
"sleep_when_no_communication": true,
Skip to content
"sleep_conditions_duration": 1,
"deep_sleep_conditions_duration": 300,
"wake_up_interval": 30,
"wake_up_from_dsm_interval": 2
}
• sleep_when_ignition_off - boolean.
• sleep_when_no_motion - boolean.
• sleep_when_no_communication - boolean.
• wake_up_interval – int. Delay before waking up from sleep mode in minutes. Can
be 0-65535.
castel_alarms
{
"type": "castel_alarms",
"acceleration": {
"report": true,
"beep": true,
"threshold": 0.4
},
"deceleration": {
"report": false,
"beep": false,
"threshold": 0.7
},
"crash": {
"report": true,
"beep": true,
"threshold": 1.0
},
"sharp_turn": {
"report": true,
"beep": true,
"threshold": 0.3
}
}
castel_obd
{
"type": "castel_obd",
"enable_pid_reports": true,
"pid_data_records_per_message": 1,
"pid_data_collect_interval": 30
}
• enable_pid_reports - boolean.
charging_gmt100
{
"type": "charging_gmt100",
"mode": "on_need"
}
ddd_emails
{
"type": "ddd_emails",
"emails": ["test@email.com", "example@email.com"]
}
digital_password
{
"type": "digital_password",
"password": "123456"
}
Skip to content
fcc_telfm
{
"type": "fcc_telfm",
"fuel_type": "gasoline",
"engine_volume": 10.0,
"multiplier": 0.0
}
galileo_tacho_control
{
"type": "galileo_tacho_control",
"function": "download"
}
galileo_hds
{
"type": "galileo_hds",
"mode": "enable",
"max_acceleration_force": 1.26,
"max_braking_force": 1.59,
"max_cornering_force": 0.75
}
harsh_behavior_hua_sheng
{
Skip to"type":
content "harsh_behavior_hua_sheng",
"mode": "enable",
"max_acceleration_force": 1.0,
"max_braking_force": 0.5,
"max_cornering_force": 0.1
}
hbm_telfm
{
"type": "hbm_telfm",
"mode": "enable",
"max_acceleration_force": 0.3,
"max_braking_force": 0.85,
"max_angular_velocity": 0.1
}
hbm_telfm5x
{
"type": "hbm_telfm5x",
"mode": "enable",
"max_acceleration_force": 0.5,
"max_braking_force": 3.0,
"max_angular_velocity": 10.0
}
Skip to content
hbm_ql
{
"type": "hbm_ql",
"mode": "enable",
"high_speed": 100,
"high_speed_braking_delta": 50,
"high_speed_acceleration_delta": 50,
"medium_speed": 70,
"medium_speed_braking_delta": 50,
"medium_speed_acceleration_delta": 50,
"low_speed_braking_delta": 50,
"low_speed_acceleration_delta": 50
}
hbm_ms_ql
{
"type": "hbm_ms_ql",
"mode": "gps_only",
"high_speed": 100,
"high_speed_braking_delta": 50,
"high_speed_acceleration_delta": 50,
"medium_speed": 60,
"medium_speed_braking_delta": 50,
Skip to content
"medium_speed_acceleration_delta": 50,
"low_speed_braking_delta": 50,
"low_speed_acceleration_delta": 50,
"turn_brake_threshold": 30,
"turn_brake_duration": 320,
"acceleration_threshold": 15,
"acceleration_duration": 1200
harsh_behavior_bce
{
"type": "harsh_behavior_bce",
"is_switched_off": false,
"acceleration_limit": 0.04,
"braking_limit": 1.21,
"cornering_limit": 2.38
}
• is_switched_off - boolean.
harsh_behavior_concox_x1
{
Skip to"type":
content "harsh_behavior_concox_x1",
"acc_speed": 40,
"acc_detection_time": 4,
"braking_speed": 60,
"braking_detection_time": 2
}
harsh_behavior_tramigo
{
"type": "harsh_behavior_tramigo",
"mode": "enable",
"max_acceleration_force": 0.5,
"max_braking_force": 1.3
}
harsh_behavior_ruptela
{
"type": "harsh_behavior_ruptela",
"braking_limit": 30,
"acceleration_limit": 60
}
nimbelink_accel
{
"type": "nimbelink_accel",
"mode": "enable",
"x": 1.12,
"y": 0.8,
"z": 2.33
}
Skip to content
hua_sheng_vibration_sensitivity
{
"type": "hua_sheng_vibration_sensitivity",
"sensitivity": "easy"
}
ign_src_suntech
{
"type": "ign_src_suntech",
"mode": "power_voltage",
"power_voltage_low_level": 12000,
"power_voltage_high_level": 19000
}
ign_src_telfm
{
"type": "ign_src_telfm",
"mode": "power_voltage",
"power_voltage_low_level": 12000,
"power_voltage_high_level": 24000
}
locus_sec
{
"type": "locus_sec",
"signature": "signature",
"sms_password": "23145",
Skip to content
"reset": false
}
• reset - boolean.
phonebook_gt300
{
"type": "phonebook_gt300",
"capacity": 20,
"items": [{ "name": "Karl", "phone": "555469874" }]
}
• phone - string. Phone number in the international format without "+" sign.
phonebook_pt100
{
"type": "phonebook_pt100",
"capacity": 3,
"items": [{ "name": "Karl", "phone": "555469874" }]
}
• phone - string. Phone number in the international format without "+" sign.
pwr_off_key
{
"type": "pwr_off_key",
"mode": "enable"
}
scat_mayak_bt_control
{
"type": "scat_mayak_bt_control",
"function": "bt_disable",
"bt_state": true
}
Skip to content
• bt_state - boolean.
sos_key
{
"type": "sos_key",
"mode": "report",
"phone": "55548875236"
}
• phone - string. SOS phone to call. Phone number in the international format without
"+" sign.
starcom_impact
{
"type": "starcom_impact",
"strong_duration": 12,
"strong_force": 4,
"strong_impact_enabled": true,
"weak_duration": 9,
"weak_force": 6,
"weak_impact_enabled": true
}
• strong_force - int. Required impact force triggering strong impact event. Each unit
equals about 1.1g. Can be 1 - 7.
• strong_impact_enabled - boolean.
• weak_duration - int. Required impact duration to trigger weak impact event. Each
unit equals 2.5 milliseconds. Can be 0 - 14.
• weak_force - int. Required impact force triggering weak impact event. Each unit
equals about 1.1g. Can be 1 - 7.
• weak_impact_enabled - boolean.
tacho_company_card
{
"type": "tacho_company_card",
"company_card_number": "A2332BF23EC3245A"
}
Skip to content
tacho_remote_download
{
"type": "tacho_remote_download",
"company_card_number": "A2332BF23EC3245A",
"vu_download_interval": 10,
"card_download_interval": 2
}
teltonika_tacho_request
{
"type": "teltonika_tacho_request",
"data_type": "activities",
"activities_start_time": "2020-09-01",
"activities_end_time": "2020-09-16"
}
temporary_digital_password
{
"type": "temporary_digital_password",
"password": "231578",
"duration_in_min": 17
}
time_shift
{
Skip to"type":
content "time_shift",
"offset": 3.0
}
tow_detection_ql
{
"type": "tow_detection_ql",
"mode": "enable",
"engine_off_to_tow": 300,
"fake_tow_delay": 300,
"tow_interval": 12000,
"rest_duration": 90,
"motion_duration": 8300,
"motion_threshold": 3
}
• fake_tow_delay - int. After the engine off and stillness detected, if motion sensor
detects moving again, the device turns into a state called fake tow. If the device
keeps in fake tow after a period defined by this parameter, it is considered towed.
Can be 0 - 600 seconds.
• tow_interval - int. The period to send alarm messages. Can be 0 - 86400 seconds.
• rest_duration - int. A time parameter to make sure the device enters stillness
status, i.e. the status of the device will be changed to stillness if the motion sensor
detects stillness and maintains for a period defined by this parameter. Can be 0 -
3825 seconds, step 15.
• motion_duration - int. A time parameter to make sure the device enters motion
status. Can be 0 - 9900 milliseconds, step 100.
• motion_threshold - int. The threshold for the motion sensor to measure whether
the device is moving. Can be 2 - 9.
tow_detection_ql2
{
"type": "tow_detection_ql2",
"mode": "enable",
"engine_off_to_tow": 300,
"fake_tow_delay": 300,
"tow_interval": 12000,
"rest_duration": 90,
Skip to content
"motion_duration": 400,
"motion_threshold": 3
}
• fake_tow_delay - int. After the engine off and stillness detected, if motion sensor
detects moving again, the device turns into a state called fake tow. If the device
keeps in fake tow after a period defined by this parameter, it is considered towed.
Can be 0 - 600 seconds.
• tow_interval - int. The period to send alarm messages. Can be 0 - 86400 seconds.
• rest_duration - int. A time parameter to make sure the device enters stillness
status, i.e. the status of the device will be changed to stillness if the motion sensor
detects stillness and maintains for a period defined by this parameter. Can be 0 -
3825 seconds, step 15.
• motion_duration - int. A time parameter to make sure the device enters motion
status. Can be 100 - 1000 milliseconds, step 100.
• motion_threshold - int. The threshold for the motion sensor to measure whether
the device is moving. Can be 2 - 9.
tow_detection_telfm
{
"type": "tow_detection_telfm",
"mode": "enable",
"activation_timeout": 5,
"threshold": 0.30
}
video_stream_howen
{
"type": "video_stream_howen"
}
virtual_ign_ql
Skip to content
{
"type": "virtual_ign_ql",
"mode": "motion_sensor",
"ign_on_voltage": 12000,
"rest_duration_to_off": 120,
"motion_duration_to_on": 75
}
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).
update
Sets special settings for a specified tracker with the new one.
parameters
response
{ "success": true }
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).
engine_control_atrack
{
"power_voltage_high_level": 13800,
"on_duration_seconds": 120,
"power_voltage_low_level": 12800,
"off_duration_seconds": 300
}
• on_duration_seconds - int. Duration in seconds that must elapse before the engine
state change accepted. Min=0, max=600, default=1 second.
guard_mode_yatut
{
"motion_sensor_mode": "double_period",
"motion_sensor_first_period": "23:00-07:00",
"motion_sensor_second_period": "10:00-17:00",
"motion_sensor_amplitude": 10,
"motion_sensor_duration": 30,
"motion_sensor_ignore_time": 50,
"motion_sensor_double_check": false,
"perimeter_mode": "once_triggering",
"perimeter_diameter": 1
}
harsh_behavior_suntech
{
"mode": "enable",
"max_acceleration_force": 1.5,
"max_braking_force": 0.05,
"max_cornering_force": 3,
"type": "harsh_behavior_suntech"
}
read
Returns engine hours (time when engine is on) count in specified period.
parameters
examples
cURL
response
{
"success": true,
"value": 42.0
}
errors
Skip to content
• 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).
• 211 – Requested time span is too big (if interval between "from" and "to" is too big
(maximum value specified in API config)).
• 214 – Requested operation or parameters are not supported by the device (if device
does not have ignition input).
• 219 – Not allowed for clones of the device (if specified tracker is a clone).
read
parameters
examples
cURL
response
{
"success": true,
"result": {
"<tracker_id>": {
"2000-01-01": { "mileage": 0.0 },
"2000-01-02": { "mileage": 0.0 },
"2000-01-03": { "mileage": 199.09 }
}
},
"limit_exceeded": false
Skip to content
}
errors
• 211 – Requested time span is too big (if interval between "from" and "to" is too big
(maximum value specified in API config)).
Zones used in rules to limit rule area of activity. Also, zone names shown in reports
after the address, if an event happened inside the zone.
This document describes CRUD actions for zones. Note that zone points handled
separately because they are represented by big arrays of data.
Entity description
zone is JSON object with one of types: sausage , circle or polygon .
circle:
{
"id": 985472,
"type": "circle",
"label": "Zone name",
"address": "Karlsplatz, 2",
"color": "27A9E3",
"radius": 150,
"center": {
"lat": 48.200940,
"lng": 16.369856
},
"tags": [127, 15]
}
polygon:
{
"id": 124597,
"type": "polygon",
"label": "Zone name",
"address": "Karlsplatz, 2",
"color": "27A9E3",
"tags": [1,236]
}
Skip to content
sausage:
{
"id": 12345,
"type": "sausage",
"label": "Zone name",
"address": "Karlsplatz, 2",
"color": "27A9E3",
"radius": 150,
"tags": [289]
}
API actions
API base path: /zone
batch_convert
Convert batch of tab-delimited circle zones and return list of checked zones with errors.
If 'file_id' is set – 'batch' parameter will be ignored. For batch parameter: address -
required if no coordinates specified. lat - required if no address specified. long -
required if no address specified.
examples
cURL
response
{
"success": true,
"list": [{
"id": null,
"type": "circle",
"label": "Zone name",
"address": "Karlsplatz, 2",
"color": "27A9E3",
"radius": 100,
"center": {
"lat": 48.2009935,
"lng": 16.3699642
},
"tags": []
}],
"limit_exceeded": false
}
Skip to content
{
"success": true,
"list": [{
"id": null,
"label": "Zone name",
"address": "incorrect address",
"color": "27A9E3",
"radius": 100,
"center": {
"lat": 0.0,
"lng": 0.0
},
"errors": [{
"parameter": "zone.center",
"error": "Location should be correct with 'lat' and 'lng'
not null"
}],
"tags" : []
}],
"limit_exceeded": false
}
errors
parameters
zone zone JSON-object without "id" and "color" fields. JSON object
points Array of new points for this zone. Must contain at array of zone
least 3 elements. MUST be omitted if zone does point objects
not support points (e.g. circle)
examples
cURL
response
{
"success": true,
"id": 1234567
}
errors
• 202 (Too many points in a zone) – max allowed points count for a zone is 100 for a
polygon or 1024 for sausage.
• 230 (Not supported for this entity type) – if "points" were specified, but zone cannot
have any points associated with it (e.g. if zone is circle).
parameters
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/zone/delete?
hash=a6aa75587e5c59c32d347da438505fc3&zone_id=1234567
response
{ "success": true }
errors
response
{
"success": false,
"status": {
"code": 203,
"description": "Delete entity associated with"
},
"entities": [
{
"type": "rules",
"ids": [12345, 23456]
Skip to content
}
]
}
• ids - array of int. List IDs of the rules which uses the specified zone.
list
examples
cURL
HTTP GET
https://api.navixy.com/v2/fsm/zone/list?
hash=a6aa75587e5c59c32d347da438505fc3
response
{
"success": true,
"list": [{
"id": 12345,
"type": "sausage",
"label": "Zone name",
"address": "Karlsplatz, 2",
"color": "27A9E3",
"radius": 150,
"tags": [289]
}]
}
update
Update zone parameters for the specified zone. Note that zone must exist, must belong
to the current user, and its type cannot be changed, e.g. if you already have a zone with
ID=1 which type is "circle", you cannot submit a zone which type is "polygon".
zone.color Optional. Zone color in 3-byte RGB hex format. Default string
is "27A9E3".
examples
cURL
response
{ "success": true }
errors
• 201 (Not found in the database) – if zone with the specified ID cannot be found or
belongs to another user.
• 231 (Entity type mismatch) – if type of the submitted zone differs from type of the
zone currently stored in the database.
upload
MUST be a POST multipart request (multipart/form-data), with one of the parts being a
KML file upload (with the name "file").
parameters
Skip to content
responses
if dry_run=true :
{
"success": true,
"list": [
{
"id": null,
"label": "Simple line 1",
"address": "",
"color": "27A9E3",
"points": [
{
"lat": 37.818844,
"lng": -122.366278,
"node": true
},
{
"lat": 37.819267,
"lng": -122.365248,
"node": false
},
{
"lat": 37.819861,
"lng": -122.36564,
"node": false
},
{
"lat": 37.819429,
"lng": -122.366669,
"node": true
}
],
"radius": 150,
Skip to content
"type": "sausage"
}
]
}
if dry_run=false :
{
"success": true,
"list": [ 1, 2 ]
}
errors
• 202 (Too many points in a zone) – max allowed points count for a zone is 100 for a
polygon or 1024 for sausage.
From Placemark with Point geometry will be created circle geofence with a
radius=default_radius.
From Placemark with LineString geometry will be created route geofence with a
radius=default_radius.
From Placemark with Polygon geometry will be created polygon geofence. Polygons
with holes not supported. In that case only the outer boundary will be imported and the
inner boundary, holes, ignored.
All actions to retrieve and manipulate points of the zone. Note that "circle" zone type
cannot have points.
{
"lat": 11.0,
"lng": 22.0,
"node": true
}
list
parameters
HTTP GET
https://api.navixy.com/v2/fsm/zone/point/list?
hash=a6aa75587e5c59c32d347da438505fc3&zone_id=1234567
response
{
"success": true,
"list": [{
"lat": 11.0,
"lng": 22.0,
"node": true
}]
}
errors
• 201 (Not found in the database) – if zone with the specified ID cannot be found or
belongs to another user.
• 230 (Not supported for this entity type) – if zone cannot have any points associated
with it (e.g. if zone is circle).
update
parameters
points
name description type
Skip to content
Array of new points for this zone. Must contain at least array of
3 elements. Maximum number of points depends on JSON
zone type. objects
examples
cURL
response
{ "success": true }
errors
• 201 (Not found in the database) – if zone with the specified ID cannot be found or
belongs to another user.
• 202 (Too many points in a zone) – if "points" array size exceeds limit for this zone
type. Max allowed points count for a zone is 100 for a polygon or 1024 for sausage.
• 230 (Not supported for this entity type) – if zone cannot have any points associated
with it (e.g. if zone is circle).
Introduction
WebSocket is the alternate transport to getting data from the server. The process of
notification about events occurs from the server to the client through a constantly open
connection. This allows you to display changes in real time.
Currently, the Atmosphere Framework used as an application layer library and protocol.
Standard workflow
Let's describe a standard workflow for WebSocket API:
2. Authorize with user/auth. This API method will return the hash you should use for
all your next API calls.
Note what: * The subscription requests must contain the hash parameter obtained
through user/auth action. * Responses and errors for the subscribe and unsubscribe
actions are similar with common API format. * All WebSocket frames use a JSON
format. Exceptions are heartbeat frames containing "X".
Open connection
In a simplified form, opening a websocket using atmosphere-javascript looks like this:
var request = {
url: 'https://domain.com/event/subscription',
contentType: "application/json",
transport: 'websocket'
};
atmosphere.subscribe(request);
Skip to content
ws://domain.com/event/subscription?X-Atmosphere-tracking-id=0&X-
Atmosphere-Framework=2.3.6-javascript&X-Atmosphere-
Transport=websocket&Content-Type=application/json&X-atmo-
protocol=true
and upgrade the connection to websocket. After what will be sent a first frame through
opened websocket channel:
b623a15d-9623-4fd8-a9d3-697036635c29|30000|X|
This is service message for the Atmosphere protocol negotiation. Now everything is
ready to subscribe on events.
Common fields
All messages from client side contain field 'action' with action name (e.g. "subscribe" or
"unsubscribe").
All messages from server side contain field 'type' with message type ("event",
"response" or "error") and data with a payload.
The subscribe and unsubscribe actions are used by client-side to subscribe on server
events and unsubscribe from them. This actions are similar with any other API REST
actions, but must be sending inside an open WebSocket channel and use only JSON
format for the messages between client and server.
Subscribe Action
Request
Request parameters:
• hash (required, string, length=32): session hash code gotten by user/auth action.
• trackers (required, int[], without nulls) - list of tracker ids for the events that require
a subscription.
• events (required, enum[], without nulls) - list of events to subscribe. Event can be
one of: state .
Request sample:
{
"action": "subscribe",
"hash": "f4bf1b75403d851653dad99c78c4b237",
"events": ["state"],
"trackers": [15564, 15565, 15568]
}
Response
Response parameters:
• events (required, enum[], without nulls) - list of the subscribed events. Event can be
one of: state .
• data (required, map, without nulls) - map with the events subscription result. One
key on each subscribed event.
• state (presents if the "state" subscription requested, map) - the current status of
Skiprequested
to contenttrackers.
• normal - non-blocked, normal status. The state events for this tracker will be
delivered to client.
• blocked - tracker is blocked. The state events for this tracker will not be delivered to
client.
The lifecycle events will be delivered. After unblocking, current tracker state will be sent
automatically.
Response sample:
{
"type": "response",
"action": "subscription/subscribe",
"events": ["state"],
"data": {
"state": {
"15564": "normal",
"15565": "blocked",
"15568": "unknown"
}
}
}
After subscribe on the "state", server will send the current states of all non-blocked
trackers to which the subscription was made. When changing the state of any tracker to
which a subscription is made, the server will send a new state in event message.
Automatic subscriptions
Request
Request parameters:
• hash (required, string, length=32): session hash code gotten by user/auth action.
• trackers (required, int[], without nulls) - list of tracker ids for the events that require
an unsubscription.
• events (required, enum[], without nulls) - list of events to unsubscribe. Event can be
one of: state .
Request sample:
{
"action": "unsubscribe",
"hash": "f4bf1b75403d851653dad99c78c4b237",
"events": ["state"],
"trackers": [15568]
}
Response
Response parameters:
• events (required, enum[], without nulls) - list of the unsubscribed events. Event can
be one of: state .
• data (required, int[], without nulls) - list of the tracker ids from request.
Response sample:
{
"type": "response",
"action": "subscription/unsubscribe",
"events": ["state"],
"data": [15568]
}
Error Response
Skip to content
If something goes wrong, the server may respond with an error. Error codes are similar
to the API errors codes.
• data (optional, string) - part of parameters from request or some info for
unexpected errors.
{
"type": "error",
"action": "subscription/subscribe",
"status": {
"code": 3,
"description": "Wrong user hash"
},
"data": {
"events": ["state"],
"trackers": [15564]
}
}
The server sends an event message through the WebSocket channel when an event
occurs and client has subscription on this. All of the event messages contains the
fields:
• type - "event".
State event
This messages are coming from server if client is subscribed. to the state events of
the specific tracker and this tracker is not blocked. It's occur in the cases:
Message fields:
• type - "event".
• event - "state".
Message sample:
{
"type": "event",
"event": "state",
"user_time": "2018-10-17 12:51:55",
"data": {
"source_id": 10284,
"gps": {
"updated": "2018-10-17 12:51:43",
"signal_level": 100,
"location": {
"lat": 14.330065796228606,
"lng": -90.99037259141691
},
"heading": 248,
"speed": 0,
"alt": 431
},
Skip to content
"connection_status": "active",
"movement_status": "parked",
"gsm": null,
"last_update": "2018-10-17 12:51:46",
"battery_level": null,
"battery_update": null,
"inputs": [false, false, false, false, false, false, false,
false],
"inputs_update": "2018-10-17 12:51:43",
"outputs": [false, false, false, false, false, false, false,
false],
"outputs_update": "2018-10-17 12:51:43",
"actual_track_update": "2018-10-04 22:47:07"
}
}
Lifecycle event
This messages are coming from server if client is subscribed. to the state events of
the specific tracker. It's occur in the cases:
• Tracker is blocked.
• Tracker is unblocked.
Message fields:
• type - "event".
• event - "lifecycle".
Message sample:
{
"type": "event",
"event": "lifecycle",
"data": {
"source_id": 123456,
"lifecycle_event": "block"
}
}
Skip to content
Logout event
These messages are coming from server if client is subscribed. to the any event. It's
occur in cases:
Message fields:
• type - "event".
• event - "logout".
Message sample:
{
"type": "event",
"event": "logout",
"data": "session closed"
}
Delivery is a special plugin which can be embedded to any other application or website
and allow to track user's task by external ID and bounded tracker in the real time.
Usage
https://saas.navixy.com/pro/applications/delivery/?
key=GENERATED_KEY
Parameters
The plugin can be easily customized with the following parameters provided as GET
params:
• performer\_type – You can use an employee or vehicle label as the tracker marker
label. Values: employee , vehicle , tracker .
• hide\_task (1,0) – Hides task. In this mode you can track only the tracker(courier).
• display\_fields – You can show only important information in the task info
panel. Names of fields are listed through a comma. Fields: label, description,
address, period.
• panel\_align – Specifies the task info panel align. Values: tl – Top-Left corner,
tr – Top-Right corner, bl – Bottom-Left corner, br – Bottom-Right corner.
• panel\_scale – Specifies the task info panel size. Values: small , medium , big –
medium is the default value.
• color – Specifies the task marker and the tracker marker color. Values: FF0000
(red), FF9900 (orange), 339966 (green), 3366FF (blue). FF9900 (orange) by
default.
Autoscaling
Autoscaling means that the scale of the map and the center of the area are
automatically selected so that all displayed objects are visible.
autoscale :
• 0 – do not scale
Map scale
The zoom parameter allows to specify map scale by default. Parameter will be ignored
with switched on autoscaling.
map :
• roadmap – Google
• doublegis – 2Gis
• wikimapia – Wikimapia
• mailru – Mail.ru
• cdcom – Progorod
To use the calls described further you have to be authorized in system as it is described
according to the link: API authorization
Creating a key
{
"success": true,
"value": "206831ba32ec9d2a6f7b91b033a48912"
}
Important
Previous key (if you already have got one), will be replaced with the new one. All the
links like http://ui.domain.com/pro/applications/locator/?key= will not work anymore.
Retrieving a key
To acquire the key you have created earlier, please use the method
http://api.domain.com/user/session/delivery/read/?hash=USER_HASH
{
"success": true,
"value": "206831ba32ec9d2a6f7b91b033a48912"
}
"Web Locator" is a special plugin which can be embedded to any other application or
website and allow to track user's objects on the map in real-time.
Example
The following HTML texts is used to show on the map the objects from demo account:
<iframe src="https://saas.navixy.com/pro/applications/locator/?
key=14084cd4a31f702341afb3fd6f81e475"
width="900" height="400">
</iframe>
Usage
To start using the Weblocator user needs to acquire the GENERATED_KEY value. He or
she can copy this value from their private user area in the Web-interface or use
appropriate API call. Once user generates the key value, it won't expire and can be used
till user generates the newer key.
Insert the following HTML text on any web-page you require using the GENERATED_KEY
value.
<iframe src="https://saas.navixy.com/pro/applications/locator/?
key=GENERATED_KEY"
width="900" height="400">
</iframe>
Parameters
You can define window size, choose the background map layer, list the objects to show,
use autoscaling to track multiple objects.
All parameters are transferred to the Web locator application by the GET method. For
example:
?key=613e16fe56f14baa13c676eb9ddceb&width=600&height=400&map=1
or
Autoscaling
Autoscaling means that the scale of the map and the center of the area are
automatically selected so that all displayed objects are visible.
Trace
Traces behind the assets will be shown on the map, as defined by the duration value (in
seconds). Disabled by default.
Map scale
The zoom parameter allows to specify map scale by default. Parameter will be ignored
with switched on autoscaling.
zoom : from 0 to 18
Map choice
map :
• roadmap – Google
• doublegis – 2Gis
• wikimapia – Wikimapia
• mailru – Mail.ru
• yandexpublic – Yandex Public map
Skip to content
• cdcom – Progorod
• satellite – satellite
To use the calls described further you have to be authorized in system as it is described
according to the link: API authorization
Keys Generation
http://api.domain.com/user/session/weblocator/create/?
hash=USER_HASH
Important notice: previous key (if you already have got one), will be replaced with the
new one. All the links like http://ui.domain.com/pro/applications/locator/?
key=<old key> will not work anymore.
{
"success": true,
"value": "206831ba32ec9d2a6f7b91b033a48912"
}
Acquiring key
http://api.domain.com/user/session/weblocator/read/?hash=USER_HASH
{
"success": true,
"value": "206831ba32ec9d2a6f7b91b033a48912"
}
There are a number of options to user login page URL, which you can submit as GET-
parameters. You may use this feature for providing the links on external resources (e.g.
your website) to let your users go straight to the section they need, use some language
by default, etc.
Page section
You can define the section which your users land by default with partition parameter:
Language
• en_EN – English
• es_ES – Spanish
• ru_RU – Russian
• etc.
If this parameter is omitted, the language which was set by default for your service will
be used.
Examples
The next code will land user on login section with Spanish language:
http://<your_login_page_url>/login/?partition=demo&locale=es_ES
The code below lands user on quick registration form with default language set by
default:
http://<your_login_page_url>/login/?
Skip to content
partition=quick_register&locale=es_ES
Plugins are ready-to-use software extensions which can be embedded into 3-rd parties
software or web-projects.
Plugins are ready-to-use software extensions which can be embedded into 3-rd parties
software or web-projects.