Клодыч В Telegram ↗

Claude в вашем проекте

API-ключ Claude.
От идеи — к первому запросу.

Подключайте Claude через Anthropic SDK или OpenAI-совместимый формат. Создайте ключ в Telegram, пополните баланс в рублях и настройте адрес API по примеру ниже.

Сначала откроется бот. Нажмите «Старт», затем перейдите в раздел API.

Endpoints и авторизация

Anthropic-совместимый https://app.claudich.dev/v1/messages
OpenAI-совместимый 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 · пример подключения
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": "Привет!"}]
  }'
Python · пример подключения
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)
TypeScript · пример подключения
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);
}
Claude Code · пример подключения
{
  "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"
}
OpenClaw · пример подключения
{
  "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 Апстрим-провайдер временно недоступен или перегружен — стоит повторить запрос позже.

Начните с одного запроса

Проверьте подключение на небольшом примере. Затем задайте лимит ключа и подключайте свой проект.

Открыть API в боте →
Получить API-ключ →