Аутентификация
Каждый запрос к /api/v1 должен нести API-ключ организации в заголовке Authorization.
Формат ключа
Ключ выглядит так: smg_live_ + 43 символа (буквы, цифры, -, _) — итого 52 символа. Передаётся как Bearer-токен:
Authorization: Bearer smg_live_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Пример запроса:
curl -s https://smengo.com/api/v1/org \
-H "Authorization: Bearer smg_live_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
Как получить ключ
Владелец организации (право «Управление организацией») создаёт ключ прямо в приложении: Настройки → Интеграции → блок «API-ключи» → «Создать ключ». При создании выбираются скоупы — набор скоупов ключа не может быть шире прав самого создателя. Пошагово — в статье «API-ключи» в справке.
Ключ показывается ровно один раз — в момент создания. Smengo хранит только его хэш, поэтому восстановить показанный ключ повторно нельзя: если потеряли — попросите выпустить новый и отозвать старый.
Права ключа
Ключ read-only и не может дать больше прав, чем есть у создавшего его пользователя: набор скоупов ключа — подмножество прав его владельца в приложении. Что именно открывает каждый скоуп — в Справочнике скоупов.
Отзыв ключа
Ключ можно отозвать в любой момент — все запросы с ним сразу начнут получать 401. Отозванный, битый по формату, неизвестный или отсутствующий ключ — Smengo намеренно возвращает один и тот же ответ 401 unauthorized для всех этих случаев, не раскрывая причину. Так API не даёт постороннему проверить перебором, существует ли вообще какой-то ключ: детали ошибки не позволяют отличить «неправильный формат» от «ключ был, но его отозвали».
Ключ — серверный секрет
Как и любой секрет, API-ключ нельзя встраивать в код, который исполняется в браузере, мобильном приложении или другом месте, доступном пользователю. Храните его в переменных окружения бэкенда. CORS для /api/v1 выключен намеренно — вызовы из браузера не предполагаются архитектурой API.
Что дальше
- Быстрый старт — первый рабочий запрос.
- Конвенции API — формат ответов, ошибки, пагинация.