Аутентификация
Запросы к моделям подписываются API-ключом вида sk-od-…. Ключ создаётся в
кабинете , в разделе «API-ключи», и показывается один раз.
Как передать ключ
Ключ передаётся в одном из двух заголовков:
| Заголовок | Кто так передаёт |
|---|---|
Authorization: Bearer sk-od-… | OpenAI SDK, curl и большинство библиотек |
x-api-key: sk-od-… | Anthropic SDK |
curl https://api.ocean-drive-ai.ru/v1/models \
-H "x-api-key: sk-od-..."Ключ — это пароль от баланса: не публикуйте его в репозиториях и не встраивайте в код, который выполняется в браузере или в приложении пользователя.
Чей баланс
Ключ принадлежит личному аккаунту или организации. Запросы по ключу списываются с баланса того, кому он принадлежит; владелец и администраторы организации видят и отзывают ключи всех участников.
Лимиты и ограничения ключа
- Лимиты расхода — сколько ключ может потратить за сутки и за месяц (по UTC). Ключ бота или утёкший ключ не израсходует весь баланс. Лимиты меняются и после создания ключа.
- Ограничения — какие модели и эндпоинты доступны ключу, до какого дня он действует и с каких IP-адресов принимается. Их можно выбрать только при создании ключа.
Отзыв ключа
Ключ отзывается в кабинете. Приложение может отозвать и свой ключ само, без входа в кабинет:
DELETE /v1/keys/self с этим ключом в Authorization: Bearer.
Ошибки доступа
Ошибки сервиса — JSON вида {"error": {"code": "…", "message": "…"}}.
| Код | Причина |
|---|---|
401 invalid_api_key | ключа нет в запросе, он неизвестен, отозван или истёк |
403 endpoint_not_allowed | эндпоинт не разрешён ключу |
403 model_not_allowed | модель не разрешена ключу |
403 ip_not_allowed | запрос пришёл с IP-адреса вне списка ключа |
403 account_suspended | аккаунт заблокирован |
Ключи, баланс и расход через API
Эндпоинты ключей, баланса и расхода (/v1/keys, /v1/balance, /v1/usage) принимают не API-ключ, а токен
входа в кабинет — так с ними работает сам кабинет. Подробности — в справочнике API.