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.