Skip to content

Claude Code и Anthropic SDK

Используйте этот гайд для клиентов, которые говорят на Anthropic Messages API: Claude Code, Anthropic Python SDK и Anthropic TypeScript SDK.

Anthropic-native клиенты отличаются от OpenAI-compatible клиентов:

text
OpenAI SDK / Codex base URL:       https://api.rout.my/v1
Claude Code / Anthropic SDK URL:   https://api.rout.my
Anthropic request endpoint:        https://api.rout.my/v1/messages
Anthropic token count endpoint:    https://api.rout.my/v1/messages/count_tokens

Claude Code и Anthropic SDK сами добавляют /v1/messages, поэтому в их настройках base URL должен быть https://api.rout.my, а не https://api.rout.my/v1.

1. Получите rout.my key

Задайте key в том terminal, где будете запускать Claude Code. Выберите вариант:

bash
# macOS/Linux/WSL/Git Bash
export ROUTMY_API_KEY="sk_your_key_here"
powershell
# Windows PowerShell
$env:ROUTMY_API_KEY="sk_your_key_here"
bat
:: Windows cmd.exe
set ROUTMY_API_KEY=sk_your_key_here

Потом проверьте список моделей.

macOS/Linux/WSL/Git Bash:

bash
curl https://api.rout.my/v1/models \
  -H "Authorization: Bearer $ROUTMY_API_KEY"

Windows PowerShell:

powershell
curl.exe https://api.rout.my/v1/models -H "Authorization: Bearer $env:ROUTMY_API_KEY"

Windows cmd.exe:

bat
curl.exe https://api.rout.my/v1/models -H "Authorization: Bearer %ROUTMY_API_KEY%"

Готовая Claude Code model в этом гайде:

text
anthropic/claude-sonnet-4.6

Вручную выбирать model не нужно. Используйте default, если специально не хотите заменить ее:

СценарийModel
Default Claude Code setupanthropic/claude-sonnet-4.6
Сильнее, но дорожеanthropic/claude-opus-4.6

Если меняете model, копируйте точный ID из /v1/models.

Задайте model ID в том же terminal:

bash
# macOS/Linux/WSL/Git Bash
export ROUTMY_MODEL="anthropic/claude-sonnet-4.6"
powershell
# Windows PowerShell
$env:ROUTMY_MODEL="anthropic/claude-sonnet-4.6"
bat
:: Windows cmd.exe
set ROUTMY_MODEL=anthropic/claude-sonnet-4.6

2. Проверьте Anthropic route

Перед запуском Claude Code проверьте raw Messages endpoint:

bash
curl https://api.rout.my/v1/messages \
  -H "Authorization: Bearer $ROUTMY_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "anthropic/claude-sonnet-4.6",
    "max_tokens": 128,
    "messages": [
      { "role": "user", "content": "Reply with OK." }
    ]
  }'

Если curl падает, сначала исправьте key, model ID или доступ к модели. Claude Code будет падать так же, пока этот curl не пройдет.

rout.my принимает и Bearer auth, и Anthropic-style x-api-key auth на Anthropic route. Claude Code отправляет либо Authorization, либо x-api-key, в зависимости от выбранной gateway credential переменной.

В Windows PowerShell используйте эквивалентную проверку:

powershell
curl.exe https://api.rout.my/v1/messages `
  -H "Authorization: Bearer $env:ROUTMY_API_KEY" `
  -H "anthropic-version: 2023-06-01" `
  -H "Content-Type: application/json" `
  -d "{\"model\":\"$env:ROUTMY_MODEL\",\"max_tokens\":128,\"messages\":[{\"role\":\"user\",\"content\":\"Reply with OK.\"}]}"

3. Настройте Claude Code

Рекомендуемая shell-настройка.

macOS/Linux/WSL/Git Bash:

bash
export ANTHROPIC_BASE_URL="https://api.rout.my"
export ANTHROPIC_AUTH_TOKEN="$ROUTMY_API_KEY"
export ANTHROPIC_MODEL="$ROUTMY_MODEL"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="$ROUTMY_MODEL"

Windows PowerShell:

powershell
$env:ANTHROPIC_BASE_URL="https://api.rout.my"
$env:ANTHROPIC_AUTH_TOKEN=$env:ROUTMY_API_KEY
$env:ANTHROPIC_MODEL=$env:ROUTMY_MODEL
$env:ANTHROPIC_DEFAULT_HAIKU_MODEL=$env:ROUTMY_MODEL

Windows cmd.exe:

bat
set ANTHROPIC_BASE_URL=https://api.rout.my
set ANTHROPIC_AUTH_TOKEN=%ROUTMY_API_KEY%
set ANTHROPIC_MODEL=%ROUTMY_MODEL%
set ANTHROPIC_DEFAULT_HAIKU_MODEL=%ROUTMY_MODEL%

Почему ANTHROPIC_AUTH_TOKEN? Claude Code поддерживает gateway auth через bearer token, а rout.my принимает bearer auth. Так вы не перезаписываете настоящий ANTHROPIC_API_KEY, который может использоваться для прямого Anthropic доступа.

Запустите Claude Code из той же shell:

bash
claude --model "$ANTHROPIC_MODEL"

Внутри Claude Code выполните:

text
/status

Проверьте, что API base URL отображается как https://api.rout.my.

4. Optional model discovery

Claude Code может запросить список моделей у gateway:

bash
export CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1
claude

Claude Code gateway model discovery вызывает GET /v1/models?limit=1000 на configured base URL и требует Claude Code v2.1.129 или новее. Он показывает только model IDs, которые начинаются с claude или anthropic. Если ваш rout.my model ID использует другой prefix, задайте ANTHROPIC_MODEL явно, как показано выше.

5. Сохраните Claude Code settings

Если пользователь не понимает environment variables, обычно проще положить значения в user-level Claude Code settings file.

Откройте файл:

bash
# macOS/Linux/WSL
mkdir -p ~/.claude
nano ~/.claude/settings.json
powershell
# Windows PowerShell
New-Item -ItemType Directory -Force "$HOME\.claude" | Out-Null
notepad "$HOME\.claude\settings.json"
bat
:: Windows cmd.exe
mkdir "%USERPROFILE%\.claude"
notepad "%USERPROFILE%\.claude\settings.json"

Вставьте этот JSON и замените только sk_your_key_here. Model уже заполнена default rout.my:

json
{
  "env": {
    "ANTHROPIC_BASE_URL": "https://api.rout.my",
    "ANTHROPIC_AUTH_TOKEN": "sk_your_key_here",
    "ANTHROPIC_MODEL": "anthropic/claude-sonnet-4.6",
    "ANTHROPIC_DEFAULT_HAIKU_MODEL": "anthropic/claude-sonnet-4.6",
    "CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY": "1"
  }
}

Не коммитьте реальные API keys в project repository. Для secrets используйте user-level settings или shell environment.

6. VS Code extension

Если запускаете Claude Code через VS Code extension, передайте те же переменные через extension setting:

json
{
  "claudeCode.environmentVariables": [
    {
      "name": "ANTHROPIC_BASE_URL",
      "value": "https://api.rout.my"
    },
    {
      "name": "ANTHROPIC_AUTH_TOKEN",
      "value": "sk_your_key_here"
    },
    {
      "name": "ANTHROPIC_MODEL",
      "value": "anthropic/claude-sonnet-4.6"
    },
    {
      "name": "ANTHROPIC_DEFAULT_HAIKU_MODEL",
      "value": "anthropic/claude-sonnet-4.6"
    }
  ]
}

Python SDK

Установите официальный Anthropic SDK:

bash
pip install anthropic

Пример:

python
import os
from anthropic import Anthropic

client = Anthropic(
    base_url="https://api.rout.my",
    api_key=os.environ["ROUTMY_API_KEY"],
)

message = client.messages.create(
    model=os.environ["ROUTMY_MODEL"],
    max_tokens=256,
    messages=[
        {"role": "user", "content": "Write one short sentence."}
    ],
)

print(message.content[0].text)

TypeScript SDK

Установите официальный Anthropic SDK:

bash
npm install @anthropic-ai/sdk

Пример:

ts
import Anthropic from '@anthropic-ai/sdk';

const client = new Anthropic({
  baseURL: 'https://api.rout.my',
  apiKey: process.env.ROUTMY_API_KEY
});

const message = await client.messages.create({
  model: process.env.ROUTMY_MODEL ?? 'anthropic/claude-sonnet-4.6',
  max_tokens: 256,
  messages: [{ role: 'user', content: 'Write one short sentence.' }]
});

console.log(message.content[0].type === 'text' ? message.content[0].text : message.content);

В TypeScript SDK option называется baseURL. В Python SDK option называется base_url.

Token counting

Anthropic-native клиенты могут вызывать token counting route:

bash
curl https://api.rout.my/v1/messages/count_tokens \
  -H "Authorization: Bearer $ROUTMY_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "anthropic/claude-sonnet-4.6",
    "messages": [
      { "role": "user", "content": "Count this request." }
    ]
  }'

Ожидаемый response shape:

json
{ "input_tokens": 12 }

Точное число зависит от выбранной модели и estimator.

Частые ошибки

СимптомЧто проверить
Запрос идет в /v1/v1/messagesВ client base URL попал /v1. Используйте ANTHROPIC_BASE_URL=https://api.rout.my.
PowerShell curl печатает странный HTML или не отправляет headersИспользуйте curl.exe, а не PowerShell alias.
$ROUTMY_API_KEY работает в Git Bash, но не в PowerShellVariables задаются отдельно для shell. В PowerShell это $env:ROUTMY_API_KEY, в cmd.exe - %ROUTMY_API_KEY%.
401Для Claude Code используйте ANTHROPIC_AUTH_TOKEN=$ROUTMY_API_KEY, для SDK - api_key=ROUTMY_API_KEY. Не отправляйте случайно настоящий Anthropic key в rout.my.
model_not_foundВыполните GET /v1/models тем же rout.my key и скопируйте точный model ID.
Claude Code игнорирует URLЗапускайте claude из той же shell или положите переменные в ~/.claude/settings.json. Проверьте через /status.
Claude Code использует другую модельЗадайте ANTHROPIC_MODEL для основной сессии и ANTHROPIC_DEFAULT_HAIKU_MODEL для Haiku/background usage. Проверьте через /status.
Model discovery ничего не показываетClaude Code показывает gateway models только с IDs, которые начинаются с claude или anthropic. Задайте ANTHROPIC_MODEL явно.
SDK все еще ходит напрямую в AnthropicВ Python используйте base_url; в TypeScript используйте baseURL. Значение должно быть https://api.rout.my.
anthropic-version error в curlДля manual Anthropic-shaped запросов добавляйте anthropic-version: 2023-06-01. SDKs добавляют нужные headers для обычных client calls.

Источники

API documentation for rout.my.