Документация
ANTHROPIC MESSAGES API · РУКОВОДСТВО ПО ПОДКЛЮЧЕНИЮ

Подключитесь к Claude API за три шага

Ваш ключ несёт предоплаченный баланс на настоящем Anthropic Claude API. Создайте ключ sk-pool-…, укажите для совместимого клиента адрес https://api.apitoken.sale и отправьте стандартный запрос Messages API.

01

Параметры подключения

Меняются только адрес сервера и API-ключ. Тела запросов и ответов, SSE-потоки и ошибки совпадают с Anthropic Messages API байт в байт.

1Создайте ключ sk-pool
2Укажите базовый URL
3POST /v1/messages
Вставьте ключ sk-pool-…, чтобы подставить его в примеры, где ключ указан явно. Он остаётся только в памяти этой вкладки браузера: страница не загружает и не сохраняет его. Чтобы удалить ключ, очистите поле или перезагрузите вкладку.
Базовый URLhttps://api.apitoken.sale
Адрес Messages APIhttps://api.apitoken.sale/v1/messages
Заголовок аутентификацииx-api-key: sk-pool-•••
Полный API-ключ показывается только один раз при выпуске. Сохраните его в переменной окружения или менеджере секретов. Если ключ потерян или раскрыт, отзовите его и создайте новый: восстановить исходное значение нельзя.
02

Быстрый старт

Сначала задайте параметры подключения, затем выполните минимальный cURL-запрос. Успешный ответ подтверждает, что ключ, баланс, адрес и модель готовы к работе.

Задайте переменные окружения

Claude Code и официальные SDK читают переменные ANTHROPIC. APITOKEN_API_KEY — локальный псевдоним, который используется в cURL-примере ниже.

export ANTHROPIC_BASE_URL="https://api.apitoken.sale"
export ANTHROPIC_API_KEY="sk-pool-•••"
export APITOKEN_API_KEY="$ANTHROPIC_API_KEY"

Отправьте первый запрос

Запрос отправляет одно сообщение модели claude-opus-4-8. Для потокового ответа добавьте "stream": true; сервер вернёт стандартные SSE-события Anthropic.

curl https://api.apitoken.sale/v1/messages   -H "x-api-key: $APITOKEN_API_KEY"   -H "anthropic-version: 2023-06-01"   -H "content-type: application/json"   -d '{
    "model": "claude-opus-4-8",
    "max_tokens": 1024,
    "messages": [{ "role": "user", "content": "Hello" }]
  }'
03

Аутентификация

В прямых HTTP-запросах передавайте ключ sk-pool в x-api-key и добавляйте anthropic-version: 2023-06-01. Официальные SDK Anthropic добавляют заголовок версии автоматически.

1x-api-key
2anthropic-version
API/v1/messages
Ключ sk-pool — это API-ключ, а не bearer-токен. Передавайте его в x-api-key, а не в заголовке Authorization.
04

Инструменты разработчика

Выберите в инструменте провайдера Anthropic. Не меняйте ID модели и формат API — замените только базовый URL и API-ключ.

Claude Code

Задайте адрес и ключ в оболочке, затем запускайте Claude Code как обычно. Настраивать проект не требуется.

# Set for the current shell or add to your shell profile
export ANTHROPIC_BASE_URL="https://api.apitoken.sale"
export ANTHROPIC_API_KEY="sk-pool-•••"

# Start Claude Code normally
claude

Cursor, Cline, Continue и Zed

Выберите Anthropic как провайдера и укажите эти четыре значения. Названия полей могут немного отличаться.

Provider: Anthropic
Base URL: https://api.apitoken.sale
API key: sk-pool-•••
Model ID: claude-opus-4-8
05

Официальные SDK

Используйте официальные SDK Anthropic с собственным базовым URL. Параметры запросов, объекты ответов и потоковая передача не меняются.

Python SDK

Клиент читает ключ sk-pool из ANTHROPIC_API_KEY, а base_url направляет запросы в apiToken.sale.

from anthropic import Anthropic

# Reads ANTHROPIC_API_KEY from the environment
client = Anthropic(base_url="https://api.apitoken.sale")

message = client.messages.create(
    model="claude-opus-4-8",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Hello"}],
)

for block in message.content:
    if block.type == "text":
        print(block.text)

TypeScript SDK

Клиент Node.js читает ту же переменную с ключом; baseURL меняет только адрес API.

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

// Reads ANTHROPIC_API_KEY from the environment
const client = new Anthropic({
  baseURL: "https://api.apitoken.sale",
});

const message = await client.messages.create({
  model: "claude-opus-4-8",
  max_tokens: 1024,
  messages: [{ role: "user", content: "Hello" }],
});

for (const block of message.content) {
  if (block.type === "text") console.log(block.text);
}
06

Основные коды ответа

Тело ошибки использует JSON-формат Anthropic. Коды 401 и 402 требуют исправить состояние аккаунта; автоматически повторяйте только временные ошибки 429 и 5xx.

СтатусЗначениеЧто делать
401API-ключ отсутствует, неверен или отозванПередайте активный ключ sk-pool в x-api-key. Если ключ отозван, создайте новый; повторять запрос с тем же ключом не нужно.
402Доступного предоплаченного баланса недостаточноПополните аккаунт, убедитесь, что баланс зачислен, и повторите запрос. Ожидание само по себе не устранит 402.
429Лимит запросов или временный дефицит мощности провайдераУчитывайте Retry-After, если он есть; используйте ограниченную экспоненциальную задержку со случайным смещением.
5xxВременная ошибка шлюза или инфраструктуры AnthropicПовторите запрос с ограниченной экспоненциальной задержкой. Сохраните ID запроса и не допускайте бесконечных повторов.

Чек-лист для production

  • Загружайте ключи из серверного менеджера секретов или переменной окружения; не включайте их в браузерный bundle
  • Задайте таймауты подключения и ответа; для долгой генерации используйте потоковый режим
  • Повторяйте только 429 и 5xx; учитывайте Retry-After, добавляйте случайное смещение и ограничивайте число попыток
  • Считайте остальные ответы 4xx неповторяемыми, пока не изменится запрос или состояние аккаунта
  • Логируйте статус, модель, задержку и ID запроса; скрывайте ключи и конфиденциальные промпты
  • Настройте уведомления о низком балансе и сверяйте списания с журналом запросов в кабинете
07

Кэширование промптов

Главный рычаг, определяющий, как быстро расходуется ключ. Повторяющийся контекст, отданный из кэша, стоит примерно в десять раз дешевле обычного ввода.

Почему это важно именно здесь

Агент пересылает весь диалог на каждом ходу: системный промпт, прочитанные файлы, предыдущие ответы. Без кэша вы платите за этот контекст полную входную ставку каждый раз. С кэшем повторяющийся префикс тарифицируется по ставке чтения кэша.

С ключа списывается ровно то, что стоит запрос: вход, выход, запись и чтение кэша считаются отдельно и каждый по своей ставке. Кэш — это не скидка, которую мы даём, а более дешёвый способ отправить тот же запрос, и экономия остаётся на вашем балансе.

Как включить

Отметьте неизменную часть промпта через cache_control. Всё, что стоит до этой отметки, становится кэшируемым префиксом; переменное — текущий вопрос, время, идентификаторы запроса — размещайте после неё.

Кэшируем длинный системный промпт

Первый запрос пишет кэш, все последующие его читают.

curl https://api.apitoken.sale/v1/messages \
  -H "x-api-key: sk-pool-•••" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-opus-4-8",
    "max_tokens": 1024,
    "system": [
      {
        "type": "text",
        "text": "<длинная неизменная инструкция или документ>",
        "cache_control": { "type": "ephemeral" }
      }
    ],
    "messages": [{ "role": "user", "content": "Вопрос по документу" }]
  }'

Что стоит знать

  • Кэш работает по совпадению префикса: один изменившийся байт в начале обесценивает всё, что идёт после.
  • Порядок сборки — tools → system → messages, поэтому стабильное держите в начале, изменчивое в конце.
  • Запись кэша стоит около 1,25× обычного ввода, чтение — около 0,1×. Двух запросов уже достаточно, чтобы это окупилось.
  • Запись живёт 5 минут, каждое чтение продлевает её. Есть часовой TTL, его запись стоит 2×.
  • Не подставляйте в системный промпт текущее время, идентификатор запроса или имя пользователя — это полностью ломает кэш.
  • Claude Code, Cursor и Cline включают кэш сами; от вас требуется в основном не ломать префикс.

Как проверить, что работает

В каждом ответе в блоке usage приходят cache_creation_input_tokens и cache_read_input_tokens. Если счётчик чтения остаётся нулевым на одинаковых запросах — что-то в префиксе меняется. На странице вашего ключа чтение и запись кэша тоже показаны отдельными корзинами.