Подключение BI Analytics к BI‑системам

С помощью BI Analytics API вы можете подключить данные системы к любой BI-платформе и строить собственные отчёты, графики и дашборды.
В этой статье мы расскажем:
 
Для просмотра структуры методов BI Analytics API вы можете использовать документацию API в формате Swagger: BI API v1 — Swagger
В Swagger-документации вы можете:
— просмотреть все доступные методы API
— посмотреть структуру запросов и ответов
— скачать спецификацию API в формате JSON
 

Как включить доступ к BI Analytics

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

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

5. Нажмите кнопку «Добавить»
6. В списке выберите конфигурацию bi_analytics и укажите для неё значение 1
7. Сохраните изменения

2. Включите модуль аналитики на договоре пользователя

После включения модуля на партнёрском аккаунте нужно включить его и на конкретном договоре пользователя.
1. В панели администратора найдите нужный договор
2. Кликните на него правой кнопкой мыши и выберите «Редактировать»
3. В карточке договора перейдите на вкладку «Модули»
4. Включите «Модуль аналитики»
Подключение BI Analytics к BI‑системам
5. Сохраните изменения
После того как модуль аналитики включён и на партнёрском аккаунте, и на договоре пользователя, а конфигурация bi_analytics настроена — доступ к BI Analytics API будет включён.
Система начнёт собирать данные для аналитики, и вы сможете подключиться к API через Power BI.
 

Где взять логин и пароль

Для подключения к BI Analytics API нужны логин и пароль партнёрского аккаунта.
Используйте те же данные, которые были выданы вам при регистрации партнёрского аккаунта. Это те же логин и пароль, которые используются для входа в панель администратора.
Если у вас есть доступ с правами главного администратора, вы можете посмотреть эти данные в карточке партнёрского аккаунта во вкладке «Основные настройки»:
  • Логин — используйте как username
  • Пароль — используйте как password
Подключение BI Analytics к BI‑системам
 

Как выбрать адрес сервера

Для подключения к 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 дней)
     

Как подключить BI Analytics в Power BI

Ниже показан пример подключения через Microsoft Power BI. Аналогичным образом можно подключиться к любой BI-системе, которая поддерживает работу с REST API.

Как добавить запрос в Power BI

1. Откройте Power BI Desktop
Запустите программу Power BI Desktop на компьютере. Если она не установлена, скачайте её бесплатно с официального сайта Microsoft.
2. На главной панели вверху нажмите кнопку «Получить данные». Откроется список доступных источников данных
Подключение BI Analytics к BI‑системам
3. Из списка источников данных выберите «Пустой запрос»
Подключение BI Analytics к BI‑системам
4. Откроется Редактор Power Query — это окно, в котором создаются и настраиваются запросы к данным.
В этом окне найдите кнопку «Расширенный редактор» на панели инструментов вверху и нажмите её.
Подключение BI Analytics к BI‑системам
5. Откроется окно «Расширенный редактор» с пустым шаблоном запроса
6. Вставьте код запроса (пример запроса смотрите ниже)
В запросе вам нужно указать:
  • Адрес сервера 
  • Логин — ваш логин из партнёрского аккаунта
  • Пароль — ваш пароль из партнёрского аккаунта
  • Даты — начальную и конечную дату периода
  • Список метрик — какие данные вы хотите получить (полный список метрик смотрите ниже)
7. После вставки кода нажмите «Готово». Power BI начнёт подключаться к серверу и загружать данные
8. После этого Power BI может показать предупреждение «Требуются сведения о конфиденциальности данных». Нажмите «Продолжить».
Подключение BI Analytics к BI‑системам
9. Откроется окно «Уровни конфиденциальности»
В нём Power BI проверяет, можно ли безопасно объединять и обрабатывать данные из источников, которые используются в запросе. В нашем случае запрос обращается к одному доверенному источнику данных, а авторизация уже выполняется внутри самого запроса. Поэтому, чтобы Power BI не блокировал загрузку и не мешал выполнению запроса, установите галочку «Пропустить проверки уровней конфиденциальности для этого файла».
После этого нажмите «Сохранить».
10. После сохранения Power BI выполнит запрос и откроет предпросмотр данных в редакторе Power Query. На экране появится таблица с колонками и строками — это данные, которые вернул ваш запрос.
11. Нажмите «Закрыть и применить». После этого данные будут загружены в Power BI, и вы сможете работать с ними.
Подключение BI Analytics к BI‑системам
Теперь загруженные данные можно использовать для создания графиков, таблиц и других визуальных элементов.
В основном окне Power BI Desktop справа обычно отображаются панели:
  • Визуализации — здесь находятся типы графиков, диаграмм, карточек, таблиц и других визуальных элементов. Выберете нужный тип, а затем заполните его своими полями
  • Данные — здесь показан список таблиц и полей, которые загрузились из вашего запроса, например, дата, ID объекта, пробег, расход топлива, средняя скорость. Используйте эти поля в визуализациях: выбирайте их галочками, перетаскивайте мышкой или меняйте местами
  • Фильтры — здесь можно ограничивать данные по нужным условиям

Как построить график

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

Если запрос не обновляется или возникают ошибки при входе

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

Пример запроса для 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