АрборитмАРБОРИТМ

Зачем это нужно

API-ключ позволяет программе — десктопному клиенту (Arbogeo, Арборитм), скрипту или интеграции — обращаться к API платформы от имени вашего аккаунта, без входа через браузер.

Ключ даёт доступ к вашим проектам, полигонам и результатам обработки: их можно выгружать в стороннее приложение и загружать обратно результаты полевой работы.

Публичные данные лесничеств (реестр ФГИС ЛК) отдаются анонимно и ключа не требуют. API-ключ нужен только для приватных данных аккаунта.

Кому доступны ключи

API-ключи доступны аккаунтам с доступом к платформе — тем же, кто видит проекты и обработку в кабинете. Доступ выдаёт администратор; администраторы и владельцы имеют его всегда.

Проверка выполняется на каждом запросе, а не только при создании ключа: если доступ к платформе отключат, все выданные ключи сразу перестанут работать и вернут 403. Список ключей и кнопка отзыва при этом остаются доступны, чтобы можно было прибраться.

API-ключ — это не лицензия. Лицензионный ключ активирует десктопный Арборитм на конкретном устройстве; API-ключ — это учётные данные для обращений к API.

Создание ключа

  1. Откройте Настройки аккаунта → Безопасность → API-ключи.
  2. Нажмите Создать.
  3. Укажите название — по нему вы потом поймёте, какой ключ где используется («Arbogeo, рабочий ноутбук»).
  4. При необходимости включите Только чтение.
  5. Нажмите Создать ключ.
Секрет показывается один раз, сразу после создания. Он нигде не хранится в открытом виде — восстановить его нельзя даже через поддержку. Если ключ потерян, отзовите его и создайте новый.

Ключ выглядит так:

arbo_3f9a1c07_qJ8x2mN4pR7tV1wY6zB0dK5hL3sG9fA2cE8uI4oP

Видимая часть (arbo_3f9a1c07_…) остаётся в списке ключей — по ней вы опознаёте ключ и отзываете нужный.

Использование

Ключ передаётся тем же заголовком, что и обычный токен сессии:

curl -H "Authorization: Bearer arbo_3f9a1c07_qJ8x2mN4pR7t…" \
  https://arboritm.ru/api/v1/projects/

Пример на Python:

import httpx

client = httpx.Client(
    base_url="https://arboritm.ru/api/v1",
    headers={"Authorization": f"Bearer {API_KEY}"},
)
projects = client.get("/projects/").json()

Полный перечень методов и схем — в интерактивной OpenAPI-документации: https://arboritm.ru/api/v1/docs.

Права ключа

РежимЧто можно
Полный доступ (по умолчанию)Чтение и изменение данных: GET, POST, PATCH, PUT, DELETE
Только чтениеБезопасные запросы: GET, HEAD, OPTIONS. На изменяющий запрос вернётся 403

Чего ключ не может независимо от режима:

  • управлять ключами — эндпоинты /api/v1/account/** закрыты для ключей, создать или отозвать ключ можно только после входа в кабинет;
  • обращаться к админским разделам (/api/v1/admin/**) и эндпоинтам авторизации (/api/v1/auth/**), даже если аккаунт администраторский;
  • подключаться к WebSocket — для реалтайма используется вход в кабинет.

Это ограничивает ущерб от утечки ключа: им нельзя ни расширить себе доступ, ни удалить аккаунт.

Срок жизни, лимиты, отзыв

  • Срок жизни — по умолчанию бессрочный, чтобы десктопный клиент не отвалился молча. Ограничить срок можно при создании через API (expires_at).
  • Лимит — до 20 активных ключей на аккаунт. Выдавайте отдельный ключ на каждое устройство: тогда потерянный ноутбук отзывается без остановки остальных.
  • Отзыв — кнопка «Отозвать» в списке ключей. Действует немедленно, следующий запрос с этим ключом получит 401.
  • Ограничение частоты запросов считается по самому ключу, а не по IP-адресу. Несколько клиентов из одной сети не мешают друг другу.

Создание и отзыв ключа попадают в Журнал безопасности аккаунта. Администратор платформы также может отозвать любой ключ — в этом случае запись в журнале появится с пометкой о действии администратора.

Коды ошибок

КодПричина
401 Invalid API keyКлюч не существует или секрет неверный
401 API key revokedКлюч отозван владельцем или администратором
401 API key expiredИстёк expires_at
403 API key missing scope projects:writeКлюч создан в режиме «только чтение», а запрос изменяющий
403 API keys cannot be used on this endpointЭндпоинт закрыт для ключей (управление ключами, админка, авторизация)
403 Platform access requiredУ аккаунта отключён доступ к платформе
429Превышена частота запросов для этого ключа

Если ключ утёк

  1. Отзовите ключ в Настройки аккаунта → Безопасность → API-ключи.
  2. Создайте новый и пропишите его в клиенте.
  3. Проверьте Журнал безопасности — там видно время последнего использования каждого ключа.