Аутентификация
Каждый запрос API для разработчиков должен нести API key разработчика. Публичной неаутентифицированной полосы нет — запрос без действительного key отклоняется с 401.
Предъявление вашего key
Отправьте секрет вашего key (cuk_<env>_<random>) одним из двух способов. Оба эквивалентны; используйте тот, что подходит вашему HTTP-клиенту.
Заголовок Authorization (рекомендуется)
Authorization: Bearer cuk_live_xxxxxxxxxxxxxxxxЗаголовок X-API-Key
X-API-Key: cuk_live_xxxxxxxxxxxxxxxxПример запроса для каждой формы:
# Bearer
curl https://cuneiform.chat/api/developer/v1/agents \
-H "Authorization: Bearer cuk_live_xxxxxxxxxxxxxxxx"
# X-API-Key
curl https://cuneiform.chat/api/developer/v1/agents \
-H "X-API-Key: cuk_live_xxxxxxxxxxxxxxxx"Во что сопоставляется key
Key привязан к двум вещам, обе из которых разрешаются автоматически при каждом запросе:
- Ваша организация. Key идентифицирует организацию, в которой он был создан. Каждый запрос ограничен этой организацией — id организации передавать не нужно, и достичь данных другой организации невозможно. Id ресурса, принадлежащего другой организации, сообщается как
404(не найдено), а не403. - Его scopes. Key несёт фиксированный набор scopes, предоставленных при создании. Scope также ограничен правами RBAC роли, создавшей key — key никогда не может сделать больше, чем мог его создатель в панели. Запрос, которому нужен scope, отсутствующий у key, отклоняется с
403permission_error.
Храните keys в секрете
Полный секрет key показывается ровно один раз — в момент создания или ротации. Относитесь к нему как к паролю:
- Отправляйте его только по HTTPS.
- Храните его в менеджере секретов или переменной окружения — никогда в системе контроля версий, клиентском коде или логах.
- Если key раскрыт, немедленно выполните ротацию или отзовите его.
Когда аутентификация не проходит
Отсутствующий, искажённый, отозванный или неизвестный key возвращает 401 со стандартным конвертом ошибки:
{
"error": {
"type": "authentication_error",
"code": "invalid_api_key",
"message": "The API key is missing or invalid."
}
}Корректно сформированный key, у которого нет scope (или соответствующего права) для операции, возвращает 403:
{
"error": {
"type": "permission_error",
"code": "invalid_scope",
"message": "This key does not have the required scope for this operation."
}
}Last updated on