Гайды

API Anthropic: подключение и особенности

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

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

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

#Пять различий, из-за которых ломается первый вызов

Таблица составлена по документации вендора и проверялась 26 августа 2026 года. Смотрите на правую колонку: там перечислено ровно то, что нужно поменять в клиенте.

Что Как в OpenAI-стиле Как у Anthropic
Путь /v1/chat/completions /v1/messages
Авторизация Authorization: Bearer ... x-api-key: ...
Версия API не требуется заголовок anthropic-version обязателен
Системная инструкция сообщение с ролью system отдельное поле system в теле запроса
Лимит вывода необязателен max_tokens обязателен

Есть и шестое, менее очевидное: ответ приходит другой формы. Клиент, читающий текст из choices[0].message.content, у Anthropic получит пустоту, потому что текст лежит в списке блоков контента. Причина ошибки не видна в логе как ошибка — приложение просто показывает пустой ответ.

Почему так сложилось и где вообще заканчивается совместимость между API разных вендоров, разобрано в отдельном материале про OpenAI-совместимый API.

#Что понадобится

  • Аккаунт в консоли вендора и подтверждённая почта.
  • Зарубежная карта для пополнения баланса: бесплатного уровня у API, по проверке на 26 августа 2026 года, нет.
  • Доступ к домену вендора. Из России, по той же проверке, он требовал средств доступа; это условие меняется, проверяйте на день чтения. Легальные обходные пути — российские шлюзы, они разобраны в статье про то, как платить за API из России.

#Шаг 1. Получить ключ

  1. Откройте console.anthropic.com и зарегистрируйтесь.
  2. Пополните баланс организации — без положительного баланса запросы будут отклоняться.
  3. Перейдите в раздел API Keys.
  4. Создайте ключ и дайте ему имя приложения, а не «test».
  5. Скопируйте строку вида sk-ant-.... Показывается один раз.

#Шаг 2. Сделать первый запрос вручную

Проверять подключение стоит вне приложения — так вы отделяете проблему ключа от проблемы клиента. Команда целиком, подставьте свой ключ и актуальное имя модели из документации вендора:

curl https://api.anthropic.com/v1/messages \
  -H "x-api-key: sk-ant-ВАШ_КЛЮЧ" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{
    "model": "ИМЯ_МОДЕЛИ_ИЗ_ДОКУМЕНТАЦИИ",
    "max_tokens": 64,
    "system": "Отвечай одним предложением по-русски.",
    "messages": [
      {"role": "user", "content": "Скажи «связь есть»."}
    ]
  }'

В Windows PowerShell тот же запрос удобнее собрать через Invoke-RestMethod, потому что одинарные кавычки там работают иначе:

$headers = @{
  "x-api-key" = "sk-ant-ВАШ_КЛЮЧ"
  "anthropic-version" = "2023-06-01"
  "content-type" = "application/json"
}
$body = '{"model":"ИМЯ_МОДЕЛИ","max_tokens":64,"messages":[{"role":"user","content":"ping"}]}'
Invoke-RestMethod -Uri https://api.anthropic.com/v1/messages -Method Post -Headers $headers -Body $body

Имя модели намеренно оставлено плейсхолдером: названия версий меняются несколько раз в год, и статья с зашитым именем перестаёт работать раньше, чем устаревает всё остальное в ней. Актуальный список — на странице моделей в документации вендора.

#Шаг 3. Подключить в Persona

На странице /settings/llm выберите пункт Anthropic (Claude), вставьте ключ sk-ant-... и сохраните. Различия формата, описанные выше, приложение берёт на себя — вписывать адрес и заголовки не требуется.

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

#Проверка результата

  1. Команда выше вернула JSON с текстовым блоком — значит ключ, баланс и доступ к домену в порядке.
  2. Чат в приложении ответил — значит клиент собрал запрос правильно.
  3. В консоли вендора в разделе использования появилась запись за сегодня — значит расходуется именно ваш ключ.

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

#Что может пойти не так

  • Отказ авторизации при верном ключе. Почти всегда — заголовок Authorization вместо x-api-key, либо забытый anthropic-version.
  • Ошибка о недостающем поле. max_tokens обязателен. Клиенты, писавшиеся под другой API, его не отправляют.
  • Ответ приходит пустым. Клиент читает текст не оттуда: у Anthropic содержимое лежит списком блоков, а не одной строкой.
  • Ошибка о порядке сообщений. Диалог должен начинаться с сообщения пользователя и чередовать роли. Два сообщения пользователя подряд отклоняются.
  • Ошибка с изображением. Картинки передаются блоком с указанием типа данных, а не ссылкой в поле, привычном по другому API. Если задача — разбирать изображения регулярно и без облака, сравните этот путь с локальным: обзор в материале про vision-модели локально.
  • Домен не открывается. Региональная доступность. Второй ключ у другого провайдера решает это лучше, чем любые настройки.

#Частые вопросы

#Есть ли у Anthropic бесплатный уровень для API?

На момент проверки 26 августа 2026 года — нет: для работы нужен пополненный баланс. Бесплатный доступ к чат-интерфейсу вендора и доступ к API — это разные продукты, и первый не даёт ключа для второго. Условия могут измениться, проверяйте страницу тарифов.

#Можно ли использовать клиент, написанный под OpenAI, без переделки?

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

#Почему запрос требует заголовок с версией?

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

#Как платить, если российская карта не проходит?

Прямая оплата российской картой на платёжной форме вендора, по проверке на 26 августа 2026 года, недоступна. Практичный путь — российский шлюз-агрегатор, который принимает рубли и внутри обращается к тому же вендору. Цена этого удобства — дополнительное звено, которое видит ваши запросы.

#Какие задачи имеет смысл отдавать именно этой модели?

Традиционно сильные стороны — длинные документы, аккуратное следование развёрнутой инструкции и работа с кодом. Для короткого бытового чата разница с более дешёвыми провайдерами обычно не окупается. Разбор по сценариям — в материале про то, какой провайдер под какую задачу, а общий обзор — в статье о том, где взять ключ к языковой модели.

Хотите ИИ, который помнит вас?

Persona держит контекст между чатами и работает на вашем железе — если развернуть её у себя и подключить локальную модель.

Создать аккаунт