В терминале уже мигает курсор, а в задаче написано: «подключить Claude». Для первого рабочего запроса нужны четыре вещи: аккаунт в Claude Console, API key, переменная окружения и вызов POST /v1/messages. Дальше начинается обычная инженерная работа: выбрать доступную модель, не засветить секрет и не устроить себе шторм из 429.
Что даёт Anthropic API
Anthropic API нужен, когда Claude должен отвечать внутри вашего продукта, бэкенда, скрипта, бота или внутреннего сервиса. Вы отправляете данные на API, получаете структурированный ответ и сами решаете, где его показать, сохранить или передать дальше. Личный чат и подписка Claude.ai относятся к другому сценарию, их здесь не смешиваем.
Если сначала хотите понять сам интерфейс Claude и ограничения использования из России, посмотрите отдельный материал: как пользоваться Claude из России. Для API важнее другое: серверная интеграция, ключи и контроль запросов.

Ключ в Console и переменная окружения
Откройте Claude Console, перейдите в Settings → API keys и создайте ключ для нужного workspace. Ключ живёт как секрет: не вставляйте его в исходники, README, скриншоты, frontend-код и сообщения в чатах. Локально передайте его через окружение:
export ANTHROPIC_API_KEY='ваш_секретный_ключ'Для dev, stage и prod заведите отдельные ключи или workspace. Тогда утечка ключа разработчика не открывает production, а в логах и биллинге проще найти источник запроса. В CI, облаке и Kubernetes храните секрет в secrets manager. Если инфраструктура поддерживает workload identity, изучите короткоживущие токены вместо постоянного ключа.
Браузер, мобильное приложение и публичный JavaScript не должны знать API key. Вызов к Anthropic API делает ваш backend или serverless-функция, а клиент обращается уже к ней.
Первый запрос через Python и JavaScript
Официальные SDK читают ANTHROPIC_API_KEY из окружения и сами добавляют служебные заголовки. В Python создайте виртуальное окружение и установите пакет anthropic. В Node.js установите @anthropic-ai/sdk. Идентификатор модели не копируйте из старой статьи: перед запуском проверьте актуальную документацию и список моделей, доступных вашему аккаунту через GET /v1/models.
import anthropic
client = anthropic.Anthropic()
message = client.messages.create(
model="MODEL_ID_FROM_GET_V1_MODELS",
max_tokens=300,
system="Отвечай кратко и на русском.",
messages=[
{"role": "user", "content": "Объясни REST API в двух предложениях."}
],
)
text = "".join(
block.text for block in message.content if block.type == "text"
)
print(text)import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic();
const message = await client.messages.create({
model: "MODEL_ID_FROM_GET_V1_MODELS",
max_tokens: 300,
system: "Отвечай кратко и на русском.",
messages: [
{ role: "user", content: "Объясни REST API в двух предложениях." }
]
});
const text = message.content
.filter((block) => block.type === "text")
.map((block) => block.text)
.join("");
console.log(text);В Python вызов синхронный. В JavaScript нужен await. У обоих примеров одна логика: system передаётся отдельным полем, messages содержит реплики пользователя, а max_tokens ограничивает верхнюю границу ответа. Он не обещает, что модель обязательно вернёт ровно столько токенов.
Как выглядит raw HTTP запрос
SDK удобен, но полезно видеть проводку. Прямой запрос идёт на https://api.anthropic.com/v1/messages. Для raw HTTP обязательны x-api-key, anthropic-version и content-type: application/json.
curl https://api.anthropic.com/v1/messages \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"model": "MODEL_ID_FROM_GET_V1_MODELS",
"max_tokens": 300,
"messages": [
{"role": "user", "content": "Составь короткий план релиза."}
]
}'POST /v1/messages создаёт сообщение. Для проверки доступных моделей используйте Models API: GET /v1/models. А если нужно заранее оценить размер prompt и бюджет, пригодится Token Counting API: POST /v1/messages/count_tokens. Не ставьте temperature, top_p или top_k по привычке: совместимость параметров зависит от выбранной модели.
| Что проверить | Зачем это нужно | Действие |
|---|---|---|
| Модель | Доступ и параметры меняются | Запросить `GET /v1/models` и свериться с документацией |
| max_tokens | Ограничивает длину генерации | Задать предел под конкретный UX |
| system и messages | Разделяют инструкции и диалог | Держать системные правила отдельно |
| Токены | Влияют на лимиты и расходы | Считать вход до дорогих вызовов |
| stream | Даёт ответ частями через SSE | Обработать обрыв потока и ошибки mid-stream |
429, request-id и production режим
В тестовом скрипте один запрос проходит почти всегда. В production картина другая: очередь сдвинулась, несколько воркеров проснулись одновременно, API вернул 429. Лимиты учитывают не только число запросов, но и входные и выходные токены. Даже при среднем RPM короткий burst может упереться в ограничение.
- На 429 читайте
retry-after, ставьте запрос в очередь и повторяйте с exponential backoff и случайным jitter. - На 500, 504 и 529 делайте ограниченное число повторов. Бесконечный retry превращает временную ошибку в собственную DDoS-атаку.
- На 400 исправляйте JSON, model ID или параметры. На 401 проверяйте ключ и заголовки. На 402, 403 и 413 не ретрайте вслепую.
- Сохраняйте
request-id, HTTP-статус, задержку и счётчики токенов. Не логируйте API key и полный чувствительный prompt. - Ограничьте параллелизм, добавьте budget alerts и постепенно наращивайте нагрузку.
Простейшая политика backoff выглядит так: первая пауза небольшая, затем интервалы растут, к ним добавляется случайная доля секунды, а после заданного числа попыток задача получает понятную ошибку. Если SDK сам делает временные ретраи, продуктовая политика всё равно нужна: она решает, когда остановиться, что показать пользователю и как не задублировать работу.

Практика AI-разработки без магии
В Telegram разбираю API-интеграции, AI-агентов и рабочие схемы, которые можно проверить в своём проекте.
ПодписатьсяКогда Anthropic API не нужен
Для разового диалога и проверки идеи чаще быстрее открыть обычный интерфейс Claude. Для работы с кодовой базой есть отдельный сценарий: как использовать Claude Code. А MCP отвечает за подключение инструментов к модели, а не за первый HTTP-вызов, поэтому его лучше изучать отдельно: как подключить инструменты через MCP.
Если вы строите агентный процесс вокруг репозитория, полезно заранее описать правила проекта и ожидаемый формат работы. Для этого есть отдельный разбор: как написать CLAUDE.md для проекта. API при этом остаётся транспортом между вашим приложением и моделью.
FAQ
POST https://api.anthropic.com/v1/messages. Для raw HTTP нужны x-api-key, anthropic-version и content-type: application/json.retry-after, используйте очередь и backoff с jitter.GET /v1/models, затем сравните актуальные параметры, цену и качество на своей задаче.Следующий шаг
Подключите один безопасный запрос, добавьте request-id и обработку 429, а уже потом собирайте вокруг него продуктовую логику. Так в логах будет меньше дыма.
Перейти в Telegram


