Быстрый старт
Примеры обращений к основным методам API. Все запросы, кроме получения токена, требуют заголовок
Authorization: Bearer <токен>, полученный на шаге Авторизация. Адрес
сервера в примерах — nav.gpspos.ru; у вашей компании он может отличаться.
Все методы располагаются под путём /api/ относительно адреса сервера (см.
базовый путь).
В примерах ответов приведены наиболее востребованные поля; полный состав полей каждой модели указан в Swagger UI (nav.gpspos.ru/api/docs).
Профиль пользователя
GET /api/Profile
Возвращает сводные данные пользователя.
curl https://nav.gpspos.ru/api/Profile \
-H "Authorization: Bearer <токен>"
Структура ответа:
{
"Objects": [],
"Geozones": [],
"ObjectIcons": [],
"ServerTime": 1750000000000
}
Objects— объекты пользователя с датчиками; состав элемента совпадает с ответомGET /api/Objects.Geozones— геозоны пользователя.ObjectIcons— справочник иконок объектов.ServerTime— текущее время сервера в миллисекундах Unix-времени.
Список объектов
GET /api/Objects
Возвращает массив объектов мониторинга, доступных пользователю по правам доступа.
curl https://nav.gpspos.ru/api/Objects \
-H "Authorization: Bearer <токен>"
Пример элемента ответа:
[
{
"Id": 123,
"CompanyId": 45,
"CompanyName": "Демо-компания",
"ClusterId": 1,
"Name": "Грузовик 01",
"IMEI": "861234567890123",
"DeviceType": "Teltonika FMB920",
"StateNumber": "А123ВС777",
"Phone": "+70000000000",
"IconId": 12,
"TrackColor": "#1E90FF",
"Status": 1,
"Timeout": 600,
"MaxSpeed": 90,
"TimeZone": "Europe/Moscow",
"CreateDate": "2025-01-15T10:00:00",
"GroupIds": [7],
"Sensors": [
{
"Id": 501,
"Name": "Зажигание",
"Source": "din1",
"Units": "",
"DataType": 1,
"OnText": "Вкл",
"OffText": "Выкл",
"CalibrationTable": []
}
]
}
]
Status— состояние объекта:0— заблокирован,1— активен,10— неисправен,11— на обслуживании,15— не установлен,255— удалён.CreateDate— дата создания объекта строкой в формате ISO 8601; остальные поля времени передаются в миллисекундах Unix-времени.Sensors— датчики объекта;Sourceсодержит имя входа устройства,CalibrationTable— тарировочную таблицу.
Метод GET /api/Objects/lite возвращает тот же перечень в сокращённом составе полей: Id,
ClusterId, Name, Comment, IMEI, Phone, Phone1, Flags, IconId, CompanyId,
DeviceType, TrackColor, CreateDate, Status. Поиск объекта по IMEI выполняется методом
GET /api/Objects/byimei/{imei} и возвращает одну запись в том же формате.
Статус всех объектов
GET /api/ObjectsStatus
Возвращает текущее состояние всех доступных объектов. Для одного объекта —
GET /api/ObjectsStatus/{id}.
curl https://nav.gpspos.ru/api/ObjectsStatus \
-H "Authorization: Bearer <токен>"
Пример ответа:
{
"Positions": [
{
"ObjectId": 123,
"Online": true,
"Lat": 55.751244,
"Lng": 37.618423,
"Alt": 156,
"Time": 1750000000000,
"Speed": 42,
"heading": 275,
"Sat": 11,
"Accuracy": 5
}
],
"SensorValues": [
{ "SensorId": 501, "Time": 1750000000000, "Value": 1 }
],
"DriverKeys": [
{ "ObjectId": 123, "Time": 1749998000000, "UId": "1A2B3C4D" }
],
"Stats": [
{
"ObjectId": 123,
"Day": 1749945600000,
"Length": 184.5,
"MoveTime": 12600,
"ParkTime": 71400,
"IdleTime": 1800,
"EngineTime": 14400,
"AvgSpeed": 53,
"MaxSpeed": 89,
"Fuel": 62.3
}
]
}
Positions— последняя позиция объекта. Поле направления движения называетсяheading— строчными буквами, в отличие от остальных полей.SensorValues— последние показания датчиков;SensorIdсоответствует полюIdв массивеSensorsобъекта.DriverKeys— последний приложенный ключ водителя,UId— его идентификатор.Stats— суточная статистика:Lengthв километрах,MoveTime,ParkTime,IdleTimeиEngineTimeв секундах,Day— начало суток в миллисекундах Unix-времени.
История объекта
POST /api/ObjectsHistory
Возвращает трек, события, файлы и показания датчиков объекта за
указанный интервал. Длительность интервала — не более одного месяца; при её превышении возвращается
400 Bad Request.
Тело запроса:
{
"ObjectId": 123,
"From": 1750000000000,
"Till": 1750086400000
}
ObjectId— идентификатор объекта.From,Till— начало и конец интервала в миллисекундах Unix-времени.
curl -X POST https://nav.gpspos.ru/api/ObjectsHistory \
-H "Authorization: Bearer <токен>" \
-H "Content-Type: application/json" \
-d '{"ObjectId":123,"From":1750000000000,"Till":1750086400000}'
Пример ответа:
{
"Track": {
"Intervals": [
{
"From": 1750000000000,
"Till": 1750003600000,
"Position": { "Lat": 55.751244, "Lng": 37.618423, "Alt": 156 }
},
{
"From": 1750003600000,
"Till": 1750007200000,
"Positions": [
{
"Lat": 55.751244,
"Lng": 37.618423,
"Alt": 156,
"Time": 1750003600000,
"Speed": 0,
"heading": 275,
"Sat": 11
}
]
}
]
},
"Events": [
{
"Id": 90001,
"ObjectId": 123,
"Time": 1750004000000,
"Type": 2,
"Status": 1,
"Text": "Превышение скорости",
"ResetTime": 0,
"NotificationId": 15
}
],
"Files": [
{ "ObjectId": 123, "Time": 1750004500000, "Type": "image/jpeg", "Uid": "9f1c…" }
],
"Sensors": [
{
"SensorId": 501,
"Intervals": [
{
"From": 1750000000000,
"Till": 1750007200000,
"Values": [ { "Time": 1750000000000, "Value": 1 } ]
}
]
}
],
"Violations": {
"SpeedViolations": [],
"AccelerationViolations": [],
"BrakingViolations": [],
"TurningViolations": [],
"AccelerometerFaulty": false
}
}
Track.Intervalsсодержит интервалы двух видов. Интервал стоянки содержит полеPositionс одной точкой; интервал движения — полеPositionsс массивом точек. Отдельного поля-признака вида интервала нет.Events— события за период;Typeпредставляет собой битовую маску типа события,NotificationIdравен нулю для системных событий и событий с удалённым правилом.Files— файлы, полученные с устройства за период. Тело файла загружается методомGET /api/ObjectFiles/{id}.Sensors— показания датчиков, сгруппированные по датчику и интервалу.Violations— объект, а не массив: нарушения разнесены по категориям, признакAccelerometerFaultyуказывает на некорректные показания акселерометра за период.
События и их квитирование
GET /api/Events/feed
POST /api/Events/ack
GET /api/Events/feed возвращает неквитированные
события для ленты оповещений — без событий из групп,
отключённых пользователем. Метод GET /api/Events возвращает тот же перечень без указанной
фильтрации.
curl https://nav.gpspos.ru/api/Events/feed \
-H "Authorization: Bearer <токен>"
Пример ответа:
[
{
"Id": 90001,
"ObjectId": 123,
"Time": 1750004000000,
"Type": 2,
"Status": 1,
"Text": "Превышение скорости",
"ResetTime": 0,
"NotificationId": 15
}
]
Обработанные события квитируются по списку идентификаторов Id; неквитированное событие
возвращается в каждом последующем ответе:
curl -X POST https://nav.gpspos.ru/api/Events/ack \
-H "Authorization: Bearer <токен>" \
-H "Content-Type: application/json" \
-d '[1001,1002,1003]'
Метод возвращает пустое тело ответа.
Отправка команды на объект
POST /api/Commands/run
Отправляет команду на список объектов — по шаблону
(TemplateId, перечень шаблонов — GET /api/CommandTemplates) либо произвольной строкой
(Command).
Тело запроса:
{
"ObjectIds": [123],
"TemplateId": 7,
"Command": ""
}
curl -X POST https://nav.gpspos.ru/api/Commands/run \
-H "Authorization: Bearer <токен>" \
-H "Content-Type: application/json" \
-d '{"ObjectIds":[123],"TemplateId":7}'
Метод возвращает пустое тело ответа. Успешный ответ означает, что команда принята и поставлена в очередь на отправку устройству; результат её выполнения отражается в событиях объекта.
Адреса по координатам
POST /api/ReverseGeocoder
Принимает список координат и возвращает соответствующие им адреса. Порядок элементов ответа совпадает с порядком координат в запросе.
curl -X POST https://nav.gpspos.ru/api/ReverseGeocoder \
-H "Authorization: Bearer <токен>" \
-H "Content-Type: application/json" \
-d '[{"Latitude":55.751244,"Longitude":37.618423}]'
Пример ответа:
[
{ "Address": "Москва, Красная площадь", "Street": "Красная площадь", "Error": null }
]
Поле Error содержит описание ошибки, если адрес для координаты определить не удалось.
См. также
- Методы API — перечень методов по группам.
- Ошибки и коды ответов — формат ошибок и коды состояния HTTP.
- Swagger UI (nav.gpspos.ru/api/docs) — полные схемы запросов и ответов с возможностью выполнить запрос из браузера.