Интеграция логистики по API представляет собой процесс обмена данными между нашей системой и другими приложениями (такими как система ERPI), что значительно упрощает и автоматизирует бизнес-процессы, связанные с доставкой, отгрузкой, отслеживанием объектов.
По вашему запросу, с помощью ключа API, система логистики получает доступ к внешним сервисам, таким как службы доставки, транспортные компании, поставщики услуг третьей стороны и другие системы, например системы электронной коммерции или системы управления клиентскими отношениями (1C). С помощью этого интерфейса система логистики может передавать информацию о маршрутах, заказах, отгрузках, трекинге и получать обратную связь о состоянии доставки или обновлениях внешних систем.
Импорт готовых маршрутов, с дальнейшим их использованием в системе
[
{
"route_name": "0.ТК Звезды",
"state_number": "ТК Звезды",
"groups": [
"Группа № 1"
],
"carriers": [
{
"name": "Название перевозчика",
"uid": "1652555",
"phone": "12345678910"
}
],
"zone": "Зона № 1",
"date_end": 1752609600,
"date_start": 1752548400,
"distance_fact": 149.7,
"distance_plan": 13.3,
"driver_name": "Петр",
"driver_surname": "Петров",
"driver_patronymic": "Петрович",
"driver_phone": "+79991234567",
"device_id": "123456789",
"imei": "123456789012345",
"orders": [
{
"address": "620000, Свердловская обл, Екатеринбург г, Совхозный п, Городская ул, дом № 20",
"arrival_plan_time": 1752570000,
"departure_plan_time": 1752570600,
"lat": 56.765365,
"lng": 60.566563,
"radius": 150,
"name": "Девон",
"time_window_from": 1724014800,
"time_window_to": 1724101140,
"uid": "PS_P0000042019",
"unloading_plan_time": 901,
"visited": true,
"visited_source": "gps",
"visited_date": 1724011200,
"arrival_fact_time": 1724011200,
"unloading_fact_time": 902,
"departure_fact_time": 1724015701,
"late": 10,
"distance_from_start": 2.17,
"distance_from_prev": 0,
"visiting order": 1,
"zone": "Зона № 1",
"loads": {
"weight_unloading": 29.4,
"units_unloading": 10
}
},
{
"address": "620000, Свердловская обл, Екатеринбург г, Совхозный п, Городская ул, дом № 1A",
"arrival_plan_time": 1752571200,
"departure_plan_time": 1752572000,
"lat": 56.754830,
"lng": 60.570938,
"radius": 150,
"name": "Девон1",
"time_window_from": 1724014800,
"time_window_to": 1724101140,
"uid": "PS_P0000042018",
"unloading_plan_time": 901,
"visited": true,
"visited_source": "gps",
"visited_date": 1724011200,
"arrival_fact_time": 1724011200,
"unloading_fact_time": 902,
"departure_fact_time": 1724015701,
"late": 10,
"distance_from_start": 2.17,
"distance_from_prev": 0,
"visiting order": 1,
"zone": "Зона № 1",
"loads": {
"weight_unloading": 29.4,
"units_unloading": 10
}
}
]
}
]
* - опциональные поля
"route_name" (string) название маршрута
"distance_plan" (float64) планновое расстояние маршрута, километры*
"distance_fact" (float64) пройденное расстояние маршрута, километры*
"duration_plan" (int) планновая длительность маршрута, секунды*
"duration_fact" (int) фактическая длительность маршрута, секунды*
"state_number" (string) госномер*
"date_start" (int) дата начала маршрута (по умолчанию используется date из параметров запроса)*
"date_end" (int) дата окончания маршрута (по умолчанию используется date из параметров запроса)*
"driver_name" (string) имя водителя*
"driver_surname" (string) фамилия водителя*
"driver_patronymic" (string) отчество водителя*
"driver_phone" (string) телефон водителя*
"device_id" (string) ID трекера*
"imei" (string) IMEI трекера*
"zone" (string) зона, к которой привязан транспорт*
"groups" ([]string) группы в которых находится маршрут*
"carriers" ([]object) массив с перевозчиками выполняющими маршрут*
[{
"name" (string) название перевозчика
"uid" (string) уникальный ID перевозчика*
"phone" (string) контактный телефон перевозчика*
}]
"total_cost_plan" (float64) - плановая общая стоимость маршрута*
"total_cost_fact" (float64) - фактическая общая стоимость маршрута*
"orders" | "points" (array) список заказов (при загрузке маршрутов с заказами) или точек (при загрузке маршрутов с точками)
[
{
"address" (string) адрес заказа
"arrival_plan_time" (int64) плановое время прибытия
"departure_plan_time" (int64) плановое время убытия
"lat" (float64) широта
"lng" (float64) долгота
"radius" (int) радиус точки, метры
"name" (srting) название точки заказа - УНИКАЛЬНЫЙ
"time_window_to" (int64) временное окно "от"*
"time_window_from" (int64) временное окно "до"*
"uid" (string) идентификатор заказа - УНИКАЛЬНЫЙ
"unloading_plan_time" (int64) плановое время разгрузки товара
"visited" (boolean) флаг посещения заказа*
"visited_source" (string) источник определения посещения (gps/mobile/manual)*
"visited_date" (int64) серверное время посещения точки*
"distance_from_start" (float64) расстояние от склада, километры*
"distance_from_prev" (float64) расстояние от предидущей точки, километры*
"arrival_fact_time" (int) фактическое время прибытия*
"unloading_fact_time" (int64) фактическое время разгрузки товара*
"departure_fact_time" (int64) фактическое время убытия*
"late" (int) опоздание на точку, в секундах*
"zone" (string) зона, к которой привязана точка*
"visiting_order" (int) порядок посещения точки*
"loads": { параметры загруженности*
"weight_unloading" (float64) вес разгрузки, кг*
"units_unloading" (float64) мест разгрузки, ед.*
"volume_unloading" (float64) объем разгрузки, м3*
"volume_loading" (float64) вес загрузки, кг*
"units_unloading" (float64) мест загрузки, ед.*
"volume_loading" (float64) объем загрузки, м3*
},
}
],
{
"code": 200,
"result": "operation_completed_successfully",
"success": true
}
1. Ошибка авторизации
При отправке запроса, необходима обязательная авторизация.
Передайте или проверьте корректность введенного токена
{
"code": 401,
"result": "error_authentication",
"success": false,
"error": "error_missed_auth_token"
}
{
"code": 401,
"result": "error_authentication",
"success": false,
"error": "error_bad_auth_token"
}
2. Ошибка неверного типа контента (Content-Type)
Укажите тип контента multipart/form-data или application/json при отправке запроса
{
"code": 400,
"result": "error_parse_request_form",
"success": false,
"error": "request Content-Type isn't multipart/form-data or application/json"
}
3. Ошибка отсутствия файла (multipart/form-data)
Файл является обязательным в теле запроса
{
"code": 400,
"result": "error_parse_request_form",
"success": false,
"error": "no multipart boundary param in Content-Type"
}
4. Ошибка несоответствия данных загруженного файла (multipart/form-data)
Проверьте корректность данных в соответствующих ячейках файла.
По вопросу шаблона файла, можно обратиться в поддержку компании
{
"code": 400,
"result": "Error parse request files",
"success": false,
"error": "one more xlsx file required"
}
5. Ошибка данных JSON
Проверьте структуру отправляемого запроса
// Ошибка структуры тела запроса JSON
{
"code": 400,
"success": false,
"error": "error_parse_json_data"
}
6. Ошибка обработки данных
Ошибка обработки данных. Проверьте корректность загружаемых данных
{
"code": 400,
"errors": [
{
"cell": "routes: index 1",
"field": "name",
"error": "error_required_attr"
}
], // Список ошибок
"success": false,
"error": "error_parse_data"
}
7. Ошибка импорта данных
Произошла ошибка при импорте данных, обратитесь в техническую поддержку.
{
"code": 500,
"result": "error_import_data",
"success": false,
"error": "error_import_data"
}
Результаты прохождения маршрутов можно выгрузить в форматах (JSON/XLSX)
// Пример запроса с указанием группы и формата
https://logistics.sputnik-monitor.ru/api/v1/integrator/export?date=19.08.2024&format=json&group=НАЗВАНИЕ
[
{
"route_name": "0.ТК Звезды",
"state_number": "ТК Звезды",
"groups": [
"Группа № 1"
],
"zone": "Зона № 1",
"date_end": 1724101199,
"date_start": 1724014800,
"distance_fact": 149.7,
"distance_plan": 13.3,
"driver_name": "Петр",
"driver_surname": "Петров",
"driver_patronymic": "Петрович",
"driver_phone": "+79991234567",
"device_id": "123456789",
"imei": "123456789012345",
"tracker_status": "online",
"orders": [
{
"address": "620000, Свердловская обл, Екатеринбург г, Совхозный п, Городская ул, дом № 20",
"arrival_plan_time": 1724011200,
"departure_plan_time": 1724015701,
"lat": 56.765365,
"lng": 60.566563,
"radius": 150,
"name": "Девон",
"time_window_from": 1724014800,
"time_window_to": 1724101140,
"uid": "PS_P0000042019",
"unloading_plan_time": 901,
"visited": true,
"visited_date": 1724011200,
"visited_source": "gps",
"arrival_fact_time": 1724011200,
"unloading_fact_time": 902,
"departure_fact_time": 1724015701,
"late": 10,
"distance_from_start": 2.17,
"distance_from_prev": 0,
"visiting order": 1,
"zone": "Зона № 1",
"loads": {
"weight_unloading": 29.4,
"units_unloading": 10
},
}
],
},
....
]
* - опциональные поля
"route_name" (string) название маршрута
"distance_plan" (float64) планновое расстояние маршрута, километры
"distance_fact" (float64) пройденное расстояние маршрута, километры
"duration_plan" (int) планновая длительность маршрута, секунды
"duration_fact" (int) фактическая длительность маршрута, секунды
"state_number" (string) госномер
"date_start" (int) дата начала маршрута
"date_end" (int) дата окончания маршрута
"driver_name" (string) имя водителя*
"driver_surname" (string) фамилия водителя*
"driver_patronymic" (string) отчество водителя*
"driver_phone" (string) телефон водителя*
"device_id" (string) ID трекера*
"imei" (string) IMEI трекера*
"tracker_status" (string) статус трекера (no_vehicle/no_tracker/offline/online)*
"zone" (string) зона, к которой привязан транспорт*
"groups" ([]string) группы в которых находится маршрут*
"total_cost_plan" (float64) - плановая общая стоимость маршрута*
"total_cost_fact" (float64) - фактическая общая стоимость маршрута*
"orders" | "points" (array) список заказов (при формировании маршрутов из заказов) или точек (при формировании маршрутов из точек)
[
{
"address" (string) адрес заказа
"arrival_plan_time" (int) плановое время прибытия
"departure_plan_time" (int) плановое время убытия
"lat" (float64) широта
"lng" (float64) долгота
"radius" (int) радиус точки, метры
"name" (srting) название точки заказа
"time_window_to" (int64) временное окно "от"
"time_window_from" (int64) временное окно "до"
"uid" (string) идентификатор заказа
"unloading_plan_time" (int64) плановое время разгрузки товара
"visited" (boolean) флаг посещения заказа*
"visited_source" (string) источник определения посещения (gps/mobile/manual)*
"visited_date" (int64) серверное время доставки заказа*
"distance_from_start" (float64) расстояние от склада, километры
"distance_from_prev" (float64) расстояние от предидущей точки, километры
"arrival_fact_time" (int) фактическое время прибытия*
"unloading_fact_time" (int64) фактическое время разгрузки товара*
"departure_fact_time" (int) фактическое время убытия*
"late" (int) опоздание на точку, в секундах*
"zone" (string) зона, к которой привязана точка*
"visiting_order" (int) порядок посещения точки*
"loads" { параметры загруженности*
"weight_unloading" (float64) вес разгрузки, кг*
"units_unloading" (float64) мест разгрузки, ед.*
"volume_unloading" (float64) объем разгрузки, м3*
"volume_loading" (float64) вес загрузки, кг*
"units_unloading" (float64) мест загрузки, ед.*
"volume_loading" (float64) объем загрузки, м3*
},
}
],
1. Ошибка авторизации
При отправке запроса, необходима обязательная авторизация.
Передайте или проверьте корректность введенного токена
{
"code": 401,
"result": "error_authentication",
"success": false,
"error": "error_missed_auth_token"
}
{
"code": 401,
"result": "error_authentication",
"success": false,
"error": "error_bad_auth_token"
}
2. Ошибка в параметрах запроса
При отсутствии обязательно передаваемых параметров в запросе, например, date, может вернуться соответствующая ошибка
{
"code": 400,
"result": "error_parse_params",
"success": false,
"error": "invalid_date_format, expected one of DD.MM.YYYY or DD.MM.YYYY-DD.MM.YYYY or DD.MM.YYYY HH:mm-DD.MM.YYYY HH:mm"
}
Выгрузка сводной информации по маршрутам в следующих форматах (JSON/XLSX)
// Пример запроса с указанием группы и формата
https://logistics.sputnik-monitor.ru/api/v1/integrator/statistics/export?date=19.08.2024&format=json&group=НАЗВАНИЕ
[
{
"route_label": "0.ТК Звезды",
"vehicle_label": "ТК Звезды",
"driver_label": "Петров Петр Петрович",
"groups": [
"Группа № 1"
],
"date_end": 1724101199,
"date_start": 1724014800,
"distance_fact": 22.6,
"distance_plan": 18.1,
"duration_fact": 16091,
"duration_plan": 29298,
"total_points" : 10,
"total_orders": 42,
"orders_overdued": 11,
"orders_visited": 23,
"orders_unvisited": 3,
"orders_planned": 1,
"points_overdued": 3,
"points_visited": 7,
"points_unvisited": 2,
"points_planned": 1,
"total_weight": 1500,
"total_volume": 3.5,
"total_units": 455,
"total_cost_plan": 2500,
"total_cost_fact": 2600,
"distance_cost_plan": 500,
"distance_cost_fact": 600,
"duration_cost_plan": 350,
"duration_cost_fact": 370,
"visits_cost": 400,
"fixed_cost": 350,
"trip_cost": 150,
"total_score": 4.7,
"total_penalty": 1200,
"oot_minute_penalty": 155,
"oot_fixed_penalty": 145,
"early_minute_penalty": 120,
"early_fixed_penalty": 245,
"drop_penalty": 100,
"late_minute_penalty": 50,
"late_fixed_penalty": 100
},
....
]
* - опциональные поля
"date_start" (int) дата начала маршрута
"date_end" (int) дата окончания маршрута
"route_label" (string) название маршрута
"vehicle_label" (string) госномер ТС*
"driver_label" (string) имя водителя*
"distance_plan" (float64) планновое расстояние маршрута, километры
"distance_fact" (float64) пройденное расстояние маршрута, километры
"duration_plan" (int) планновая длительность маршрута, секунды
"duration_fact" (int) фактическая длительность маршрута, секунды
"groups" ([]string) группы в которых находится маршрут*
"total_points" (int) всего точек*
"total_orders" (int) всего заказов*
"orders_overdued" (int) доставлено заказов с опозданием*
"orders_visited" (int) доставлено заказов*
"orders_unvisited" (int) не доставлено заказов*
"orders_planned" (int) заказов в ожидании доставки*
"points_overdued" (int) посещено точек с опозданием*
"points_visited" (int) посещено точек*
"points_unvisited" (int) не посещено точек*
"points_planned" (int) точек в ожидании посещения*
"total_weight" (float64) общий вес*
"total_volume" (float64) общий объем*
"total_units" (float64) общее количество мест*
"total_cost_plan" (float64) - плановая общая стоимость маршрута*
"total_cost_fact" (float64) - фактическая общая стоимость маршрута*
"distance_cost_plan" (float64) - плановая стоимость расстояния*
"distance_cost_fact" (float64) - фактическая стоимость расстояния*
"duration_cost_plan" (float64) - плановая стоимость времени*
"duration_cost_fact" (float64) - фактическая стоимость времени*
"visits_cost" (float64) - стоимость за посещение точек*
"fixed_cost" (float64) - фиксированая стоимость*
"trip_cost" (float64) - стоимость за рейс*
"total_score" (float64) - KPI*
"total_penalty" (float64) - штрафы, всего*
"oot_minute_penalty" (float64) - штраф за несвоевременно посещение, поминутно*
"oot_fixed_penalty" (float64) - фиксированный штраф за несвоевременно посещение*
"early_minute_penalty" (float64) - штраф за преждевременное посещение, поминутно*
"early_fixed_penalty" (float64) - фиксированный штраф за преждевременное посещение*
"drop_penalty" (float64) - штраф за не посещение точки*
"late_minute_penalty" (float64) - штраф за опоздание, поминутно*
"late_fixed_penalty" (float64) - штраф за опоздание, поминутно*
1. Ошибка авторизации
При отправке запроса, необходима обязательная авторизация.
Передайте или проверьте корректность введенного токена
{
"code": 401,
"result": "error_authentication",
"success": false,
"error": "error_missed_auth_token"
}
{
"code": 401,
"result": "error_authentication",
"success": false,
"error": "error_bad_auth_token"
}
2. Ошибка в параметрах запроса
При отсутствии обязательно передаваемых параметров в запросе, например, date, может вернуться соответствующая ошибка
{
"code": 400,
"result": "error_parse_params",
"success": false,
"error": "invalid_date_format, expected one of DD.MM.YYYY or DD.MM.YYYY-DD.MM.YYYY or DD.MM.YYYY HH:mm-DD.MM.YYYY HH:mm"
}
При импорте заказов и маршрутов, получаем автоматически сгенгерированные маршруты
{
// Опции маршрутизации
"options": {
"merge_multi_orders": true, // Слияние ближайших заказов
"group": "название группы", // Название группы в которой будут находится маршруты
"solver_time_limit": 800 // Временное ограничение продолжительности построения маршрутов
},
// Транспорт
"vehicles": [
{
"number": "AA123BC", // Номер ТС
"id": "AA123BC", // ID ТС
"phone": "+71234567890", // Телефон водителя
"imei": "123456789012345", // IMEI трекера
"tags": [], // Свойства ТС ([]string)
"excluded_tags": [], // Несовместимые свойства ТС ([]string)
"group": "название группы", // Группа, которую должен попасть маршрут
"visit_wh_on_start": true, // Посещение склада в начале смены
"return_to_wh": true, // Возврат на склад в конце смены
"finish_at_start_wh": false, // Возврат первый на склад в конце смены
"visit_wh_id": [], // ID посещаемых складов ([]string)
"start_wh_id": [], // ID посещаемых складов в начале смены ([]string)
"end_wh_id": [], // ID посещаемых складов в конце смены ([]string)
"start_point_id": "", // ID точки с которой должен начаться маршру
"finish_point_id": "", // ID точки в которй должен завершится маршрут
"incompatible_load_types": [], // Не совместимые типы заказов ([]string)
"priority": 100, // Приоритет
// Вместимость
"capacity": {
"width": 0, // Ширина
"height": 0,// Высота
"depth": 0,// Глубина
"volume_cbm": 0,// Объем, кубометры
"weight": 0,// Вес, киллограмы
"units": 0,// Количество мест
// Максимально допустимая загрузка, % от вместимости
"limits_percents": {
"weight": 105, // Вес
"units": 97, // Мест
"volume_cbm": 110 // Объем
}
},
// Стоимость использования
"costs": {
"fixed": 5000, // За факт использования ТС
"per_hour": 100, // За час работы
"per_km": 50, // За км пути
"per_trip": 5000, // За 1 рейс
"per_visit": 750 // За посещение одного адреса
},
// Смена 1
"shift_first": {
"from": "2024-09-01T00:00:00+03:00", // Начало смены
"to": "2024-09-01T23:59:00+03:00", // Окончание смены
"excees_stops_penalty_fixed": 0, // Штраф за остановки сверх допустимого количества
"excees_stops_penalty_per_stop": 0, // Штраф за каждую остановку сверх допустимого количества
"is_flexible_start_time": false, // Гибкое начало смены
"is_hard": false, // Жесткое временное окно
"lack_stops_penalty_fixed": 0, // Штраф за остановки менее допустимого количества
"lack_stops_penalty_per_stop": 0, // Штраф за каждую остановку менее допустимого количества
"max_duration": 43200, // Максимальная длительность смены
"max_stops": 15, // Максимальное количество остановок
"min_stops": 2, // Минимальное количество остановок
"penalty_fixed": 0, // Штраф за факт нарушения окна смены, руб
"penalty_per_minute": 0, // Штраф за минуту нарушения окна смены, руб
"prepare_duration": 0, // Время на подготовку к смене, с
},
}
],
// Заказы
"orders": {
"Заказ № 1": {
"id": "Заказ 1", // ID заказа
"number": "Заказ 1", // Номер заказа
"address": "Адрес заказа", // Адрес расположения заказа
"title": "Название заказа", // Название заказа
"comments": "", // Дополнительная ифнормация к заказу
// Координаты и радиус
"geometry": {
"lat": 52.25452, // Широта
"lng": 35.24567, // Долгота
"radius": 100 // Радиус
},
"can_be_merged": true, // Сливать в единый заказ все ближайшие совместимые заказы
"load_types": [], // Совместимые типы заказов для слияния ([]string)
"group": "", // Ключ группировки заказов
"required_tags": [], // Требуемые свойства ТС ([]string)
"type": "delivery", // Тип заказа: delivery/pickup/garage
"wh_load_duration": 0, // Время загрузки на складе
// Временное окно
"time_window": {
"from": "2024-09-01T00:00:00+03:00", // Время начала рабоиы
"to": "2024-09-01T23:59:00+03:00", // Время окончания работы
"is_flexible_start_time": true, // Гибкое время начала работы
"is_hard": false // Жесткое временное окно
},
// Время на обслуживание, в секундах
"service_time": {
"parking_time": 1, // Время на парковку
"unloading_time": 900 // Время на разгрузку/загрузку
},
// Габариты, вес, объем, количество мест
"capacity": {
"width": 0, // Ширина
"height": 0, // Высота
"depth": 0, // Глубина
"volume_cbm": 0, // Объем, кубометры
"weight": 0, // Вес, киллограмы
"units": 0 // Количество мест, единицы
},
}
},
// Склад {"ID склада": {объект склада}}
"warehouses": {
"Склад 1": {
"id": "Склад 1", // ID слада
"ref": "Склад 1", // Дополнительный ID склада
// Координаты и радиус
"geometry": {
"lat": 52.25452, // Широта
"lng": 35.24567, // Долгота
"radius": 100 // Радиус
},
"begin_service_duration": 3600, // Время для обслуживание при старте маршрута
"end_service_duration": 3600, // Время для обслуживание при завершении маршрута
// Временное окно
"time_window": {
"from": "2024-09-01T00:00:00+03:00", // Время начала рабоиы
"to": "2024-09-01T23:59:00+03:00", // Время окончания работы
"is_flexible_start_time": true, // Гибкое время начала работы
"is_hard": false // Жесткое временное окно
},
// Штрафы
"penalty": {
"oot_fixed": 20000,
"oot_per_minute": 340,
"throughput_fixed": 0,
"throughput_kg_per_hour": 0,
"throughput_per_kg": 0,
"throughput_units": 0,
"throughput_units_per_hour": 80
}
}
},
}
{
"code": 200,
"result": "operation_completed_successfully",
"success": true
}
1. Ошибка авторизации
При отправке запроса, необходима обязательная авторизация.
Передайте или проверьте корректность введенного токена
{
"code": 401,
"result": "error_authentication",
"success": false,
"error": "error_missed_auth_token"
}
{
"code": 401,
"result": "error_authentication",
"success": false,
"error": "error_bad_auth_token"
}
2. Ошибка неверного типа контента (Content-Type)
Укажите тип контента multipart/form-data или application/json при отправке запроса
{
"code": 400,
"result": "error_parse_request_form",
"success": false,
"error": "request Content-Type isn't multipart/form-data or application/json"
}
3. Ошибка отсутствия файла (multipart/form-data)
Файл является обязательным в теле запроса
{
"code": 400,
"result": "error_parse_request_form",
"success": false,
"error": "no multipart boundary param in Content-Type" или "one more xls/xlsx file required"
}
4. Ошибка декодирования JSON структуры (application/json)
Содержимое тела запроса должно соответствовать структуре []Dataset
{
"code": 400,
"result": "error_parse_request_form",
"success": false,
"error": "no multipart boundary param in Content-Type" или "one more xls/xlsx file required"
}
5. Ошибка несоответствия данных загруженного файла
Проверьте корректность данных в соответствующих ячейках файла.
По вопросу шаблона файла, можно обратиться в поддержку компании
{
"code": 400,
"result": [{"sheet": "лист", "cell": "номер ячейки", "error": "ошибка" }...], // список ошибок
"success": false,
"error": "error_parse_files"
}
Проверка статуса транспортных средств и трекеров.
URL: https://logistics.sputnik-monitor.ru/api/v1/integrator/vehicles/status
Метод: POST
Заголовки запроса:
Authorization: (токен авторизации)
Content-Type: application/json
Тело запроса:
В теле запроса можно передать массив объектов *Vehicle указаными госномерами ТС или IMEI трекеров, чтобы вернуть данные только по указанным ТС. Если не указано - то возвращается информация по всем ТС
{
"state_number": "АВ123СЕ", // Госномер ТС (запрос и ответ)
"imei": "12345678901", // IMEI трекера (запрос и ответ)
"device_id": "12345678901", // ID трекера, состоящий из последних 10 цифр IMEI (ответ)
"status": "online", // Статус ТС/Трекера (online - в сети, offline - не в сети, no_tracker - трекер не приязан к ТС, no_vehicle - ТС не найден в системе) (ответ)
"last_activity_time": 1739787640, // Время последней активности в формате UNIXTIME (ответ)
// Последнее местоположение (при наличии данных от трекера)
"position": {
"lat": 55.82837, // Широта
"lng": 37.308994, // Долгота
"direction": 330, // Направление движения
"altitude": 184, // Высота
"speed": 25, // Скорость
"ignition": true, // Статус зажигания
"address": "Россия, Московская область, городской округ Красногорск, Красногорск, Губайлово, улица Ленина (дублёр),31" // Адрес
}
}
[
{
"state_number": "АВ123СЕ"
},
{
"imei": "12345678901"
},
...
]
{
"code": 200,
"result": [ // Массив объектов *Vehicle
{
"state_number": "АВ123СЕ",
"device_id": "12345678901",
"imei": "12345678901"
"status": "online",
"last_activity_time": 1739787640,
"position": {
"lat": 55.82837,
"lng": 37.308994,
"direction": 330,
"altitude": 184,
"speed": 25,
"ignition": true,
"address": "Россия, Московская область, городской округ Красногорск, Красногорск, Губайлово, улица Ленина (дублёр),31"
}
},
{
"state_number": "АВ456СЕ",
"status": "no_tracker"
},
]
"success": true
}
1. Ошибка авторизации
При отправке запроса, необходима обязательная авторизация.
Передайте или проверьте корректность введенного токена
{
"code": 401,
"result": "error_authentication",
"success": false,
"error": "error_missed_auth_token"
}
{
"code": 401,
"result": "error_authentication",
"success": false,
"error": "error_bad_auth_token"
}
2. Ошибка обработки данных
При получении данных произошла обшибка, обратитесь в техническую поддержку
{
"code": 500,
"result": "error_process_data",
"success": false,
"error": "error_request_data: <Error>"
}
Получения списка событий маршрута ТС
URL: https://logistics.sputnik-monitor.ru/api/v1/integrator/vehicles/events
Метод: POST
Параметры запроса:
date - временной диапазоны в формате DD.MM.YYYY HH:mm-DD.MM.YYYY HH:mm
event_types - типы возвращаемых событий: no_data (нет данных), moving (движение), parking (стоянка). По умолчанию: moving,parking,no_data
offset - смещение часового пояса в минутах, по умолчанию - 180 (Msk+3)
Заголовки запроса:
Authorization: (токен авторизации)
Content-Type: application/json
Тело запроса:
В теле запроса можно передать массив объектов *Vehicle указаными госномерами ТС или IMEI трекеров, чтобы вернуть данные только по указанным ТС. Если не указано - то возвращается информация по всем ТС
{
"state_number": "АВ123СЕ", // Госномер ТС
"imei": "12345678901" // IMEI трекера
}
https://logistics.sputnik-monitor.ru/api/v1/integrator/vehicles/events?date=24.02.2025 00:00-24.02.2025 15:00&offset=180&event_types=moving,parking,no_data
[
{
"state_number": "АВ123СЕ"
},
{
"imei": "12345678901"
},
...
]
{
"code": 200,
"result": [ // Массив объектов для ТС у которых есть хотя бы одно событие
{
"state_numer": "АВ123СЕ",
"imei": "12345678901",
"device_id": "12345678901",
"events": [ // Массив событий
{
"ts_start": 1740376567, // Время начала события UNIXTIME
"ts_stop": 1740377311, // Время окончания события UNIXTIME
"distance": 603, // Пройденное расстояния в метрах (moving, no_data)
"event_type": "no_data",// Тип события (no_data/moving/parking)
"lat": 55.83177, // Широта (стоянки)
"lng": 37.346973 // Долгота (стоянки)
}
]
}
]
"success": true
}
1. Ошибка авторизации
При отправке запроса, необходима обязательная авторизация.
Передайте или проверьте корректность введенного токена
{
"code": 401,
"result": "error_authentication",
"success": false,
"error": "error_missed_auth_token"
}
{
"code": 401,
"result": "error_authentication",
"success": false,
"error": "error_bad_auth_token"
}
2. Ошибка в параметрах запроса
При отсутствии обязательно передаваемых параметров в запросе, например, date, может вернуться соответствующая ошибка
{
"code": 400,
"result": "error_parse_params",
"success": false,
"error": "invalid_date_format, expected DD.MM.YYYY HH:mm-DD.MM.YYYY HH:mm"
}
3. Ошибка обработки данных
При получении данных произошла обшибка, обратитесь в техническую поддержку
{
"code": 500,
"result": "error_process_data",
"success": false,
"error": "error_request_data: <Error>"
}
Проверка адресов на корректность координат.
Если координаты всех точек - корректны, придет ответ 200 с пустым массивом некорректных точек.
Если координаты каких-либо точек некорректны, придет ответ 200 с массивом некорректных точек с исправленными координатами, если такой адрес разрешается в координаты на сервисе геокодирования. Если координаты получить не получится - будет статус not recognized.
При сбое сервиса - придет ответ со статусом 500 и ошибкой.
URL: https://logistics.sputnik-monitor.ru/api/v1/points/check
Метод: POST
Заголовки запроса:
Authorization: (токен авторизации)
Content-Type: application/json
Тело запроса:
В теле запроса требуется передать массив объектов *Point.
{
"code": "PS_P0000046000", // код точки
"name": "Винлаб-Запад(Сосенское ,28 кв)", // имя точки
"addr": "108803, Москва г, Сосенское п, 28 кв-л, дом № 1, корпус 2", // адрес точки
"lat": 55.600277, // широта
"lng": 37.413484 // долгота
}
[
{
"code": "PS_P0000046000",
"name": "Винлаб-Запад(Сосенское ,28 кв)",
"addr": "108803, Москва г, Сосенское п, 28 кв-л, дом № 1, корпус 2",
"lat": 55.600277,
"lng": 37.413484
},
{
"code": "PS_P0000045978",
"name": "Винлаб-Запад(Сосенское, Прокшинский)",
"addr": "Москва г, Сосенское п, Прокшино д, Прокшинский пр-т, дом № 11",
"lat": 55.59078,
"lng": 37.427435
}, ...
]
{
"code": 200,
"result": [],
"success": true
}
{
"code": 200,
"result": [
{
"code": "PS_P0000046148", // код точки
"name": "Винлаб-Запад(Сосенское, Веласкеса)", // имя точки
"raw_addr": "108827, Москва г, Сосенское п, Николо-Хованское д, Веласкеса б-р, дом № 5, корпус 5", // исходный адрес точки
"norm_addr": "not recognized", // адрес из геокодинга
"raw_lat": 37.458175, // исходная широта
"norm_lat": 0, // полученная широта
"raw_lng": 55.594107, // исходная долгота
"norm_lng": 0 // полученная долгота
},
{
"code": "AVA_0000-001415",
"name": "Шапкина", // если адрес указан неточно, то геокодинг может вернуть похожий адрес:
"raw_addr": "МКАД 24км", // здесь имелась ввиду кольцевая Москвы, но вернулась кольцевая Минска.
"norm_addr": "Беларусь, Минск, МКАД, 51-й километр",
"raw_lat": 37.734955,
"norm_lat": 53.9681171,
"raw_lng": 55.593995,
"norm_lng": 27.6030037
},
{
"code": "AVA_0000-001415",
"name": "Шапкина",
"raw_addr": "Москва, МКАД 24км", // здесь адрес корректный
"norm_addr": "Россия, Москва, Москва, МКАД, 35-й километр",
"raw_lat": 37.734955,
"norm_lat": 55.5802562,
"raw_lng": 55.593995,
"norm_lng": 37.57552
}
],
"success": true
}
1. Ошибка авторизации
При отправке запроса, необходима обязательная авторизация.
Передайте или проверьте корректность введенного токена
{
"code": 401,
"result": "error_authentication",
"success": false,
"error": "error_missed_auth_token"
}
{
"code": 401,
"result": "error_authentication",
"success": false,
"error": "error_bad_auth_token"
}
2. Ошибка обработки данных
При получении данных произошла обшибка, обратитесь в техническую поддержку
{
"code": 500,
"result": "error_process_data",
"success": false,
"error": "error_request_data: <Error>"
}
В случае отбивки точек задим числом (фактическое время посещения отстаёт от серверного времени больше чем на 2 суток), система создаёт задачи для повторной синхронизации данных. Каждая задача содержит ID маршрута и точек, которые необходимо повторно выгрузить. После обработки задач их необходимо завершить. Завершенные задачи больше не будут присутствовать в списке задач.
{
"id": "868898868", // Уникальный ID задачи
"date_start": 1746910800, // Дата начала маршрута
"date_end": 1746997199, // Дата окончания маршрута
"route": "849078188", // Уникальый ID маршрута
"points": ["691456238"], // Список ID точек маршрута
// URL для повторной выгрузки маршрута и точек, у которых отбивка прошла задним числом
"url": "https://logistics.sputnik-monitor.ru/api/v1/integrator/export?date=11.05.2025&format=json&offset=180&points=691456238&routes=849078188&token=<TOKEN>"
}
https://logistics.sputnik-monitor.ru/api/v1/integrator/tasks/list
{
"code": 200,
"result": [ // Массив задач
{
"id": "868898868",
"date_start": 1746910800,
"date_end": 1746997199,
"route": "849078188",
"points": [
"691456238"
],
"url": "http://localhost:8080/api/v1/integrator/export?date=11.05.2025&format=json&offset=180&points=691456238&routes=849078188&token=ed786d41-411a-4f84-a6d8-2cf94149a505"
},...
]
"success": true
}
1. Ошибка авторизации
При отправке запроса, необходима обязательная авторизация.
Передайте или проверьте корректность введенного токена
{
"code": 401,
"result": "error_authentication",
"success": false,
"error": "error_missed_auth_token"
}
{
"code": 401,
"result": "error_authentication",
"success": false,
"error": "error_bad_auth_token"
}
2. Ошибка получения данных
При получении данных произошла обшибка, обратитесь в техническую поддержку
{
"code": 500,
"result": "error_get_data",
"success": false,
"error": "error_get_data: <Error>"
}
При успешной обрабоке задачи необходимо завершить ей, чтобы исключить повторное получение этой задачи
https://logistics.sputnik-monitor.ru/api/v1/integrator/tasks/complete/868898868
{
"code": 200,
"result": "operation_completed_successfully"
"success": true
}
1. Ошибка авторизации
При отправке запроса, необходима обязательная авторизация.
Передайте или проверьте корректность введенного токена
{
"code": 401,
"result": "error_authentication",
"success": false,
"error": "error_missed_auth_token"
}
{
"code": 401,
"result": "error_authentication",
"success": false,
"error": "error_bad_auth_token"
}
2. Задача не найдена
Необходимо проверить корректность идентификатора задачи
{
"code": 404,
"result": "error_get_data",
"success": false,
"error": "error_get_data: <Error>"
}
2. Ошибка сохранения данных
При получении данных произошла обшибка, обратитесь в техническую поддержку
{
"code": 500,
"result": "error_save_data",
"success": false,
"error": "error_save_data: <Error>"
}