API
REST API для программ сетевой компании: АСКУЭ, биллинга, системы управления выездами. Через него данные загружаются и забираются без ручных выгрузок. Права те же, что в рабочем месте: учётная запись видит только проекты своей организации.
Подключение
- адрес:
https://gridinspector.ru/api/v1(илиhttps://gridinspector.com/api/v1); - формат — JSON, кодировка UTF-8; файлы —
multipart/form-data; - вход — логином и паролем учётной записи, выданной GRID-IN; в ответ — ключ доступа, его передают в
заголовке
Authorization: Bearer <ключ>; - запросы из браузера с сайта заказчика — с адресов, согласованных при подключении;
- ошибка — код в поле
errorи статус HTTP: 400 — неверный запрос, 401 — нет входа, 404 — нет объекта, 409 — действие сейчас невозможно (например, нет данных или договора), 429 — слишком много неудачных входов.
Запросы
| Запрос | Что делает |
|---|---|
POST /session | вход: {"login", "password"} → {"token", "expires_in", "user"} |
GET /me | кто вошёл: логин, имя, роль |
GET /projects | проекты организации |
POST /projects | создать проект: {"name", "name_en"} |
GET /projects/{id} | проект: ТП с периодами данных, последний расчёт |
POST /projects/{id}/files | загрузить файлы (поле file, можно несколько) → задание приёма по каждому файлу |
GET /tasks/{id} | состояние задания: queued, running, done, failed; у приёма — что распознано в файле, у расчёта — номер расчёта и сводка |
POST /projects/{id}/run | запустить расчёт → задание; если расчёт уже идёт — его задание |
GET /projects/{id}/runs | расчёты проекта: номер и время |
GET /projects/{id}/runs/{run} | сводка расчёта по ТП: период, число ПУ, небаланс, число целей |
GET /projects/{id}/runs/{run}/targets | перечень целей на выезд в порядке приоритета |
GET /projects/{id}/outcomes | отмеченные результаты выездов |
POST /projects/{id}/outcomes | отметить результат: {"substation", "target", "outcome", "note"}; outcome — found, not_found, no_access |
Создавать проекты, загружать файлы и запускать расчёт может руководитель; отмечать результаты выездов — также инспектор.
Цель на выезд
| Поле | Что это |
|---|---|
priority | номер в порядке выезда |
substation, pos | ТП |
target | ключ цели — с ним отмечается результат выезда |
meter, label | номер ПУ и его название |
address, lat, lon | адрес и координаты |
kind | вид цели: theft — неучтённое потребление, extra — ПУ от другой ТП, fault — неисправность |
categories | коды находок по цели |
probability | вероятность подтверждения, %, если она измерена |
unaccounted_kwh, metered_kwh | оценка неучтённого и учтённого объёма за период, кВт·ч |
outcome | отмеченный результат выезда |
Обычный порядок
POST /session— получить ключ;POST /projects/{id}/files— отправить выгрузку; дождаться заданий черезGET /tasks/{id};POST /projects/{id}/run— запустить расчёт; дождаться задания;GET /projects/{id}/runs/{run}/targets— забрать цели;POST /projects/{id}/outcomes— вернуть результаты выездов.
Доступ к API выдаётся вместе с учётной записью организации.