Подключение BI Analytics к BI‑системам
С помощью BI Analytics API вы можете подключить данные системы к любой BI-платформе и строить собственные отчёты, графики и дашборды.
В этой статье мы расскажем:
Для просмотра структуры методов BI Analytics API вы можете использовать документацию API в формате Swagger: BI API v1 — Swagger
В Swagger-документации вы можете:
— просмотреть все доступные методы API
— посмотреть структуру запросов и ответов
— скачать спецификацию API в формате JSON
Доступ к BI Analytics API настраивается на двух уровнях:
-
На уровне партнёрского аккаунта
2. На уровне договора пользователя
Чтобы доступ заработал, нужно:
— включить «Модуль аналитики» у партнёра
— включить «Модуль аналитики» в договоре пользователя
— добавить конфигурацию bi_analytics = 1 в карточке партнёра
Если у вас нет доступа к настройкам модулей или конфигурации на партнёрском договоре, обратитесь в службу поддержки.
|
-
Включите модуль аналитики на партнёрском аккаунте
1. В панели администратора перейдите в раздел «Партнёры»

2. Дважды кликните на выбранного партнера — откроется карточка партнёра
3. Перейдите на вкладку «Модули» и включите «Модуль аналитики»
4. Далее перейдите на вкладку «Конфигурация»
5. Нажмите кнопку «Добавить»
6. В списке выберите конфигурацию bi_analytics и укажите для неё значение 1

7. Сохраните изменения
2. Включите модуль аналитики на договоре пользователя
После включения модуля на партнёрском аккаунте нужно включить его и на конкретном договоре пользователя.
1. В панели администратора найдите нужный договор

2. Кликните на него правой кнопкой мыши и выберите «Редактировать»
3. В карточке договора перейдите на вкладку «Модули»
4. Включите «Модуль аналитики»
5. Сохраните изменения
После того как модуль аналитики включён и на партнёрском аккаунте, и на договоре пользователя, а конфигурация bi_analytics настроена — доступ к BI Analytics API будет включён.
Система начнёт собирать данные для аналитики, и вы сможете подключиться к API через Power BI.
Для подключения к BI Analytics API нужны логин и пароль партнёрского аккаунта.
Используйте те же данные, которые были выданы вам при регистрации партнёрского аккаунта. Это те же логин и пароль, которые используются для входа в панель администратора.
Если у вас есть доступ с правами главного администратора, вы можете посмотреть эти данные в карточке партнёрского аккаунта во вкладке «Основные настройки»:
-
Логин — используйте как username
-
Пароль — используйте как password
Для подключения к BI Analytics API в запросе нужно указать адрес сервера в параметре BaseUrl. Используйте тот сервер, на котором работает ваш аккаунт.
|
Сервер
|
Адрес
|
Назначение
|
|
Production
|
https://pilot-gps.com
|
Основной сервер
|
|
Саудовская Аравия
|
https://ksa.pilot-gps.com
|
Региональный сервер для Саудовской Аравии
|
|
Африка
|
https://pilot-gps.africa
|
Региональный сервер для Африки
|
|
Blade
|
https://blade.pilot-gps.com
|
Сервер Blade
|
|
Iglit
|
https://gps.iglit.tech
|
Сервер Iglit
|
В запросе укажите нужный URL, например,
BaseUrl = "https://ksa.pilot-gps.com",
|
Чтобы система работала стабильно, для BI Analytics API действуют лимиты на количество запросов.
Стандартные лимиты
Они применяются по умолчанию, если параметр bi_analytics_limit не задан:
-
100 запросов в час
-
2000 запросов в сутки
-
50000 запросов в месяц (30 дней)
Ниже показан пример подключения через Microsoft Power BI. Аналогичным образом можно подключиться к любой BI-системе, которая поддерживает работу с REST API.
Как добавить запрос в Power BI
1. Откройте Power BI Desktop
Запустите программу Power BI Desktop на компьютере. Если она не установлена, скачайте её бесплатно с официального сайта Microsoft.

2. На главной панели вверху нажмите кнопку «Получить данные». Откроется список доступных источников данных
3. Из списка источников данных выберите «Пустой запрос»
4. Откроется Редактор Power Query — это окно, в котором создаются и настраиваются запросы к данным.
В этом окне найдите кнопку «Расширенный редактор» на панели инструментов вверху и нажмите её.
5. Откроется окно «Расширенный редактор» с пустым шаблоном запроса

6. Вставьте код запроса (пример запроса смотрите ниже)

В запросе вам нужно указать:
-
Адрес сервера
-
Логин — ваш логин из партнёрского аккаунта
-
Пароль — ваш пароль из партнёрского аккаунта
-
Даты — начальную и конечную дату периода
-
Список метрик — какие данные вы хотите получить (полный список метрик смотрите ниже)
7. После вставки кода нажмите «Готово». Power BI начнёт подключаться к серверу и загружать данные
8. После этого Power BI может показать предупреждение «Требуются сведения о конфиденциальности данных». Нажмите «Продолжить».
9. Откроется окно «Уровни конфиденциальности»
В нём Power BI проверяет, можно ли безопасно объединять и обрабатывать данные из источников, которые используются в запросе. В нашем случае запрос обращается к одному доверенному источнику данных, а авторизация уже выполняется внутри самого запроса. Поэтому, чтобы Power BI не блокировал загрузку и не мешал выполнению запроса, установите галочку «Пропустить проверки уровней конфиденциальности для этого файла».
После этого нажмите «Сохранить».

10. После сохранения Power BI выполнит запрос и откроет предпросмотр данных в редакторе Power Query. На экране появится таблица с колонками и строками — это данные, которые вернул ваш запрос.

11. Нажмите «Закрыть и применить». После этого данные будут загружены в Power BI, и вы сможете работать с ними.
Теперь загруженные данные можно использовать для создания графиков, таблиц и других визуальных элементов. 

В основном окне Power BI Desktop справа обычно отображаются панели:
-
Визуализации — здесь находятся типы графиков, диаграмм, карточек, таблиц и других визуальных элементов. Выберете нужный тип, а затем заполните его своими полями
-
Данные — здесь показан список таблиц и полей, которые загрузились из вашего запроса, например, дата, ID объекта, пробег, расход топлива, средняя скорость. Используйте эти поля в визуализациях: выбирайте их галочками, перетаскивайте мышкой или меняйте местами
-
Фильтры — здесь можно ограничивать данные по нужным условиям

Как построить график
1. В панели «Визуализации» нажмите на нужный тип графика. На холсте отчёта появится пустой шаблон графика
2. В панели «Данные» выберите поля, которые хотите показать

3. Power BI автоматически подставит поля в график
В Power BI можно комбинировать данные:
-
добавить одно и то же поле в разные графики
-
сравнивать несколько показателей
-
строить несколько визуализаций на одной странице
-
заменять поля без создания отчёта заново

Иногда Power BI может сохранять предыдущие параметры подключения к источнику данных. Из-за этого даже после замены логина, пароля или адреса сервера запрос может продолжать возвращать ошибку авторизации. В этом случае очистите сохранённые разрешения для источника данных.
Как очистить разрешения:
1. В Редакторе Power Query на панели инструментов нажмите «Настройки источника данных»
1 — Кнопка «Настройки источника данных»
2 — Выбор источника данных
3 — Кнопка «Очистить разрешения»
3. Нажмите «Очистить разрешения»
4. В окне подтверждения нажмите «Удалить»

5. Повторно выполните запрос. После этого Power BI заново применит параметры подключения
powerquery
let
BaseUrl = "https://<server_address>,
LoginJson =
Json.Document(
Web.Contents(
BaseUrl,
[
RelativePath = "api/bi/login.php",
Headers = [#"Content-Type" = "application/json"],
Content = Json.FromValue([
username = "YOUR_LOGIN",
password = "YOUR_PASSWORD"
]),
ManualStatusHandling = {400, 401, 403, 404, 500}
]
)
),
Token = LoginJson[access_token],
NodeId = LoginJson[user][node_id],
AnalyticsJson =
Json.Document(
Web.Contents(
BaseUrl,
[
RelativePath = "api/bi/analytics.php",
Query = [node = Text.From(NodeId)],
Headers = [
#"Authorization" = "Bearer " & Token,
#"Content-Type" = "application/json"
],
Content = Json.FromValue([
date_from = "2026-01-01",
date_to = "2026-12-31",
metrics = {
"veh_driving_dist",
"veh_fuel_cons",
"average_speed",
"veh_cars_counter"
},
source = "vehicle",
group_by = "source_day",
format = "flat"
]),
ManualStatusHandling = {400, 401, 403, 404, 500},
ExcludedFromCacheKey = {"Authorization"}
]
)
),
DataList = AnalyticsJson[data],
Tbl = Table.FromList(DataList, Splitter.SplitByNothing(), {"Column1"}),
Expanded = Table.ExpandRecordColumn(
Tbl,
"Column1",
{"source_id", "date", "veh_driving_dist", "veh_fuel_cons", "average_speed", "veh_cars_counter"}
)
in
Expanded
|
source
Поле source определяет, по каким данным строить выборку.
Доступные значения:
-
vehicle — данные по транспорту
-
driver — данные по водителям
group_by
Поле group_by определяет, как группировать результат.
|
Значение
|
Что показывает
|
Пример структуры ответа
|
|
total
|
Сумма по всем авто или водителям за период
|
{ "metric": 123 }
|
|
day
|
Сумма по всем авто или водителям за каждый день
|
{ "20260301": { "metric": 123 } }
|
|
rating
|
Каждый источник, итог за период
|
{ source_id: { "metric": 123 } }
|
|
source_day
|
Каждый источник, каждый день
|
{ source_id: { "20260301": { "metric": 123 } } }
|
ACCOUNT_ID
Параметр ACCOUNT_ID позволяет ограничить выгрузку данными одного договора.
Если в запросе указаны логин и пароль партнёрского аккаунта, без ACCOUNT_ID система выгружает все транспортные средства по всем договорам, доступным этому партнёру.
Если в запросе указать ACCOUNT_ID, будут загружены только объекты выбранного договора.
Ниже приведён перечень параметров, которые можно использовать в поле metrics.
Транспорт — общее
|
Параметр
|
Описание
|
|
veh_trips_cnt
|
Количество поездок
|
|
veh_driving_dist
|
Пробег (км)
|
|
veh_driving_time
|
Время в движении
|
|
veh_parking_time
|
Время стоянок
|
|
veh_ignition_time
|
Время с включённым зажиганием
|
|
veh_idle_time
|
Время холостого хода
|
|
veh_motor_hours
|
Моточасы
|
Транспорт — топливо
|
Параметр
|
Описание
|
|
veh_fuel_cons
|
Расход топлива
|
|
veh_fuel_filled
|
Заправлено топлива
|
|
veh_fuel_drained
|
Слито топлива
|
Транспорт — нарушения
|
Параметр
|
Описание
|
|
veh_eco_fine
|
Штраф за эко-вождение
|
|
veh_eco_cnt
|
Количество нарушений эко-вождения
|
|
veh_acc_fine
|
Штраф за резкие ускорения
|
|
veh_acc_cnt
|
Количество резких ускорений
|
|
veh_braking_fine
|
Штраф за резкое торможение
|
|
veh_braking_cnt
|
Количество резких торможений
|
|
veh_turn_fine
|
Штраф за резкие повороты
|
|
veh_turn_cnt
|
Количество резких поворотов
|
|
veh_speed_fine
|
Штраф за превышение скорости
|
|
veh_speed_cnt
|
Количество превышений скорости
|
|
veh_belt_fine
|
Штраф за непристёгнутый ремень
|
|
veh_belt_cnt
|
Количество нарушений ремня
|
|
veh_idle_fine
|
Штраф за холостой ход
|
|
veh_idle_cnt
|
Количество нарушений холостого хода
|
Транспорт — затраты
|
Параметр
|
Описание
|
|
veh_fuel_cost_per_kilometer
|
Стоимость топлива на км
|
|
veh_service_cost_per_kilometer
|
Стоимость обслуживания на км
|
|
veh_amount_exp
|
Общие расходы
|
|
cost_of_using
|
Стоимость использования
|
|
average_speed
|
Средняя скорость
|
|
veh_cars_counter
|
Количество авто
|
Водители
|
Параметр
|
Описание
|
|
drv_trips_cnt
|
Количество поездок
|
|
drv_driving_dist
|
Пробег (км)
|
|
drv_driving_time
|
Время в движении
|
|
drv_parking_time
|
Время стоянок
|
|
drv_fuel_cons
|
Расход топлива
|
|
drv_fuel_filled
|
Заправлено топлива
|
|
drv_fuel_drained
|
Слито топлива
|
|
drv_eco_fine
|
Штраф за эко-вождение
|
|
drv_eco_cnt
|
Количество нарушений эко-вождения
|
|
drv_acc_fine
|
Штраф за резкие ускорения
|
|
drv_acc_cnt
|
Количество резких ускорений
|
|
drv_braking_fine
|
Штраф за резкое торможение
|
|
drv_braking_cnt
|
Количество резких торможений
|
|
drv_turn_fine
|
Штраф за резкие повороты
|
|
drv_turn_cnt
|
Количество резких поворотов
|
|
drv_speed_fine
|
Штраф за превышение скорости
|
|
drv_speed_cnt
|
Количество превышений скорости
|
|
drv_belt_fine
|
Штраф за непристёгнутый ремень
|
|
drv_belt_cnt
|
Количество нарушений ремня
|
Метрики для отдельных типов eco-событий
Для eco-событий можно использовать шаблон:
-
eco_{N}_fine
-
eco_{N}_cnt
где N — это ID типа eco-события в системе.
Примеры
|
Параметр
|
Описание
|
|
eco_4_fine / eco_4_cnt
|
Нарушения eco типа 4
|
|
eco_8_fine / eco_8_cnt
|
Нарушения eco типа 8
|
|
eco_17_fine / eco_17_cnt
|
Нарушения eco типа 17
|









