Разделы документации
Аутентификация
Как получить ключ API LibraChat, передавать его в запросах и хранить безопасно
Все запросы к API LibraChat требуют ключ. Ключ передаётся в заголовке Authorization. Других способов аутентификации нет — ни параметра в URL, ни cookie.
Формат ключа
- Ключ начинается с префикса sk-libra-, дальше идёт около 43 символов.
- На сервере хранится только SHA-256-хеш ключа. Сырое значение показывается один раз — в момент создания.
- В кабинете потом видна лишь укороченная форма вида sk-libra-ab12cd…, по ней ключ можно узнать в списке, но не восстановить.
- Для каждого ключа фиксируется дата последнего использования.
Как создать ключ
- Откройте кабинет: «Настройки → API».
- Создайте ключ и сразу скопируйте показанное значение в надёжное место (менеджер секретов, переменные окружения сервера).
- На один аккаунт может быть до 10 активных ключей. Попытка создать одиннадцатый вернёт 409 too_many_keys — сначала отзовите ненужный.
- Отзыв ключа действует мгновенно: следующий запрос с ним получит 401.
Баланс токенов общий на весь аккаунт и не делится между ключами. Отдельные ключи удобны для того, чтобы разграничивать сервисы и быстро отключать любой из них поодиночке.
Как передавать ключ
Ключ нужен обоим эндпоинтам — и POST /v1/chat/completions, и GET /v1/models.
С официальными библиотеками openai ключ подставляется штатным параметром — меняются только адрес и значение ключа.
Ошибки аутентификации и оплаты
| Код | Ошибка | Что произошло | Что делать |
|---|---|---|---|
| 401 | no_api_key | Заголовок Authorization не передан или пустой | Добавьте Authorization: Bearer sk-libra-… |
| 401 | invalid_api_key | Ключ не найден или отозван | Проверьте значение целиком; если ключ отозван — создайте новый в «Настройки → API» |
| 402 | insufficient_balance | Баланс аккаунта ≤ 0 (проверяется до запроса) | Пополните баланс токенов |
| 409 | too_many_keys | Уже 10 активных ключей | Отзовите лишний ключ и повторите создание |
| 429 | rate_limited | Превышен лимит ключа: 120 запросов/мин или 1 000 000 токенов/мин | Снизьте темп и повторите позже |
| 502 | upstream_error | Ошибка на стороне сервиса | Повторите запрос |
Тексты ошибок приходят на русском. При 401 в первую очередь проверьте три вещи: слово Bearer перед ключом, отсутствие лишних пробелов и переносов при копировании, и что ключ не отозван в кабинете. Ключ подставляйте целиком — укороченная форма из списка (sk-libra-ab12cd…) не работает.
Как хранить ключ
- Не кладите ключ в клиентский код: браузерный JavaScript, мобильное приложение, публичный репозиторий. Всё, что попало на устройство пользователя, считается раскрытым.
- Вызывайте API с вашего сервера, а клиент пусть ходит к вашему бэкенду.
- Держите ключ в переменных окружения или менеджере секретов, а не в файлах проекта. Файлы вроде .env добавляйте в .gitignore.
- Не пересылайте ключ в переписке и не вставляйте в скриншоты и логи запросов.
- Заведите отдельный ключ на каждый сервис — так при утечке достаточно отозвать один.
- Заметили чужую активность или сомневаетесь — сразу отзовите ключ: отзыв мгновенный, а дата последнего использования поможет понять, работал ли он.