Инструменты22 минобновлено

Claude Code API: когда нужен ключ

Claude Code API: короткий ответ

Коротко: отдельного адреса с названием Claude Code API не существует. Под запросом объединены публичный интерфейс платформы, сам агент в терминале, который в этот интерфейс ходит, и библиотека для встраивания агента в чужую программу. Практический вопрос при этом почти всегда один: чем именно платит твой агент прямо сейчас. Отвечает на него документированная очередь входов, и подписка стоит в ней последней.

За этим запросом прячутся четыре несовместимые задачи. Таблица ниже разводит их по разделам, чтобы ты не читал лишнего.

Что тебе на самом деле нужно Где ответ
Понять, чем агент отличается от интерфейса модели разделы 2 и 3
Платить за агента ключом вместо подписки разделы 3-7
Запускать агента без человека за клавиатурой раздел 9
Встроить агента в свою программу раздел 8
Получить ключ Claude API раздел «Как получить ключ Claude API»

Подсказки поиска на 19 сентября 2026 года подтверждают перекос: рядом с «claude code api» стоят «api key», «pricing», «free» и «error». Спрашивают в основном про ключ и про деньги, и почти никогда про устройство.

Сразу оговорю границу разбора. Всё проверено на Claude Code версии 2.1.211 и на документации Anthropic по состоянию на 19 сентября 2026 года. Имена моделей и тарифы меняются быстрее, чем переписываются статьи, поэтому числа я отправляю смотреть на официальную страницу, а разбираю то, что меняется медленнее: устройство входов.

Дальше разбираем, каким способом входит и оплачивает работу именно Claude Code.

Чем интерфейс Anthropic отличается от самого агента

Коротко: публичный интерфейс Anthropic и Claude Code стоят рядом и делают разное. Интерфейс это адрес, куда программа шлёт запрос с ключом и получает ответ модели. Claude Code это программа на твоей машине, которая в этот адрес ходит сама, а заодно читает твои файлы и запускает команды.

Устройство тут двухслойное. Нижний слой - платформа Anthropic. Туда приходит запрос с ключом вида sk-ant-, оттуда возвращается ответ модели. Никакого агента там нет: платформа не знает про твои файлы и ничего сама не делает.

Верхний слой - Claude Code, программа в терминале. Она держит контекст, читает папку проекта, правит файлы, запускает команды и сама решает, сколько раз сходить к модели ради одной твоей задачи. Разницу между агентом и простым обращением к модели я разбирал отдельно.

Отсюда первый практический вывод. Если ты ищешь адрес, куда слать запросы «в Claude Code API», ты его не найдёшь. Запросы отправляет сам агент, а принимает их платформа Anthropic: программа на твоей машине тут в роли того, кто спрашивает. Зато у неё есть документированный набор способов представиться платформе, и именно этот набор люди обычно имеют в виду под словами Claude Code API.

Очередь из семи входов: чем платит твой агент

Коротко: когда на машине лежит сразу несколько способов входа, Claude Code выбирает один по фиксированному списку из семи позиций. Подписка через /login стоит в нём седьмой, то есть последней. Переменная ANTHROPIC_API_KEY стоит третьей. Из этого порядка растут почти все истории про неожиданные списания.

Документация Anthropic приводит порядок выбора прямым списком. Перескажу его по-русски, сохранив нумерацию:

  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 - долгоживущий токен, который печатает команда claude setup-token.
  6. Профиль и корпоративные учётные данные - те, которыми пользуется отдельная утилита платформы.
  7. Подписка: учётные данные, сохранённые командой /login. Это вход по умолчанию для тарифов Pro, Max, Team и Enterprise.

Правило простое: агент берёт первый источник, который найден, и на нём останавливается. Сравнения по цене в этом механизме нет, подтверждения тоже.

Посмотри, где в этом списке стоит подписка. Большинство читателей уверены, что оплаченный тариф - это главный способ входа, а ключ подключается отдельно и осознанно. В очереди всё наоборот: подписка стоит ниже всех перечисленных переменных окружения.

Поэтому фраза «у меня же оплачен Max» ничего не решает. Claude Code API в этом смысле удобнее держать в голове как место в очереди, которое занял твой способ оплаты.

Два полезных исключения. Сессии в облачном интерфейсе Claude Code всегда работают по подписке: выставленная там переменная на это не влияет. А сессия корпоративного шлюза стоит вообще вне списка и срабатывает раньше выбора облачного провайдера.

Почему ключ в переменной сильнее подписки

Коротко: переменную окружения легко поставить один раз и забыть навсегда. Профиль оболочки, файл .env в проекте, переменные среды Windows, блок настроек - ключ оттуда читается при каждом запуске. Подтверждение спрашивается один раз, запоминается и больше не повторяется. В неинтерактивном режиме его не спрашивают совсем. Поэтому забытая строка работает тихо и ровно до того дня, когда приходит счёт.

Документация описывает защиту так: в интерактивном режиме при найденном ключе агент один раз спрашивает, использовать его или нет, и запоминает твой ответ. Переключить решение потом можно в меню /config, причём сам переключатель показывается только пока переменная выставлена.

Защита одноразовая, и это её слабое место. Человек, который в первый день согласился на ключ, через месяц про это уже не помнит. Вопрос ему больше не задают. Про Claude Code API он ничего специально не настраивал: просто когда-то нажал «да».

В неинтерактивном режиме, то есть при запуске с флагом -p, ключ применяется всегда, если он задан. Никакого вопроса там нет по устройству. Скрипт, запущенный по расписанию на машине с забытой переменной, будет тратить деньги со счёта платформы до тех пор, пока кто-нибудь не посмотрит в счёт.

Как это выглядит в жизни, видно по обращениям в трекере anthropics/claude-code. В обращении 58083 подписчик тарифа Max держал ключ в файле .env своего проекта для собственного приложения, агент подхватил его оттуда, и за три недели набежало около 52 долларов. В обращении 44669 описан другой заход: при первой настройке человек выбрал вход по ключу, ключ создался автоматически, и, по данным того же обращения, за сутки ушло 13,99 доллара без предупреждения в интерфейсе.

Отмечу честно, где проходит граница между позицией компании и позицией людей. С точки зрения документации всё работает как задумано: порядок описан открыто. С точки зрения пользователя это выглядит как подмена без предупреждения, потому что в строке статуса способ оплаты не показан и заметить подмену не на чем. Обе позиции по-своему верны, а вывод для тебя один: проверяй вход руками.

Как за минуту проверить, чем ты платишь

Коротко: на вопрос «плачу я подпиской или через Claude Code API» отвечают три команды. /status показывает, какой вход активен прямо сейчас и какой источник остался без дела, /usage показывает, сколько уже потрачено, а снятие переменной окружения возвращает оплату на подписку после перезапуска сессии. Вся проверка занимает минуту.

  1. Запусти /status прямо в сессии. Команда показывает текущий способ входа. Если на машине лежат сразу и сохранённый логин, и ключ, /status помечает тот источник, который сейчас не используется, - по этой пометке сразу видно, какой вход оказался выше в очереди.
  2. Посмотри /usage. У подписчика команда рисует полосы расхода по тарифу. У того, кто платит по ключу, вверху появляется блок сессии с разбивкой по токенам и оценкой суммы. В справке этот блок прямо адресован тем, кто платит по счёту платформы, а подписчику он для расчётов не нужен.
  3. Сними переменную, если ключ не нужен. В текущей вкладке терминала достаточно выполнить unset ANTHROPIC_API_KEY. Дальше найди, откуда она берётся насовсем: профиль оболочки, файл .env проекта, переменные среды Windows, блок env в файле настроек. Пока строка живёт там, каждый новый запуск будет подхватывать её заново.
  4. Перепроверь /status после перезапуска. Без этого шага непонятно, сработала правка или нет.

Отдельно про ошибку credit_balance_too_low - её видят те, кто уже платит через Claude Code API. Она читается как «пополни счёт», но означать может другое. В трекере лежит открытое обращение 54839, где ошибка возвращалась на каждый запрос при положительном балансе на рабочем пространстве. Поэтому порядок действий такой: сначала /status и вопрос «а каким входом я вообще плачу», и только потом касса.

Из чего складывается счёт по ключу

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

Конкретные числа я намеренно не переписываю: тарифы и имена моделей меняются чаще, чем статьи, и текст с ценами устаревает раньше, чем это становится заметно. Смотреть их надо на официальной странице тарифов и в списке моделей внутри самого агента - команда /model показывает цену за миллион токенов прямо в строке модели, когда агент работает с платформой Anthropic напрямую или через шлюз, который её проксирует.

Устройство счёта важно понять до цифр. Токен тут - это кусочек текста, которым считается и твой вопрос, и ответ модели, и перечитанный контекст. В документации по расходам есть строка примера вывода, и по ней пропорция видна сразу:

claude-sonnet-4-6:  1.2k input, 5.3k output, 940.0k cache read, 50.0k cache write

Посчитай пропорцию. Входных токенов тысяча с небольшим, выходных пять тысяч, а чтения кэша почти миллион. Так устроена работа агента: на каждом шаге он заново перечитывает всё, что уже обсуждалось, и этот перечитанный кусок называется кэшем. Чем длиннее сессия, тем сильнее счёт определяется именно этой строкой. Твои вопросы в нём почти ничего не весят.

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

В справке по расходам Anthropic приводит и собственную оценку среднего счёта на человека в день и в месяц по корпоративным внедрениям. Числа смотри там же, у первоисточника, а вывод из них простой: для человека, который сидит в терминале каждый день, ключ обычно оказывается сопоставим с платной подпиской или дороже её. Экономией он не становится.

Если ключ всё-таки нужен, первым делом поставь себе лимит трат в настройках аккаунта платформы. Это встроенный механизм, и для новичка, который переходит на Claude Code API, он обязателен.

Что выбрать: ключ или подписку

Коротко: различие между подпиской и Claude Code API глубже, чем «где платить». Между ними меняются предсказуемость расхода, поведение в скриптах, доступность отдельных команд и то, что происходит при упоре в потолок: на подписке ты ждёшь сброса окна, на ключе платишь дальше. Свёл восемь осей в таблицу, чтобы решение принималось по фактам.

Ось сравнения Подписка через /login Ключ платформы
Как считается фиксированная сумма за период по токенам, включая чтение и запись кэша
Предсказуемость сумма известна заранее сумма известна только постфактум
Что ограничивает лимиты тарифа и окно расхода лимиты запросов и твой лимит трат
Упор в потолок ждёшь сброса окна платишь дальше, пока не упрёшься в лимит трат
Режим -p работает, пока вход действителен применяется всегда и без подтверждения
Режим --bare не работает: подписка там не читается работает, это его штатный вход
Команда /usage-credits доступна недоступна при входе по ключу
Где смотреть расход /usage и личный кабинет /usage и страница расхода в консоли

Про --bare в таблице нужна расшифровка: на этом режиме чаще всего ломается автоматизация. Это ускоренный режим запуска, и в нём агент не читает ни сохранённый логин, ни системное хранилище ключей. В документации сказано, что со временем --bare планируется сделать поведением по умолчанию для флага -p. Сценарий, который сегодня работает по подписке, в будущем может потребовать ключ.

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

Claude Agent SDK: то, что правда похоже на API

Коротко: если под словами Claude Code API ты имел в виду «взять этого агента и встроить в свою программу», то нужная вещь называется Claude Agent SDK. Это библиотека для Python и TypeScript, и раньше она называлась Claude Code SDK. Вместе с именем сменились и пакеты, поэтому половина старых инструкций ставит то, чего больше нет.

Переименование зафиксировано в документации дословно: Claude Code SDK переименован в Claude Agent SDK, потому что библиотека пригодна не только для задач с кодом. Вместе с именем сменились и пакеты:

Было Стало
@anthropic-ai/claude-code @anthropic-ai/claude-agent-sdk
claude-code-sdk claude-agent-sdk

Практическое следствие такое. Любая инструкция, где ставят пакет со старым именем, написана до переименования, и половина русских упоминаний Claude Code API до сих пор ссылается именно на неё. Если команда установки падает с сообщением про несуществующий пакет, дело чаще всего в этом. Машина тут ни при чём.

Библиотека повторяет тот же порядок работы, что у программы в терминале, только вызывается из кода. А вот вход по подписке твоего пользователя через неё недоступен: в документации сказано, что сторонним разработчикам не разрешено предлагать в своих продуктах вход через claude.ai или лимиты этого тарифа, если Anthropic не согласовала это заранее. Продукт на Agent SDK работает по ключу платформы, и этот ключ кто-то оплачивает.

Чем режим claude -p отличается от обращения по сети

Коротко: флаг -p печатает ответ и завершает работу. Под ним работает тот же самый агент, просто без человека за клавиатурой. Отдельного продукта и отдельного сетевого адреса за этим флагом нет. Зато есть форматы вывода для машин и одна важная особенность оплаты: ключ в этом режиме применяется без подтверждения.

Проверить это можно не выходя из терминала. Справка самой программы описывает флаг одной строкой: запустить сессию неинтерактивно и напечатать ответ. Дальше в дело идут флаги вывода:

claude -p "перечисли файлы в этой папке" --output-format json

Формат json возвращает ответ одним объектом, и в нём приезжает поле с итоговой стоимостью и разбивкой по моделям. У stream-json вывод другой: поток событий построчно. Есть и отдельный флаг, который заставляет вывод соответствовать заданной схеме.

Для тех, кто пишет не на Python и не на TypeScript, документация Agent SDK предлагает именно этот режим: библиотеки есть только для двух языков, а из любого другого предлагается запускать программу как обычную команду и читать её вывод. То есть официальный способ «обратиться к Claude Code из своего кода» на третьем языке - это запуск обычной командной строки. По сети туда никто не ходит.

И предупреждение про безопасность, которое стоит знать заранее. Без флага --bare неинтерактивный запуск выполняет хуки из настроек проекта и запускает описанные в нём вспомогательные программы даже в папке, которой ты никогда не доверял. Для чужого репозитория это важнее, чем вопрос оплаты.

Bedrock, Vertex и Foundry: агент ходит в чужое облако

Коротко: тот же Claude Code можно развернуть так, что за моделью он пойдёт в облако твоей компании, и счёт придёт оттуда же. Поддерживаются три площадки, включается каждая одной переменной, и в очереди входов такие переменные стоят первыми. Побочный эффект заметен сразу: в списке моделей пропадают цены.

Три облака, которые агент умеет использовать, и переменные, которые их включают:

Площадка Переменная-переключатель Что ещё понадобится
Amazon Bedrock CLAUDE_CODE_USE_BEDROCK регион и учётные данные AWS
Google Cloud, бывший Vertex AI CLAUDE_CODE_USE_VERTEX регион и идентификатор проекта
Microsoft Foundry CLAUDE_CODE_USE_FOUNDRY имя ресурса и ключ либо токен

Заводить переменные руками не обязательно: в меню /login есть пункт для сторонней площадки, который запускает мастер настройки для Bedrock и Vertex, и вход через браузер там не нужен.

При работе через облако провайдера в списке моделей пропадают цены. Это ожидаемо: цену в такой схеме определяет не Anthropic, а твой провайдер, и чужие цены агент не показывает. Поэтому корпоративный Claude Code API - это всегда разговор с тем, кто держит облачный счёт.

Сюда же относится переменная ANTHROPIC_BASE_URL, которой подменяют адрес платформы, когда трафик гонят через шлюз или посредника. У неё есть побочный эффект: при адресе, отличном от штатного, часть возможностей агента отключается.

Четыре привычки, которые стоят денег

Коротко: все дорогие истории сводятся к четырём привычкам: ключ, прописанный в профиль оболочки навсегда, ключ, лежащий в файле проекта, ключ, взятый там, где хватало подписки, и запуск внутри сессии тестов, которые сами обращаются к модели. Каждая из четырёх лечится одним действием, и ни одно из них не требует программиста.

Прописывать ключ в профиль оболочки навсегда. Строка в .zshrc или .bashrc остаётся там годами и подхватывается каждым запуском - так агент и оказывается на Claude Code API в сессиях, где ты ждал оплату по подписке. Рабочая привычка другая: выставлять переменную только в той вкладке терминала, где она реально нужна. Закрыл вкладку - ключ исчез, и следующая сессия снова идёт по подписке.

Держать ключ в файле проекта. Файл .env попадает в репозиторий чаще, чем кажется, а агент читает переменные оттуда наравне с системными. Это ровно тот сценарий, который описан в обращении 58083.

Брать ключ там, где хватало подписки. Оплата по ключу считается по факту: сколько токенов ушло, столько и в счёте. Лимиты тарифа он при этом не расширяет. Для ежедневной работы руками такая касса обычно выходит дороже подписки.

Запускать внутри сессии тесты, которые сами обращаются к модели. Агент выполняет команду, команда делает сотни собственных обращений, и всё это уходит на твой ключ. Перед тем как просить агента прогнать тесты, стоит посмотреть, делает ли набор тестов настоящие обращения к модели.

Три ситуации, в которых ключ оправдан

Коротко: ключ оправдан там, где человека за клавиатурой нет или где платит не человек. Таких ситуаций три: запуск без человека, встраивание агента в свою программу и корпоративный контур с собственным облаком. Ни одна из них не про обычную работу руками в своей папке, и это главный вывод разбора.

Запуск без человека. Сборка по расписанию, обработка очереди задач, проверка кода при загрузке изменений. Тут подписка не подходит по устройству: в режиме -p подтверждения нет, а в режиме --bare сохранённый логин не читается вовсе. Для части таких сценариев есть компромисс - долгоживущий токен от команды claude setup-token: он работает на подписке, а браузер нужен один раз, в момент выпуска. В режиме --bare этот токен не читается.

Встраивание в свою программу. Агент внутри сервиса, бота или внутреннего инструмента. Оплата тут идёт ключом: предлагать пользователям вход по чужой подписке правилами не разрешено, если Anthropic не согласовала это отдельно.

Корпоративный контур. Компания держит модель в своём облаке и не хочет, чтобы трафик шёл напрямую. Тогда включается одна из переменных провайдера, а счёт приходит от облака.

Во всех остальных случаях подписка проще и предсказуемее. Если ты работаешь в терминале руками и считаешь свои деньги, честный итог этого разбора для тебя звучит так: ключ можно не трогать.

Как получить ключ Claude API

Коротко: ключ создают в Claude Console на platform.claude.com, раздел Settings - API keys, кнопка Create key. Полный ключ начинается с sk-ant- и показывается один раз, при создании. Подписка на Claude и оплата в Console - разные кассы, поэтому оплаченный Pro или Max не даёт кредитов для ключа. Сверено с документацией Anthropic 26 сентября 2026 года.

Если после разбора выше ты решил, что ключ тебе правда нужен, порядок такой.

  1. Проверь, доступен ли тебе API. У Anthropic есть официальный список поддерживаемых стран, и России в нём нет. Обещание посредника или чужой адрес в инструкции разрешённого доступа не подтверждают.
  2. Открой Console и Billing. Зайди на platform.claude.com, проверь, в какой организации находишься, и загляни в Billing. Подписка на чат сюда не переносится: справка Anthropic прямо называет подписку и Console отдельными продуктами. Сразу реши, нужен ли автоматический добор кредитов (auto-reload) и какой лимит трат поставить.
  3. Создай ключ. Settings, затем API keys, затем Create key. Дай ключу понятное имя, выбери срок действия и в поле Linked account - себя или сервисную учётную запись. Документация советует личный ключ для своей разработки и ключ сервисной учётной записи для всего общего: сборок, серверов, агентов. Ключ можно ограничить одним рабочим пространством (workspace). Если кнопка Create key неактивна, твоя роль не разрешает создавать ключи - это вопрос к администратору организации.
  4. Сохрани ключ сразу. Console показывает полный ключ один раз. Потерял - посмотреть заново нельзя, только создать новый. Храни его в менеджере паролей или хранилище секретов, не в коде и не в переписке.
  5. Передай ключ программе через переменную окружения. Официальные библиотеки читают ANTHROPIC_API_KEY сами. Помни, что Claude Code видит ту же переменную: выставленная в профиле оболочки, она переключит агента с подписки на оплату по ключу (очередь входов разобрана выше). Поэтому выставляй её только в той вкладке терминала или в том сервисе, где ключ правда нужен.

Для первого запроса Claude Code ставить не нужно: хватит официальной библиотеки, например пакета anthropic для Python, и быстрого старта из документации. Если ключ утёк - в репозиторий, в чат, на скриншот, - удаления строки из файла мало: отзови ключ в Console, создай новый и проверь расход в Usage и Cost.

Что дальше

Коротко: первым делом проверь /status и убери лишнюю переменную, если она нашлась. Потом поставь лимит трат, если ключ всё-таки твой случай. Дальше решай про Claude Code API по трём ситуациям выше, и не по ощущению «через API дешевле»: оно тут обычно ошибается.

Порядок действий на сегодня короткий. Открой сессию и выполни /status. Если активен не тот вход, найди и сними забытую переменную, а потом, если ключ всё-таки нужен, поставь лимит трат в аккаунте платформы.

Что почитать дальше по теме:

Ни один из трёх шагов не требует программиста и не ломает уже настроенное: твои правила проекта, скиллы и разложенные папки агент читает одинаково при любом входе, так что переехать с кассы на кассу можно в любой момент. Разобранные заготовки под такую работу собраны в базе знаний ClaudeBase.

Источники

Спрашивают

Пять вопросов по теме

Существует ли отдельный Claude Code API?

Отдельного адреса или отдельной кнопки с таким названием нет. Под этим запросом объединены три разные вещи: публичный интерфейс платформы, куда программа шлёт запрос с ключом; Claude Code - агент в терминале, который ходит в этот интерфейс как обычный клиент; и библиотека Claude Agent SDK для встраивания агента в свою программу. Практический вопрос за запросом обычно один: чем платит агент.

Почему списались деньги, хотя у меня оплачена подписка?

Скорее всего, в окружении осталась переменная ANTHROPIC_API_KEY. В документированном порядке выбора входа она стоит третьей, а подписка через /login - седьмой, то есть последней. Агент останавливается на первом найденном источнике, и оплата уходит на токены без предупреждения. Проверь командой /status, какой вход активен, и сними переменную, если она не нужна.

Как вернуться с ключа обратно на подписку?

Снять переменную окружения командой unset ANTHROPIC_API_KEY в текущей сессии терминала и убрать строку оттуда, где она прописана насовсем: профиль оболочки, файл .env проекта, переменные среды Windows или блок env в файле настроек. После этого перезапустить агента и убедиться через /status, что активен вход по подписке.

Чем режим claude -p отличается от настоящего API?

Это тот же агент и та же программа, просто без человека за клавиатурой: флаг -p печатает ответ и выходит. Отдельного сетевого адреса у него нет. Важная разница для кошелька: в интерактивном режиме ключ подтверждается вопросом один раз, а в режиме -p он применяется всегда, когда задан, без подтверждения.

Что такое Claude Agent SDK и куда делся Claude Code SDK?

Это одно и то же, просто переименованное. В документации так и сказано: Claude Code SDK переименован в Claude Agent SDK, потому что библиотека годится не только для задач с кодом. Вместе с именем сменились и пакеты: в TypeScript вместо @anthropic-ai/claude-code ставится @anthropic-ai/claude-agent-sdk, в Python вместо claude-code-sdk ставится claude-agent-sdk. Инструкции, где фигурируют старые имена, написаны до переименования.

Источники