# Аутентификация

> Передавайте API-ключ как Bearer-токен или в x-api-key. Ключи принадлежат организации, и у них могут быть бюджеты и ограничения по моделям.


Каждому запросу нужен API-ключ. Передавайте его в одном из двух заголовков:

| Заголовок | Формат |
|---|---|
| `Authorization` | `Bearer nh_live_...` |
| `x-api-key` | `nh_live_...` (так делают SDK Anthropic) |

```bash test
curl https://api.notholy.com/v1/models -H "x-api-key: $NOTHOLY_API_KEY"
```

## Ключи

Ключи создаются в консоли в разделе **API-ключи**. Каждый ключ принадлежит организации и рабочему пространству. Секрет показывается один раз и хранится только в виде хеша.

У ключа могут быть:

- Общий и дневной бюджет в долларах США. Если остатка бюджета не хватает на запрос, его лимит вывода уменьшается, а ниже 16 токенов запрос получает `402 key_budget_exceeded`.
- Список разрешённых моделей. На другие модели приходит `403 key_not_allowed`.
- Срок действия.
- Список разрешённых IP-адресов или диапазонов CIDR. Другие адреса получают `403 key_not_allowed`.

Отзыв ключа срабатывает со следующего запроса.

## Ключи в коде

Читайте ключ из окружения. Не коммитьте его. Если ключ утёк, отзовите его в консоли и создайте новый.

> [!WARNING]
> Никогда не встраивайте ключ в клиентский код. Вызывайте API со своего сервера или из терминала, а ключи держите в переменных окружения или хранилище секретов.

```python test
import os
from openai import OpenAI

client = OpenAI(base_url="https://api.notholy.com/v1", api_key=os.environ["NOTHOLY_API_KEY"])

print([m.id for m in client.models.list()])
```

## Ошибки

| Статус | Код | Значение |
|---|---|---|
| 401 | `invalid_api_key` | Ключ отсутствует, неверен, отозван или истёк |
| 403 | `key_not_allowed` | Ключу нельзя использовать эту модель, или его нельзя использовать с этого IP-адреса |
| 403 | `account_suspended` | Организация заблокирована. Напишите в поддержку |
| 403 | `consent_required` | Создатель ключа не дал или отозвал согласие на обработку партнёрами в других странах. Принять его можно в консоли |

## Что дальше

- [Модели](/ru/getting-started/models)
- [Организации и роли](/ru/account/organizations)
