Claude в вашем проекте
API-ключ Claude.
От идеи — к первому запросу.
Подключайте Claude через Anthropic SDK или OpenAI-совместимый формат. Создайте ключ в Telegram, пополните баланс в рублях и настройте адрес API по примеру ниже.
Сначала откроется бот. Нажмите «Старт», затем перейдите в раздел API.
Endpoints и авторизация
https://app.claudich.dev/v1/messages https://app.claudich.dev/v1/chat/completions
Авторизация: Authorization: Bearer <ваш_api_ключ>. Для прямых HTTP-запросов также
поддерживается заголовок x-api-key.
Для Anthropic SDK используйте корневой адрес https://app.claudich.dev:
библиотека добавляет /v1/messages сама. Для OpenAI SDK базовый адрес —
https://app.claudich.dev/v1. Поддержка параметров зависит от модели; ограничения перечислены ниже.
Примеры подключения
Перед запуском сохраните ключ в переменной окружения CLAUDICH_API_KEY.
Пример curl рассчитан на Bash/zsh, TypeScript — на Node.js. Не размещайте ключ в браузерном коде.
curl https://app.claudich.dev/v1/messages \
-H "x-api-key: $CLAUDICH_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"model": "claude-sonnet-5",
"max_tokens": 1024,
"messages": [{"role": "user", "content": "Привет!"}]
}' import os
from anthropic import Anthropic
client = Anthropic(
api_key=os.environ["CLAUDICH_API_KEY"],
base_url="https://app.claudich.dev",
)
message = client.messages.create(
model="claude-sonnet-5",
max_tokens=1024,
messages=[{"role": "user", "content": "Привет!"}],
)
for block in message.content:
if block.type == "text":
print(block.text) import Anthropic from "@anthropic-ai/sdk";
const apiKey = process.env.CLAUDICH_API_KEY;
if (!apiKey) throw new Error("Укажите CLAUDICH_API_KEY в окружении");
const client = new Anthropic({
apiKey,
baseURL: "https://app.claudich.dev",
});
const message = await client.messages.create({
model: "claude-sonnet-5",
max_tokens: 1024,
messages: [{ role: "user", content: "Привет!" }],
});
for (const block of message.content) {
if (block.type === "text") console.log(block.text);
} {
"env": {
"ANTHROPIC_BASE_URL": "https://app.claudich.dev",
"ANTHROPIC_API_KEY": "",
"ANTHROPIC_DEFAULT_FABLE_MODEL": "claude-fable-5.1",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "claude-sonnet-5",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "claude-opus-5.5",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "claude-haiku-4.5",
"ANTHROPIC_AUTH_TOKEN": "ВАШ_КЛЮЧ_CLAUDICH",
"CLAUDE_CODE_SUBAGENT_MODEL": "claude-sonnet-5"
},
"model": "claude-sonnet-5"
} {
"gateway": {
"port": 18789,
"mode": "local",
"bind": "loopback"
},
"models": {
"mode": "merge",
"providers": {
"claudich": {
"api": "anthropic-messages",
"baseUrl": "https://app.claudich.dev",
"apiKey": "${CLAUDICH_API_KEY}",
"headers": {
"x-client-provider": "openclaw"
},
"timeoutSeconds": 600,
"models": [
{ "id": "claude-fable-5.1", "name": "Claude Fable 5.1", "input": ["text", "image"] },
{ "id": "claude-sonnet-5", "name": "Claude Sonnet 5", "input": ["text", "image"] },
{ "id": "claude-opus-5.5", "name": "Claude Opus 5.5", "input": ["text", "image"] },
{ "id": "claude-haiku-4.5", "name": "Claude Haiku 4.5", "input": ["text", "image"] }
]
}
}
},
"agents": {
"defaults": {
"model": { "primary": "claudich/claude-sonnet-5" }
}
}
} Что поддерживается
| Streaming (SSE) | есть | |
| Tool calls / function calling | есть | допустимые режимы выбора инструмента зависят от модели |
| system prompt | есть | |
| temperature, top_p | есть | для моделей, которые поддерживают эти параметры; у новых поколений есть ограничения |
| top_k | есть | Anthropic-эндпоинт; только при поддержке выбранной моделью |
| stop_sequences / stop | есть | |
| max_tokens | есть | задавайте под задачу и предел модели; слишком низкое значение обрывает вывод |
| Prompt caching (cache_control) | есть | Anthropic-эндпоинт; проверяйте попадания в кеш по usage и тариф поставщика |
| Thinking / рассуждения | есть | Anthropic-эндпоинт; формат и допустимые настройки зависят от модели |
| Изображения / PDF document | есть | инлайн-вложения; проверяйте ограничения провайдера, Files API не предоставляется |
| usage (токены, cache read/write) | есть |
Границы совместимости
У шлюза нет следующих сервисов платформ Anthropic и OpenAI:
- не-Anthropic модели
- Batch API
- embeddings
- assistants API
- responses API
- vector stores
- платформенный Files API (/v1/files)
Некоторые OpenAI-специфичные параметры не влияют на поведение Claude-моделей и игнорируются:
logprobs, top_logprobs, seed, n,
frequency_penalty, presence_penalty, logit_bias, response_format.
Ошибки
При ошибке Anthropic-эндпоинт возвращает {"type":"error","error":{"type":"...","message":"..."}},
OpenAI-эндпоинт — {"error":{"message":"...","type":"...","code":"...","param":null}}. HTTP-статус
в обоих случаях соответствует смыслу ошибки — это то, что проверяют официальные SDK.
| Код | Значение | Типичная причина |
|---|---|---|
400 | invalid_request_error | Некорректное тело запроса — отсутствуют обязательные поля, неверный формат сообщений. |
401 | authentication_error | Неверный или отсутствующий API-ключ. |
402 | billing_error / insufficient_funds | Недостаточно баланса или превышен лимит расходов по ключу. |
403 | permission_error | Аккаунт заблокирован. |
409 | conflict_error | Повторный запрос с тем же Idempotency-Key ещё выполняется или использован с другим телом. |
429 | rate_limit_error / rate_limited | Превышен лимит запросов — по IP, по ключу, или лимит апстрим-провайдера. |
500 | api_error | Внутренняя ошибка гейтвея. |
503 | overloaded_error / api_error | Апстрим-провайдер временно недоступен или перегружен — стоит повторить запрос позже. |
Начните с одного запроса
Проверьте подключение на небольшом примере. Затем задайте лимит ключа и подключайте свой проект.