Claude Code и Anthropic SDK
Используйте этот гайд для клиентов, которые говорят на Anthropic Messages API: Claude Code, Anthropic Python SDK и Anthropic TypeScript SDK.
Anthropic-native клиенты отличаются от OpenAI-compatible клиентов:
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_tokensClaude Code и Anthropic SDK сами добавляют /v1/messages, поэтому в их настройках base URL должен быть https://api.rout.my, а не https://api.rout.my/v1.
1. Получите rout.my key
Задайте key в том terminal, где будете запускать Claude Code. Выберите вариант:
# macOS/Linux/WSL/Git Bash
export ROUTMY_API_KEY="sk_your_key_here"# Windows PowerShell
$env:ROUTMY_API_KEY="sk_your_key_here":: Windows cmd.exe
set ROUTMY_API_KEY=sk_your_key_hereПотом проверьте список моделей.
macOS/Linux/WSL/Git Bash:
curl https://api.rout.my/v1/models \
-H "Authorization: Bearer $ROUTMY_API_KEY"Windows PowerShell:
curl.exe https://api.rout.my/v1/models -H "Authorization: Bearer $env:ROUTMY_API_KEY"Windows cmd.exe:
curl.exe https://api.rout.my/v1/models -H "Authorization: Bearer %ROUTMY_API_KEY%"Готовая Claude Code model в этом гайде:
anthropic/claude-sonnet-4.6Вручную выбирать model не нужно. Используйте default, если специально не хотите заменить ее:
| Сценарий | Model |
|---|---|
| Default Claude Code setup | anthropic/claude-sonnet-4.6 |
| Сильнее, но дороже | anthropic/claude-opus-4.6 |
Если меняете model, копируйте точный ID из /v1/models.
Задайте model ID в том же terminal:
# macOS/Linux/WSL/Git Bash
export ROUTMY_MODEL="anthropic/claude-sonnet-4.6"# Windows PowerShell
$env:ROUTMY_MODEL="anthropic/claude-sonnet-4.6":: Windows cmd.exe
set ROUTMY_MODEL=anthropic/claude-sonnet-4.62. Проверьте Anthropic route
Перед запуском Claude Code проверьте raw Messages endpoint:
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 используйте эквивалентную проверку:
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:
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:
$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_MODELWindows cmd.exe:
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:
claude --model "$ANTHROPIC_MODEL"Внутри Claude Code выполните:
/statusПроверьте, что API base URL отображается как https://api.rout.my.
4. Optional model discovery
Claude Code может запросить список моделей у gateway:
export CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1
claudeClaude 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.
Откройте файл:
# macOS/Linux/WSL
mkdir -p ~/.claude
nano ~/.claude/settings.json# Windows PowerShell
New-Item -ItemType Directory -Force "$HOME\.claude" | Out-Null
notepad "$HOME\.claude\settings.json":: Windows cmd.exe
mkdir "%USERPROFILE%\.claude"
notepad "%USERPROFILE%\.claude\settings.json"Вставьте этот JSON и замените только sk_your_key_here. Model уже заполнена default rout.my:
{
"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:
{
"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:
pip install anthropicПример:
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:
npm install @anthropic-ai/sdkПример:
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:
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:
{ "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, но не в PowerShell | Variables задаются отдельно для 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. |