Выпуск API-ключа
Ключи выпускаются в веб-интерфейсе диспетчера: Настройки → Интеграции → API-ключи.
Через API это тоже возможно (POST /api/v1/integration/api-keys/), но там используется
не ключ, а обычная авторизация пользователя — это панель управления, а не публичный API.
Выпускать ключи может только пользователь с ролью «Администратор компании»
(company_admin). Диспетчер и водитель ключи не видят и не создают.
Формат ключа
dp_live_7f3a9c21.hV2nQpX8mK4rT7yLwZ0aB3cD6eF9gJ1kN5sU8vY2xA
└──── префикс ────┘└──────────────── секрет ────────────────┘
Префикс не является секретом — его можно писать в логи, чтобы понимать, какой именно ключ использовался. Часть после точки — секрет.
Ключ показывается один раз
В базе хранится только хеш секрета. Восстановить ключ невозможно — ни через поддержку, ни через интерфейс. Сохраните его сразу при создании. Если ключ потерян, выпустите новый и отзовите старый.
Ротация и отзыв
- Ротация (
POST /api/v1/integration/api-keys/{id}/rotate/) выдаёт новый ключ вместо старого. Старый перестаёт работать немедленно, без переходного периода — обновляйте ключ в своей системе сразу. - Отзыв делает ключ нерабочим, но запись сохраняется для аудита.
- Срок действия (
expires_at) можно задать при создании. После этой даты ключ перестаёт работать автоматически.
Область доступа (scopes)
При создании можно ограничить ключ списком разрешений:
| Разрешение | Что открывает |
|---|---|
planning:write | запуск планирования |
routes:read | чтение маршрутов |
tracking:read | отслеживание |
Важные особенности:
- Пустой список разрешений означает полный доступ, а не отсутствие доступа.
- Разрешения не проверяются на опечатки при создании. Если написать
routes:reed, ключ создастся, но при обращении к маршрутам вернёт403. Копируйте названия точно. - Для работы с заказами отдельное разрешение не требуется — доступ есть у любого действующего ключа.
Поле last_used_at
Отметка времени последнего использования обновляется не чаще раза в минуту, поэтому она может отставать. Для мониторинга активности в реальном времени она не подходит.