← Главная

Claude API через cURL

Используйте cURL для первой проверки ключа, минимального воспроизведения ошибки и сравнения Anthropic- и OpenAI-совместимых форматов.

Проверено: 1 августа 2026 года.

Короткий ответ

Для Messages API отправьте POST на https://api.llm-gate.tech/v1/messages с заголовками x-api-key, anthropic-version и JSON body. Для OpenAI-compatible режима используйте https://api.llm-gate.tech/v1/chat/completions и Bearer.

Подготовка ключа

bash
export CLAUDE_API_KEY="sk-cs2-YOUR_API_KEY"

Переменная сокращает риск случайного попадания ключа в скриншот или историю команды. Не запускайте echo $CLAUDE_API_KEY в общем терминале или CI-логе.

Anthropic Messages API

cURL
curl --fail-with-body https://api.llm-gate.tech/v1/messages \
  -H "x-api-key: $CLAUDE_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-sonnet-4-6",
    "max_tokens": 128,
    "messages": [{"role": "user", "content": "Привет!"}]
  }'
ЭлементЗачем нужен
--fail-with-bodyВозвращает ненулевой exit code для HTTP 4xx/5xx, сохраняя JSON ошибки.
x-api-keyПередаёт ключ в Anthropic-совместимом формате.
anthropic-versionФиксирует версию протокола запроса.
content-typeСообщает, что body передан в JSON.

OpenAI-compatible запрос

cURL
curl --fail-with-body https://api.llm-gate.tech/v1/chat/completions \
  -H "Authorization: Bearer $CLAUDE_API_KEY" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-sonnet-4-6",
    "max_tokens": 128,
    "messages": [{"role": "user", "content": "Привет!"}]
  }'

Не смешивайте примеры

В первом запросе используется x-api-key, во втором — Bearer. Это два разных совместимых протокола поверх одного баланса и ключа.

Streaming через cURL

Флаг -N отключает буферизацию вывода cURL, поэтому SSE-события становятся видны по мере поступления.

cURL streaming
curl -N --fail-with-body https://api.llm-gate.tech/v1/messages \
  -H "x-api-key: $CLAUDE_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-sonnet-4-6",
    "max_tokens": 256,
    "stream": true,
    "messages": [{"role": "user", "content": "Напиши короткий пример."}]
  }'

Полученный поток содержит SSE-события, а не один JSON. Подробный порядок разбора описан на странице Streaming API.

Как увидеть HTTP-заголовки

bash
curl -i --fail-with-body ...
# или только заголовки ответа при диагностике доступного GET-ресурса:
curl -I https://claude-api.tech/ru/docs/introduction
  • Сохраните HTTP status и request-id, но удалите ключ перед отправкой лога.
  • При 429 проверьте retry-after, если заголовок присутствует.
  • При DNS/TLS ошибке HTTP-статуса не будет: сначала проверяйте сеть и имя домена.
  • Для воспроизведения начните с одного короткого сообщения и минимального JSON.

Следующий шаг

После успешного cURL перенесите те же endpoint, заголовок, model и body в Python или TypeScript. Если минимальный запрос не работает, сначала исправьте его, а затем возвращайтесь к SDK.