Claude API из России, без VPN

Ключ к моделям Claude с оплатой картой РФ в рублях. Формат Anthropic Messages API: официальные SDK, Claude Code и расширения для IDE работают без переделки, меняются только адрес и ключ.

Запрос к Claude API через aprium на Python
main.py
import anthropic

client = anthropic.Anthropic(
    base_url="https://api.aprium.ru",
    api_key="ваш_ключ",
)
reply = client.messages.create(
    model="claude-sonnet-5-5",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Привет! Чем ты можешь помочь?"}],
)
print(reply.content[-1].text)
Адрес API
https://api.aprium.ru
Формат
Anthropic Messagesподходят официальные SDK
Модели
4 модели Claudeодин ключ на все
Оплата
Картой РФ в рубляхбез подписки, за токены

Модели Claude в API

Модель выбирается полем model в запросе. Основная — Claude Sonnet 5.5; на странице каждой модели — задачи, расход и советы.

Подключение Claude API

Примеры на Claude Sonnet 5.5: для другой модели замените имя в поле model. Выберите задачу слева и язык над кодом.

Создать ключ
Адрес API
https://api.aprium.ru
Модель
claude-sonnet-5-5
Заголовки
x-api-keyиanthropic-version: 2023-06-01

Подключение ключа

# pip install anthropic
import os
import anthropic

client = anthropic.Anthropic(
    api_key=os.environ["APRIUM_API_KEY"],  # ключ: ai.aprium.ru/#keys
    base_url="https://api.aprium.ru",
)

Перед запуском: export APRIUM_API_KEY="ваш_ключ". Ключ: ai.aprium.ru/#keys → «Создать ключ».

// npm install @anthropic-ai/sdk
import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic({
  apiKey: process.env.APRIUM_API_KEY, // ключ: ai.aprium.ru/#keys
  baseURL: "https://api.aprium.ru",
});

Перед запуском: export APRIUM_API_KEY="ваш_ключ".

export APRIUM_API_KEY="ваш_ключ"

# В каждом запросе: адрес api.aprium.ru и два заголовка
curl https://api.aprium.ru/v1/messages \
  -H "x-api-key: $APRIUM_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{"model": "claude-sonnet-5-5", "max_tokens": 64,
       "messages": [{"role": "user", "content": "Проверка связи"}]}'

Если ключ верный, придёт ответ модели. Ошибка 401 значит, что ключ не указан или указан неверно.

Запрос с задачей

message = client.messages.create(
    model="claude-sonnet-5-5",
    max_tokens=2048,
    messages=[
        {"role": "user", "content": "Составь план статьи про налоговый вычет за обучение"},
    ],
)
print(message.content.at(-1).text)
const message = await client.messages.create({
  model: "claude-sonnet-5-5",
  max_tokens: 2048,
  messages: [
    { role: "user", content: "Составь план статьи про налоговый вычет за обучение" },
  ],
});
console.log(message.content.at(-1).text);
curl https://api.aprium.ru/v1/messages \
  -H "x-api-key: $APRIUM_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-sonnet-5-5",
    "max_tokens": 2048,
    "messages": [
      {"role": "user", "content": "Составь план статьи про налоговый вычет за обучение"}
    ]
  }'

Получение результата

print(message.content.at(-1).text)    # текст ответа
print(message.stop_reason)        # end_turn — готово, max_tokens — упёрся в лимит
print(message.usage)              # input_tokens и output_tokens: по ним считается цена

# Ответ по частям, как в чате
with client.messages.stream(
    model="claude-sonnet-5-5",
    max_tokens=2048,
    messages=[{"role": "user", "content": "Расскажи про осень"}],
) as stream:
    for text in stream.text_stream:
        print(text, end="", flush=True)
console.log(message.content.at(-1).text); // текст ответа
console.log(message.stop_reason);     // end_turn — готово, max_tokens — упёрся в лимит
console.log(message.usage);           // input_tokens и output_tokens: по ним считается цена

// Ответ по частям, как в чате
const stream = client.messages.stream({
  model: "claude-sonnet-5-5",
  max_tokens: 2048,
  messages: [{ role: "user", content: "Расскажи про осень" }],
});
stream.on("text", (text) => process.stdout.write(text));
await stream.finalMessage();
# Только текст ответа (нужен jq)
curl -s https://api.aprium.ru/v1/messages \
  -H "x-api-key: $APRIUM_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{"model": "claude-sonnet-5-5", "max_tokens": 1024,
       "messages": [{"role": "user", "content": "Привет!"}]}' \
  | jq -r '.content[-1].text'

# По частям: "stream": true и -N, чтобы curl не копил вывод
curl -N https://api.aprium.ru/v1/messages \
  -H "x-api-key: $APRIUM_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{"model": "claude-sonnet-5-5", "max_tokens": 1024, "stream": true,
       "messages": [{"role": "user", "content": "Расскажи про осень"}]}'
{
  "id": "msg_01...",
  "type": "message",
  "role": "assistant",
  "model": "claude-sonnet-5-5",
  "content": [
    { "type": "text", "text": "План статьи: 1. Кто может получить вычет..." }
  ],
  "stop_reason": "end_turn",
  "usage": { "input_tokens": 24, "output_tokens": 412 }
}

Формат совпадает с Anthropic Messages API.

Параметры генерации

message = client.messages.create(
    model="claude-sonnet-5-5",
    max_tokens=4096,                 # предел длины ответа
    system="Отвечай по делу, без вступлений.",
    output_config={"effort": "medium"},  # low, medium, high, xhigh, max
    stop_sequences=["---"],          # остановиться на этой строке
    messages=[{"role": "user", "content": "Сократи текст до трёх пунктов: ..."}],
)

По умолчанию effort = high. temperature и top_p не поддерживаются, не указывайте их.

const message = await client.messages.create({
  model: "claude-sonnet-5-5",
  max_tokens: 4096,                  // предел длины ответа
  system: "Отвечай по делу, без вступлений.",
  output_config: { effort: "medium" },  // low, medium, high, xhigh, max
  stop_sequences: ["---"],           // остановиться на этой строке
  messages: [{ role: "user", content: "Сократи текст до трёх пунктов: ..." }],
});

По умолчанию effort = high. temperature и top_p не поддерживаются, не указывайте их.

curl https://api.aprium.ru/v1/messages \
  -H "x-api-key: $APRIUM_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-sonnet-5-5",
    "max_tokens": 4096,
    "system": "Отвечай по делу, без вступлений.",
    "output_config": {"effort": "medium"},
    "stop_sequences": ["---"],
    "messages": [{"role": "user", "content": "Сократи текст до трёх пунктов: ..."}]
  }'

По умолчанию effort = high. temperature и top_p не поддерживаются, не указывайте их.

Загрузка файлов

import base64

with open("dogovor.pdf", "rb") as f:
    pdf = base64.standard_b64encode(f.read()).decode()

message = client.messages.create(
    model="claude-sonnet-5-5",
    max_tokens=2048,
    messages=[{
        "role": "user",
        "content": [
            {"type": "document",
             "source": {"type": "base64", "media_type": "application/pdf", "data": pdf}},
            {"type": "text", "text": "Выпиши сроки и штрафы из договора"},
        ],
    }],
)

Картинка передаётся так же: type image и media_type image/png или image/jpeg.

import { readFileSync } from "node:fs";

const pdf = readFileSync("dogovor.pdf").toString("base64");

const message = await client.messages.create({
  model: "claude-sonnet-5-5",
  max_tokens: 2048,
  messages: [{
    role: "user",
    content: [
      { type: "document",
        source: { type: "base64", media_type: "application/pdf", data: pdf } },
      { type: "text", text: "Выпиши сроки и штрафы из договора" },
    ],
  }],
});

Картинка передаётся так же: type image и media_type image/png или image/jpeg.

PDF=$(base64 < dogovor.pdf | tr -d '\n')

curl https://api.aprium.ru/v1/messages \
  -H "x-api-key: $APRIUM_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-sonnet-5-5",
    "max_tokens": 2048,
    "messages": [{"role": "user", "content": [
      {"type": "document",
       "source": {"type": "base64", "media_type": "application/pdf", "data": "'"$PDF"'"}},
      {"type": "text", "text": "Выпиши сроки и штрафы из договора"}
    ]}]
  }'

Для больших файлов сохраните тело запроса в request.json и отправьте через -d @request.json.

Агенты и редакторы кода

Claude в привычном инструменте: укажите адрес aprium и ключ, остальное работает как с Anthropic напрямую. В примерах — Claude Sonnet 5.5.

Claude Code

Официальный агент Anthropic для терминала

7 шагов
  1. Создайте ключ: Аккаунт → Ключи → «Создать ключ». Задайте имя, например claude-code, и скопируйте ключ.

  2. Установите Node.js 18 или новее с nodejs.org, затем Claude Code:

    bash
    npm install -g @anthropic-ai/claude-code

    Проверка: claude --version.

  3. macOS и Linux: добавьте переменные в ~/.zshrc или ~/.bashrc и перечитайте файл (source ~/.zshrc):

    bash
    export ANTHROPIC_BASE_URL="https://api.aprium.ru"
    export ANTHROPIC_AUTH_TOKEN="ваш_ключ"
  4. Windows PowerShell, для текущей сессии:

    powershell
    $env:ANTHROPIC_BASE_URL = "https://api.aprium.ru"
    $env:ANTHROPIC_AUTH_TOKEN = "ваш_ключ"

    Чтобы не вводить каждый раз: «Свойства системы → Переменные среды».

  5. Или только для одного проекта, без общих переменных: файл .claude/settings.json в папке проекта.

    json
    {
      "env": {
        "ANTHROPIC_BASE_URL": "https://api.aprium.ru",
        "ANTHROPIC_AUTH_TOKEN": "ваш_ключ"
      }
    }
  6. Закрепите модели. Claude Code сам выбирает модель под задачу: сильную, основную или быструю. Укажите имена, которые есть в aprium, тогда фоновые запросы не упадут с ошибкой после очередного релиза Anthropic:

    bash
    export ANTHROPIC_DEFAULT_OPUS_MODEL="claude-opus-5-5"
    export ANTHROPIC_DEFAULT_SONNET_MODEL="claude-sonnet-5-5"
    export ANTHROPIC_DEFAULT_HAIKU_MODEL="claude-haiku-4-5-20251001"

    Эти же строки можно добавить в блок env файла .claude/settings.json. Перейти на Claude Sonnet 5.5 в сессии: /model claude-sonnet-5-5.

  7. Проверка

    Запустите claude в папке проекта и задайте простой вопрос, например «какие файлы в проекте?». Пришёл ответ, значит всё подключено.

    bash
    claude

OpenCode

Открытый агент для терминала

5 шагов
  1. Создайте ключ: Аккаунт → Ключи → «Создать ключ». Задайте имя, например opencode, и скопируйте ключ.

  2. Установите OpenCode:

    bash
    npm install -g opencode-ai
  3. Добавьте провайдера в opencode.json: в корне проекта или глобально в ~/.config/opencode/opencode.json.

    json
    {
      "$schema": "https://opencode.ai/config.json",
      "provider": {
        "aprium": {
          "npm": "@ai-sdk/anthropic",
          "name": "aprium",
          "options": {
            "baseURL": "https://api.aprium.ru/v1",
            "apiKey": "{env:APRIUM_API_KEY}"
          },
          "models": {
            "claude-haiku-4-5-20251001": {
              "name": "Claude Haiku 4.5"
            },
            "claude-sonnet-5-5": {
              "name": "Claude Sonnet 5.5"
            },
            "claude-opus-5-5": {
              "name": "Claude Opus 5.5"
            },
            "claude-fable-5-1": {
              "name": "Claude Fable 5.1"
            }
          }
        }
      }
    }

    Лишние модели из блока models можно убрать.

  4. Сохраните ключ в переменной окружения. Чтобы не вводить каждый раз, добавьте строку в ~/.zshrc:

    bash
    export APRIUM_API_KEY="ваш_ключ"
  5. Проверка

    Запустите opencode, введите /models и выберите модель в группе aprium. Задайте вопрос: ответ пришёл, значит всё работает.

Cline и Roo Code

Агенты для VS Code

6 шагов
  1. Создайте ключ: Аккаунт → Ключи → «Создать ключ». Задайте имя, например cline, и скопируйте ключ.

  2. Установите Cline или Roo Code: в VS Code нажмите ⌘⇧X (Windows и Linux: Ctrl+Shift+X), найдите расширение по названию и нажмите Install.

  3. Откройте панель расширения в боковой колонке и нажмите шестерёнку ⚙ в её шапке.

  4. В списке API Provider выберите Anthropic и включите «Use custom base URL».

  5. Заполните поля:

    Настройки
    Base URL:   https://api.aprium.ru
    API Key:    ваш_ключ
    Model:      claude-sonnet-5-5
  6. Проверка

    Сохраните настройки, откройте чат расширения и задайте простой вопрос, например «какие здесь файлы?». Ответ начал приходить, значит всё работает.

    401 — неверный ключ. 404 — неверное имя модели в поле Model: сверьтесь с таблицей моделей.

Kilo Code

Агент для VS Code и JetBrains

6 шагов
  1. Создайте ключ: Аккаунт → Ключи → «Создать ключ». Задайте имя, например kilo, и скопируйте ключ.

  2. Установите Kilo Code. VS Code: ⌘⇧X (Windows и Linux: Ctrl+Shift+X), найдите «Kilo Code», нажмите Install. JetBrains: Settings → Plugins → Marketplace → «Kilo Code».

  3. Откройте панель Kilo Code и нажмите шестерёнку ⚙ в правом верхнем углу.

  4. В списке API Provider выберите Anthropic и включите «Use custom base URL».

  5. Заполните поля:

    Настройки
    Base URL:   https://api.aprium.ru
    API Key:    ваш_ключ
    Model:      claude-sonnet-5-5
  6. Проверка

    Сохраните настройки, откройте чат и задайте простой вопрос. Ответ начал приходить, значит всё работает.

    401 — неверный ключ. 404 — неверное имя модели в поле Model: сверьтесь с таблицей моделей.

Zed

Редактор кода со встроенным агентом

4 шага
  1. Создайте ключ: Аккаунт → Ключи → «Создать ключ». Задайте имя, например zed, и скопируйте ключ.

  2. Откройте настройки (⌘, на macOS, Ctrl+, на Windows и Linux) и добавьте адрес и модель для провайдера Anthropic:

    settings.json
    {
      "language_models": {
        "anthropic": {
          "api_url": "https://api.aprium.ru",
          "available_models": [
            {
              "name": "claude-sonnet-5-5",
              "display_name": "Claude Sonnet 5.5",
              "max_tokens": 200000
            }
          ]
        }
      }
    }
  3. Откройте панель агента → настройки → Anthropic и вставьте ключ. Или задайте его переменной окружения ANTHROPIC_API_KEY до запуска Zed.

  4. Проверка

    Выберите Claude Sonnet 5.5 в списке моделей панели агента и задайте вопрос.

Continue

Ассистент для VS Code и JetBrains

4 шага
  1. Создайте ключ: Аккаунт → Ключи → «Создать ключ». Задайте имя, например continue, и скопируйте ключ.

  2. Установите Continue из маркетплейса VS Code или JetBrains.

  3. Откройте ~/.continue/config.yaml и добавьте модели. Поле roles распределяет работу: основная модель ведёт чат и правки, быстрая подсказывает код на лету.

    config.yaml
    name: aprium
    version: 1.0.0
    schema: v1
    models:
      - name: Claude Sonnet 5.5
        provider: anthropic
        model: claude-sonnet-5-5
        apiBase: https://api.aprium.ru/v1/
        apiKey: ваш_ключ
        roles: [chat, edit, apply]
    
      - name: Claude Haiku 4.5
        provider: anthropic
        model: claude-haiku-4-5-20251001
        apiBase: https://api.aprium.ru/v1/
        apiKey: ваш_ключ
        roles: [autocomplete]

    Провайдер anthropic, а запросы идут в aprium: шлюз задаёт поле apiBase.

  4. Проверка

    Выберите Claude Sonnet 5.5 в списке моделей панели Continue и задайте вопрос.

Ключ во всех примерах: ваш_ключ. Подставьте свой из Аккаунт → Ключи.

Перенос кода с api.anthropic.com

Если код уже работает с Anthropic напрямую, переделывать его не нужно: меняются три строки.

  1. Адрес

    Замените https://api.anthropic.com на https://api.aprium.ru

    В SDK это base_url (Python) или baseURL (Node.js), в Claude Code — ANTHROPIC_BASE_URL.

  2. Ключ

    Вместо ключа Anthropic подставьте ключ aprium x-api-key

    Заголовок и формат те же. Ключ создаётся в Аккаунте → Ключи, один на все модели.

  3. Модель

    Проверьте имя модели в коде claude-sonnet-5-5

    Работают текущие версии Claude. Старые имена вроде claude-3-5-sonnet вернут ошибку 404 — замените их по таблице выше.

Справка

POST https://api.aprium.ru/v1/messages. Параметры тела запроса, разница между моделями и ответы с ошибкой.

Параметры

modelстрокаобязательный
Имя модели: claude-sonnet-5-5, claude-opus-5-5, claude-fable-5-1 или claude-haiku-4-5-20251001
max_tokensчислообязательный
Предел длины ответа в токенах, вместе с рассуждением. Для ответов длиннее 16 тыс. токенов включайте stream
messagesмассивобязательный
Диалог: сообщения с ролями user и assistant. Текст, картинки и PDF — блоками content
systemстрока
Инструкция для модели: роль, тон, формат ответа
output_config.effortlow … max
Глубина рассуждения у Sonnet 5.5, Opus 5.5 и Fable 5.1. По умолчанию high, у Opus 5.5 — medium
thinkingобъект
Рассуждение у Haiku 4.5: {"type": "enabled", "budget_tokens": 2048}. У моделей 5.x его не задают: они решают сами, а Opus и Fable рассуждают всегда
temperatureчисло от 0 до 1
Только Haiku 4.5: меньше — стабильнее, больше — разнообразнее. Модели 5.x его не поддерживают, Sonnet 5.5 отвечает ошибкой 400
stop_sequencesмассив строк
Строки, на которых модель останавливается
streamtrue или false
Получать ответ частями по мере генерации

Ошибки

400
Неверный запросПроверьте model, max_tokens и messages. У моделей 5.x уберите temperature, top_p и budget_tokens
401
Нет доступаКлюч не указан или указан неверно. Ключ передаётся в заголовке x-api-key
402
Закончился балансПополните баланс в Аккаунте, ключ менять не нужно
404
Нет такой моделиПроверьте имя модели по таблице моделей. Старые версии, например claude-3-5-sonnet, не работают
429
Слишком частоПодождите и повторите запрос. Официальные SDK повторяют его сами
529
Модель перегруженаВременная нагрузка у Anthropic. Повторите запрос через несколько секунд

Вопросы о Claude API

Ключ, оплата и подключение коротко.

Как получить API-ключ Claude в России?

Зарегистрируйтесь в aprium, пополните баланс картой РФ, откройте Аккаунт → Ключи и нажмите «Создать ключ». Ключ работает со всеми моделями Claude, VPN и зарубежная карта не нужны.

Это ключ Anthropic?

Нет, это ключ aprium. Запросы с ним идут на https://api.aprium.ru, а aprium передаёт их моделям Claude. Формат запросов тот же, что у Anthropic Messages API, поэтому код и инструменты менять не нужно — только адрес и ключ.

Сколько стоит Claude API?

Оплата за токены, без подписки. Вход стоит от $0,30 (≈ 25,22 ₽) за 1 млн токенов у Claude Haiku 4.5 до $3,79 (≈ 319 ₽) у Claude Fable 5.1. Все цены и калькулятор — на странице «Модели и цены».

Как оплатить?

Картой Мир, Visa или Mastercard в рублях. Подписки нет: с баланса списывается стоимость каждого запроса. Подробнее на странице «Оплата и тарифы».

Подойдёт официальный SDK Anthropic?

Да. Укажите адрес https://api.aprium.ru и ключ aprium, остальной код не меняется. Так же подключаются Claude Code, Cline, OpenCode и другие инструменты с настройкой адреса Anthropic.

Один ключ работает со всеми моделями?

Да. Один ключ aprium подходит для Claude, GPT и Gemini: модель выбирается полем model в каждом запросе. Можно завести несколько ключей для разных проектов, расход по каждому виден отдельно.

Что будет, когда выйдет новая версия модели?

Добавим её в aprium и обновим страницы моделей и цены. Имя модели для API указано на странице каждой модели; старые версии через aprium не работают, их имена нужно заменить.

Подключите Claude API

Создайте ключ и подключите Claude к своему коду, агенту или редактору.

Получить API-ключ