Документация ENL API v2

Базовый URL: https://api.enginenearlife.ru. Все ответы в формате JSON, кодировка UTF-8. Тело запроса (где требуется) — application/json.

Аутентификация

Все запросы должны содержать заголовок Authorization: Bearer <token>. Токен можно получить по запросу на api@enginenearlife.ru.

Authorization: Bearer enlapi_v2_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Токены не истекают автоматически. При компрометации — сообщите нам для замены.

Лимиты запросов

Rate limiting применяется на уровне токена. Текущие лимиты:

ТарифЗапросов/минЗапросов/день
Базовый12050 000
Расширенный600500 000
Неограниченный

При превышении лимита API возвращает 429 Too Many Requests. Заголовок Retry-After содержит секунды до сброса окна.

Коды ошибок

HTTPcodeОписание
400invalid_paramsНеверные или отсутствующие параметры запроса
401unauthorizedТокен отсутствует или недействителен
403forbiddenТокен не имеет доступа к данному эндпоинту
404not_foundРесурс не найден
429rate_limitedПревышен лимит запросов
500internal_errorВнутренняя ошибка сервера
503unavailableСервис временно недоступен

Тело ошибки всегда содержит поле error.code и error.message:

{ "status": "error", "error": { "code": "invalid_params", "message": "параметр 'lat' вне допустимого диапазона [-90, 90]" } }

Версионирование

Версия API указывается в пути: /v2/.... Текущая стабильная версия — v2. Версия v1 поддерживается до 2026-09-01, после чего будет отключена.

При переходе с v1 обратите внимание: в v2 изменилась структура ответа /geo/lookup — поле city перемещено в result.address_components.city.

GET /v2/geo/lookup

Геокодирование адреса — получение координат по строке адреса.

ПараметрТипОбязательныйОписание
qstringдаСтрока адреса для поиска
langstringнетru (по умолч.) или en
limitintнетМакс. результатов, 1–10 (по умолч. 5)
# Пример curl -G 'https://api.enginenearlife.ru/v2/geo/lookup' \ --data-urlencode 'q=Тверская 1, Москва' \ -H 'Authorization: Bearer <token>'

GET /v2/geo/reverse

Обратное геокодирование — получение адреса по координатам.

ПараметрТипОбязательныйОписание
latfloatдаШирота, −90…90
lonfloatдаДолгота, −180…180
langstringнетru или en

POST /v2/route/build

Построение маршрута между двумя и более точками.

# Тело запроса { "waypoints": [ { "lat": 55.7558, "lon": 37.6173 }, { "lat": 59.9311, "lon": 30.3609 } ], "mode": "driving", "alternatives": true, "traffic": true }

POST /v2/telemetry/push

Запись показателей датчиков. Принимает батч до 1000 точек за запрос.

{ "device_id": "device-uuid-here", "points": [ { "ts": 1743580800, "lat": 55.7500, "lon": 37.6200, "speed_kmh": 42.5, "heading": 270 } ] }

GET /v2/analytics/summary

Агрегированная статистика за период по устройству или группе.

ПараметрТипОбязательныйОписание
device_idstringда*UUID устройства или group:<name>
fromISO 8601даНачало периода
toISO 8601даКонец периода
tzstringнетЧасовой пояс (по умолч. UTC)

GET /v2/analytics/heatmap

Данные тепловой карты активности за период. Возвращает массив ячеек с координатами и весом. Параметр resolution задаёт размер ячейки: 50m, 200m, 1km, 5km.