# Настройка Claude Code API: ключи, settings.json, модели и шлюзы

> Прямой API подключается через ANTHROPIC_API_KEY с подтверждением в интерактивном сеансе. Для шлюза нужны совместимый API, адрес и его ключ или bearer-токен. Затем проверьте, какие настройки применились и откуда пришёл ответ модели.

- URL: https://blog.laozhang.ai/ru/posts/claude-code-api-configuration
- Published: 2026-04-21
- Updated: 2026-10-06
- Author: LaoZhang AI Team (https://blog.laozhang.ai/ru/about)
- Topic: Claude Code
- Tags: Claude Code, Claude API, Anthropic, Настройка API, Инструменты разработчика

---
Чтобы подключить API к Claude Code в терминале, передайте ключ через `ANTHROPIC_API_KEY`, запустите `claude` и подтвердите использование ключа. Если вы подключаете существующий шлюз, понадобятся его `ANTHROPIC_BASE_URL`, подходящий способ авторизации и доступное у него имя модели. Настройки можно закрепить в личном `settings.json`, но сначала стоит проверить их в одном сеансе.

Вход по подписке, Console, сторонний шлюз и облачный провайдер — разные способы подключения. Не добавляйте API-ключ поверх работающего входа, если хотите продолжать использовать подписку: после подтверждения ключа запросы могут пойти через API. Ниже описаны настройки из официальной документации, проверенной 6 октября 2026 года; реальные платные запросы для этой статьи не выполнялись.

## Сначала выберите маршрут

Начните с того доступа, который у вас уже есть. Создавать ключ требуется не во всех случаях.

| Что вы хотите использовать | Что настроить | Что проверить первым |
| --- | --- | --- |
| Подписку Claude с доступом к Claude Code | Вход через `/login` | Аккаунт и активный способ входа в `/status` |
| Ключ прямого Anthropic API | `ANTHROPIC_API_KEY` | Подтверждение ключа в интерактивном режиме |
| Claude Console без отдельного ключа | Вход в Console с сохранением профиля OAuth | Версию CLI, доступность этого способа и строку `Profile` |
| Существующий LLM-шлюз | Адрес, его ключ или bearer-токен, имя модели | Совместимость API и требования владельца шлюза |
| Amazon Bedrock, Google Cloud или Microsoft Foundry | Переключатель провайдера и его учётные данные | Облачный ресурс, регион и доступ к модели |
| Корпоративный Claude apps gateway | Вход через корпоративный SSO | Настройки, выданные администратором |

Сторонний LLM-шлюз с токеном и корпоративный **Claude apps gateway** с SSO настраиваются по-разному. При активном входе в Claude apps gateway именно его токен используется для сеанса, даже если остались переменные других провайдеров. Это исключение из обычного порядка выбора учётных данных. [Способы авторизации Claude Code](https://code.claude.com/docs/en/authentication).

## API-ключ: как подключить и подтвердить

Для прямого Anthropic API нужен действующий ключ из Claude Console. Следующий пример предназначен для **Bash**: ключ вводится без отображения и не попадает в текст команды. Подоболочка ограничивает изменение окружения этим запуском.

~~~bash
(
  read -r -s -p "Ключ Anthropic API: " ANTHROPIC_API_KEY
  printf '\n'
  export ANTHROPIC_API_KEY
  claude
)
~~~

Перед запуском убедитесь, что в выбранной конфигурации нет другого активного провайдера, `ANTHROPIC_AUTH_TOKEN`, переопределённого `ANTHROPIC_BASE_URL` или значения того же ключа в `env` файла настроек. Они могут изменить результат. Не удаляйте настройки организации, чтобы обойти её ограничения.

При первом обнаружении ключа Claude Code предлагает подтвердить или отклонить его; решение запоминается. Если вы раньше отказались, откройте `/config` и проверьте **Use custom API key**. Переключатель показывается, пока задан `ANTHROPIC_API_KEY`. В неинтерактивном режиме `-p` ключ используется при его наличии без такого подтверждения, если не выбран более приоритетный способ. Поэтому работающий интерактивный вход не гарантирует тот же способ оплаты в скрипте. [Правила выбора ключа](https://code.claude.com/docs/en/authentication#authentication-precedence).

После запуска введите в самом Claude Code:

~~~text
/status
~~~

Проверьте активную авторизацию и аккаунт; если настроены и вход, и ключ, статус отмечает неиспользуемый вариант. Затем выполните проверку с реальным ответом, описанную ниже. Сам факт наличия переменной ещё не подтверждает действительность ключа.

### Можно ли войти в Console без API-ключа?

Да, начиная с Claude Code **v2.1.242**. В `/login` выберите аккаунт **Anthropic Console**, затем вход, помеченный **recommended**. Он сохраняет OAuth-профиль; вариант **legacy** создаёт API-ключ. Для входа без ключа `ANTHROPIC_API_KEY` должен быть снят во всех применимых источниках. Вход также завершает сохранённый вход claude.ai, поэтому это осознанное переключение аккаунта.

Выбор доступен не при любой политике организации: облачный режим и некоторые настройки принудительного входа исключают этот вариант. Серверные управляемые настройки применяются к такому входу с v2.1.257. Для уже настроенного именованного профиля `ANTHROPIC_PROFILE` задаёт его выбор; `/status` показывает строку `Profile`. Редактировать хранилище учётных данных вручную для этого не нужно. [Вход в Console без ключа](https://code.claude.com/docs/en/authentication#sign-in-without-an-api-key).

## Приоритет учётных данных

Если Claude Code использует не тот аккаунт или ключ, сначала выясните, что он выбрал. Для обычного CLI без активного входа в Claude apps gateway порядок такой:

1. Учётные данные облака, **когда включён** `CLAUDE_CODE_USE_BEDROCK`, `CLAUDE_CODE_USE_VERTEX` или `CLAUDE_CODE_USE_FOUNDRY`.
2. `ANTHROPIC_AUTH_TOKEN`, передаваемый как `Authorization: Bearer`.
3. `ANTHROPIC_API_KEY`, передаваемый в `X-Api-Key`, с учётом интерактивного подтверждения.
4. Результат `apiKeyHelper`.
5. `CLAUDE_CODE_OAUTH_TOKEN`.
6. Выбранный Anthropic-профиль или федеративные учётные данные.
7. Сохранённый вход по подписке через `/login`.

У профилей есть исключение: обычный активный профиль `user_oauth`, не выбранный явно через `ANTHROPIC_PROFILE`, уступает действующему входу `/login`; активный федеративный профиль — выше него. Наличие AWS-учётных данных само по себе тоже не включает Bedrock. Политика администратора может запретить выбранный способ авторизации. [Полный порядок и исключения](https://code.claude.com/docs/en/authentication#authentication-precedence).

Практический пример: вы поменяли API-ключ, но в личном конфиге остался `ANTHROPIC_AUTH_TOKEN`. Тогда исправление ключа не решит проблему с bearer-токеном. Сначала установите активный источник по `/status` и своей конфигурации, затем исправьте именно его. Не начинайте с удаления всех сохранённых входов.

## Где менять settings.json

Личные настройки относятся к пользователю, общие проектные — к команде, а локальные проектные позволяют вам переопределить настройки проекта.

![Личные, общие проектные и локальные настройки Claude Code](https://blog.laozhang.ai/posts/ru/claude-code-api-configuration/img/settings-scopes.webp)

| Область | Путь по умолчанию | Разумное применение |
| --- | --- | --- |
| Пользовательская, или глобальный конфиг | `~/.claude/settings.json` | Личные настройки для разных проектов |
| Общая проектная | `.claude/settings.json` | Настройки команды без секретов, допускаемые к коммиту |
| Локальная проектная | `.claude/settings.local.json` | Личные переопределения проекта |
| Управляемая | Источник, развёрнутый администратором | Ограничения и обязательные настройки организации |

Обычный порядок настроек: **управляемые → параметры командной строки → локальные проектные → общие проектные → пользовательские**. Однако это не означает, что любой объект целиком заменяется более высоким: списки обычно объединяются, а у некоторых ключей свои правила. Переменные в `env` разрешаются по отдельным именам. Если одно имя задано и в оболочке, и в применимом `env`, используется значение из файла. [Области и приоритет настроек](https://code.claude.com/docs/en/settings).

Например, этот небольшой личный конфиг задаёт модель по умолчанию, не сохраняя ключ:

~~~json
{
  "$schema": "https://json.schemastore.org/claude-code-settings.json",
  "model": "sonnet"
}
~~~

Это строгий JSON: комментарии и запятая после последнего поля недопустимы. Если файл уже содержит другие настройки, добавьте поле в существующий объект; не заменяйте весь файл этим примером. `sonnet` — псевдоним, а не фиксированная версия модели у всех провайдеров.

Для постоянного прямого подключения можно добавить `env` в личные настройки. Ниже **шаблон**: замените строку `YOUR_API_KEY` своим ключом, а не запускайте с ней запрос.

~~~json
{
  "model": "sonnet",
  "env": {
    "ANTHROPIC_API_KEY": "YOUR_API_KEY"
  }
}
~~~

Ключ останется в файле: если такое хранение вам не подходит, используйте окружение процесса или принятый в организации механизм выдачи учётных данных. Не помещайте ключ в общий проектный файл. `.claude/settings.local.json`, созданный Claude Code, исключается из Git автоматически; для файла, созданного вручную, исключение нужно обеспечить самостоятельно. Отсутствие файла в Git не заменяет контроль доступа к секрету.

В Git-репозитории локальные настройки обычно берутся из корня основного рабочего дерева. Не предполагайте, что отдельная копия `settings.local.json` в каждой вложенной папке или worktree обязательно изолирует конфигурацию. Если вы меняли каталог через `/cd`, также проверьте, откуда читаются проектные настройки. [Правила поиска файлов](https://code.claude.com/docs/en/settings).

### Почему правка не применилась?

Проверьте последовательно три вещи:

- **Файл читается?** `/status` показывает загруженные источники настроек. Это не список победивших значений каждого ключа. Ошибка JSON, неизвестное поле и запрет управляемой политики — разные причины.
- **Значение переопределено?** Сравните локальный, общий и пользовательский конфиги, параметры запуска и `env`. Для модели дополнительно учитываются `ANTHROPIC_MODEL` и выбор текущего сеанса.
- **Нужен новый запуск?** Большинство настроек перечитываются при изменении файла, но модель и effort читаются при старте. Текущую модель меняйте через `/model`; изменение стартового значения проверяйте в новом сеансе.

`/config` — меню терминального Claude Code, а не редактор всех JSON-полей. Оно не заменяет проверку источников и недоступно как то же самое меню в чате VS Code или Desktop. [Перезагрузка и диагностика настроек](https://code.claude.com/docs/en/settings).

## API-ключ и шлюз

Для существующего шлюза сначала получите у его владельца **адрес, формат API, способ авторизации и допустимое имя модели**. Поддержки только OpenAI Chat Completions недостаточно, чтобы считать шлюз совместимым с Claude Code. В обычном подключении через Anthropic Messages нужен `/v1/messages`, корректные заголовки версии и beta, а также совместимое поведение запросов. [Требования к протоколу](https://code.claude.com/docs/en/llm-gateway-protocol).

При ошибке `400 unsupported role` проверьте [формат ролей и сохранение системных инструкций](https://blog.laozhang.ai/ru/posts/api-400-role-system-is-not-supported-on-this-model).

Если шлюз принимает bearer-токен, пример для Bash выглядит так. Замените адрес на выданный вам адрес шлюза:

~~~bash
(
  export ANTHROPIC_BASE_URL="https://gateway.example.com"
  read -r -s -p "Bearer-токен шлюза: " ANTHROPIC_AUTH_TOKEN
  printf '\n'
  export ANTHROPIC_AUTH_TOKEN
  claude
)
~~~

Если шлюз ожидает `x-api-key`, используйте `ANTHROPIC_API_KEY` вместо `ANTHROPIC_AUTH_TOKEN`. `apiKeyHelper` подходит для динамических учётных данных; его результат отправляется в обоих заголовках. Способ выбирается по требованиям конкретного сервера, а не по названию сервиса. [Подключение и авторизация шлюза](https://code.claude.com/docs/en/llm-gateway-connect).

**Один `ANTHROPIC_BASE_URL` не переключает вход и оплату.** Без отдельного ключа или токена может продолжать использоваться сохранённый OAuth-вход; шлюзу тогда нужна поддержка соответствующего режима. При выбранном ключе шлюза сохранённый вход claude.ai можно оставить: он не передаётся вместо активных учётных данных шлюза. Условия оплаты определяет владелец используемого доступа. [Как шлюз взаимодействует с авторизацией](https://code.claude.com/docs/en/llm-gateway).

`ANTHROPIC_BASE_URL` меняет адрес сервера, но не имя модели. Если шлюз использует собственные идентификаторы, выберите именно их, а не случайный псевдоним из примера. Управляемый список `allowedProviders` и закреплённый администратором адрес могут ограничивать подключение; локальная переменная не является способом обхода этой политики.

## Модель и провайдеры

При выборе модели приоритет такой: **текущий `/model` → `--model` при запуске → `ANTHROPIC_MODEL` → поле `model` в настройках → `ANTHROPIC_DEFAULT_MODEL`**. У возобновляемого сеанса также есть сохранённая модель и правила её совместимости; проверяйте фактический выбор после возобновления. [Настройка модели](https://code.claude.com/docs/en/model-config).

### Как сменить модель только на этот сеанс?

В `/model` клавиша **Enter** обычно сохраняет выбранную модель как пользовательское значение по умолчанию. Прямой ввод `/model имя-модели` тоже сохраняет его. Чтобы изменить только текущий сеанс, используйте клавишу **s** в выборе модели. Параметр `--model` и `ANTHROPIC_MODEL` задают выбор при запуске, не сохраняя пользовательское значение по умолчанию. [Сохранение выбора модели](https://code.claude.com/docs/en/model-config).

Например, для запуска с псевдонимом Sonnet:

~~~bash
claude --model sonnet
~~~

Псевдоним разрешается в конкретную модель по правилам провайдера и версии CLI. Для воспроизводимой конфигурации нужен точный поддерживаемый идентификатор: имя модели прямого API, ARN профиля вывода Bedrock, версия модели Google Cloud либо имя развёртывания (deployment) в Foundry. `default` снимает явный выбор и возвращает выбор по условиям аккаунта; это не универсальный идентификатор модели. Список `availableModels`, заданный организацией, может ограничивать выбор независимо от стартовой модели. Даже поле `model` в управляемых настройках задаёт начальный выбор; ограничения доступных моделей — отдельная настройка.

### Bedrock, Google Cloud и Foundry: что обязательно задать

Следующие примеры относятся к **уже подготовленным** облачным ресурсам и учётным данным. Они не создают аккаунт, не дают доступ к модели и не настраивают IAM.

Для **Amazon Bedrock** включите провайдера и используйте разрешённый вам AWS-профиль. `AWS_REGION` нужен, если регион не задан в применимом профиле; регион SSO и регион вызова модели не обязательно совпадают:

~~~bash
export CLAUDE_CODE_USE_BEDROCK=1
export AWS_PROFILE="your-aws-profile"
export AWS_REGION="us-east-1"
claude
~~~

Имена профиля и региона здесь примерные. У выбранного профиля должны быть действующие учётные данные и необходимые разрешения Bedrock; доступность модели в регионе проверяется отдельно. [Подключение Amazon Bedrock](https://code.claude.com/docs/en/amazon-bedrock).

У **Google Cloud's Agent Platform**, ранее Vertex AI, сохранились переменные с `VERTEX`. Нужны проект для запросов, подходящий регион и действующие учётные данные Google Cloud, например заранее настроенные Application Default Credentials:

~~~bash
export CLAUDE_CODE_USE_VERTEX=1
export ANTHROPIC_VERTEX_PROJECT_ID="your-project-id"
export CLOUD_ML_REGION="your-supported-region"
claude
~~~

Замените оба значения на реальные. Проект определяется `ANTHROPIC_VERTEX_PROJECT_ID`, а не автоматически проектом, где созданы учётные данные. В нём должны быть включены необходимые API, оплата и доступ к нужной модели. [Настройка Google Cloud](https://code.claude.com/docs/en/google-vertex-ai).

Для **Microsoft Foundry** задайте переключатель и имя ресурса либо полный `ANTHROPIC_FOUNDRY_BASE_URL`:

~~~bash
export CLAUDE_CODE_USE_FOUNDRY=1
export ANTHROPIC_FOUNDRY_RESOURCE="your-resource-name"
claude
~~~

Этот вариант предполагает доступ через уже настроенную стандартную цепочку учётных данных Azure. Если организация выдала другой способ, применяйте `ANTHROPIC_FOUNDRY_AUTH_TOKEN` или `ANTHROPIC_FOUNDRY_API_KEY`: токен выше ключа, затем идёт стандартная цепочка Azure. Для моделей задавайте реальные имена развёртываний. У Foundry нет проверки наличия модели при запуске, поэтому первый запрос может обнаружить неверное имя или отсутствие доступа. [Настройка Microsoft Foundry](https://code.claude.com/docs/en/microsoft-foundry).

## Терминал, VS Code и Desktop читают настройки по-разному

Если терминал работает, а расширение снова требует входа, проверьте способ запуска редактора. `export` передаётся дочерним процессам оболочки; приложение, открытое из Dock, не обязано получить эти переменные.

У расширения VS Code есть ещё собственная предварительная проверка учётных данных. Для неё используется **`claudeCode.environmentVariables`** в пользовательских настройках VS Code. `env` из `~/.claude/settings.json` может дойти до запущенного процесса Claude Code, но не удовлетворить предварительную проверку самого расширения. Формат массива в настройках VS Code, например для адреса:

~~~json
{
  "claudeCode.environmentVariables": [
    {
      "name": "ANTHROPIC_BASE_URL",
      "value": "https://gateway.example.com"
    }
  ]
}
~~~

Это фрагмент настройки **адреса**, а не полное подключение: добавьте выданный вам способ авторизации согласно инструкции шлюза. Не переносите секрет в общие проектные настройки VS Code. [Настройка шлюза в VS Code](https://code.claude.com/docs/en/llm-gateway-connect).

Для Desktop требуется отдельная **third-party inference configuration** со своими учётными данными; простого `export ANTHROPIC_BASE_URL` или записи в CLI `settings.json` недостаточно. Управляемая конфигурация имеет приоритет. Обычные облачные сеансы Claude Code используют подписку: переменные API-ключа или bearer-токена не переключают их на ваш локальный шлюз. [Различия способов запуска](https://code.claude.com/docs/en/llm-gateway-connect).

## Проверка перед работой

Проверяйте результат в том приложении и окружении, где собираетесь работать.

![Проверка способа подключения, области настроек и модели Claude Code](https://blog.laozhang.ai/posts/ru/claude-code-api-configuration/img/configuration-check.webp)

Для терминального Claude Code порядок следующий:

1. **Откройте `/status`.** Сверьте активный способ авторизации или профиль, аккаунт, модель, адрес API, если он показан, и загруженные источники настроек. Это проверка конфигурации, не успешного обращения к модели.
2. **Проверьте выбор модели.** В `/model` должна быть нужная модель. Не подтверждайте новый выбор через Enter, если не хотите изменить пользовательское значение по умолчанию.
3. **Отправьте минимальный запрос без файлов**, например: `Ответь только: OK`. Ответ подтверждает, что этот сеанс смог обратиться к модели. Запрос может тарифицироваться; используйте только согласованный доступ.
4. **Сверьте запрос на принимающей стороне.** Для Console, облака или шлюза проверьте соответствующий журнал или учёт потребления. Ответ модели не доказывает, что списание прошло с ожидаемого аккаунта.
5. **Проверьте нужную рабочую возможность.** Если вам нужны инструменты Claude Code, сделайте небольшую задачу в тестовом проекте с допустимыми данными. Обычный текстовый ответ не проверяет поддержку инструментов шлюзом.

Если ключевое условие не выполнено, остановитесь на нём, а не меняйте одновременно ключ, модель и регион. [Официальная проверка шлюза](https://code.claude.com/docs/en/llm-gateway-connect).

| Наблюдение | Следующий шаг |
| --- | --- |
| Файл настроек не загрузился | Исправить JSON и проверить применимый путь |
| В статусе другой способ входа | Найти более приоритетные учётные данные или сохранённое решение по API-ключу |
| Модель не та | Проверить `/model`, параметры запуска и `ANTHROPIC_MODEL` |
| Терминал работает, расширение требует входа | Проверить окружение редактора и `claudeCode.environmentVariables` |
| Сервер вернул 401 или 403 | По сообщению и журналу нужного сервера проверить авторизацию и политику доступа |
| Сервер сообщает о неизвестной модели | Сверить идентификатор модели, имя развёртывания и права у выбранного провайдера |
| Текстовый ответ есть, инструменты не работают | Проверить совместимость шлюза с запросами Claude Code |

Код 404 или сообщение о неизвестной модели не доказывает успешную авторизацию у любого шлюза: сервер может проверять имя модели до ключа. Аналогично, успешный `/status` не подтверждает ни вызов API, ни оплату. Сохраняйте для диагностики время запроса, версию CLI, имя провайдера, модель и очищенное от секретов сообщение ошибки.

## Часто задаваемые вопросы

### Нужен ли API-ключ для Claude Code?

Не всегда. Доступны вход по подходящей подписке, Console-профиль без отдельного ключа, корпоративный SSO и поддерживаемые облачные подключения. Для прямого подключения с выданным ключом используйте `ANTHROPIC_API_KEY`; в интерактивном CLI его нужно подтвердить. [Способы входа](https://code.claude.com/docs/en/authentication).

### Чем отличается ANTHROPIC_AUTH_TOKEN от ANTHROPIC_API_KEY?

`ANTHROPIC_AUTH_TOKEN` отправляется как bearer-токен, `ANTHROPIC_API_KEY` — в `X-Api-Key`. Шлюз может требовать любой из этих способов; используйте тот, который он документирует. Наличие bearer-токена имеет приоритет над API-ключом в обычной цепочке CLI. [Подключение шлюза](https://code.claude.com/docs/en/llm-gateway-connect).

### Где найти session key Claude для настройки API?

Для этого руководства session key браузера не нужен. Используйте официальный вход `/login`, Console-профиль или выданный API-ключ. Не извлекайте cookie из браузера и не правьте `.credentials.json`: Claude Code управляет сохранённым входом самостоятельно. [Управление учётными данными](https://code.claude.com/docs/en/authentication#credential-management).

### Как понять, что настройка сработала?

Сначала `/status` должен показывать ожидаемую конфигурацию, затем запрос — получить ответ от нужного сервера. Для проверки оплаты дополнительно нужен соответствующий журнал потребления, а для работы инструментов — отдельная небольшая задача. Загрузка JSON и доступность меню `/config` сами по себе этих результатов не подтверждают.

## Источники

Внешние страницы, на которые ссылается это руководство, в порядке упоминания. Последнее обновление: 2026-10-06.

- [Способы авторизации Claude Code](https://code.claude.com/docs/en/authentication) (code.claude.com)
- [Области и приоритет настроек](https://code.claude.com/docs/en/settings) (code.claude.com)
- [Требования к протоколу](https://code.claude.com/docs/en/llm-gateway-protocol) (code.claude.com)
- [Подключение и авторизация шлюза](https://code.claude.com/docs/en/llm-gateway-connect) (code.claude.com)
- [Как шлюз взаимодействует с авторизацией](https://code.claude.com/docs/en/llm-gateway) (code.claude.com)
- [Настройка модели](https://code.claude.com/docs/en/model-config) (code.claude.com)
- [Подключение Amazon Bedrock](https://code.claude.com/docs/en/amazon-bedrock) (code.claude.com)
- [Настройка Google Cloud](https://code.claude.com/docs/en/google-vertex-ai) (code.claude.com)
- [Настройка Microsoft Foundry](https://code.claude.com/docs/en/microsoft-foundry) (code.claude.com)
