ANTHROPIC MESSAGES API · РУКОВОДСТВО ПО ПОДКЛЮЧЕНИЮ
Подключитесь к Claude API за три шага
Ваш ключ несёт предоплаченный баланс на настоящем Anthropic Claude API. Создайте ключ sk-pool-…, укажите для совместимого клиента адрес https://api.apitoken.sale и отправьте стандартный запрос Messages API.
Меняются только адрес сервера и 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-примере ниже.
Запрос отправляет одно сообщение модели claude-opus-4-8. Для потокового ответа добавьте "stream": true; сервер вернёт стандартные SSE-события Anthropic.
В прямых 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.
Статус
Значение
Что делать
401
API-ключ отсутствует, неверен или отозван
Передайте активный ключ sk-pool в x-api-key. Если ключ отозван, создайте новый; повторять запрос с тем же ключом не нужно.
402
Доступного предоплаченного баланса недостаточно
Пополните аккаунт, убедитесь, что баланс зачислен, и повторите запрос. Ожидание само по себе не устранит 402.
429
Лимит запросов или временный дефицит мощности провайдера
Учитывайте Retry-After, если он есть; используйте ограниченную экспоненциальную задержку со случайным смещением.
5xx
Временная ошибка шлюза или инфраструктуры Anthropic
Повторите запрос с ограниченной экспоненциальной задержкой. Сохраните ID запроса и не допускайте бесконечных повторов.
Чек-лист для production
Загружайте ключи из серверного менеджера секретов или переменной окружения; не включайте их в браузерный bundle
Задайте таймауты подключения и ответа; для долгой генерации используйте потоковый режим
Повторяйте только 429 и 5xx; учитывайте Retry-After, добавляйте случайное смещение и ограничивайте число попыток
Считайте остальные ответы 4xx неповторяемыми, пока не изменится запрос или состояние аккаунта
Логируйте статус, модель, задержку и ID запроса; скрывайте ключи и конфиденциальные промпты
Настройте уведомления о низком балансе и сверяйте списания с журналом запросов в кабинете
07
Кэширование промптов
Главный рычаг, определяющий, как быстро расходуется ключ. Повторяющийся контекст, отданный из кэша, стоит примерно в десять раз дешевле обычного ввода.
Почему это важно именно здесь
Агент пересылает весь диалог на каждом ходу: системный промпт, прочитанные файлы, предыдущие ответы. Без кэша вы платите за этот контекст полную входную ставку каждый раз. С кэшем повторяющийся префикс тарифицируется по ставке чтения кэша.
С ключа списывается ровно то, что стоит запрос: вход, выход, запись и чтение кэша считаются отдельно и каждый по своей ставке. Кэш — это не скидка, которую мы даём, а более дешёвый способ отправить тот же запрос, и экономия остаётся на вашем балансе.
Как включить
Отметьте неизменную часть промпта через cache_control. Всё, что стоит до этой отметки, становится кэшируемым префиксом; переменное — текущий вопрос, время, идентификаторы запроса — размещайте после неё.
Кэшируем длинный системный промпт
Первый запрос пишет кэш, все последующие его читают.
Кэш работает по совпадению префикса: один изменившийся байт в начале обесценивает всё, что идёт после.
Порядок сборки — tools → system → messages, поэтому стабильное держите в начале, изменчивое в конце.
Запись кэша стоит около 1,25× обычного ввода, чтение — около 0,1×. Двух запросов уже достаточно, чтобы это окупилось.
Запись живёт 5 минут, каждое чтение продлевает её. Есть часовой TTL, его запись стоит 2×.
Не подставляйте в системный промпт текущее время, идентификатор запроса или имя пользователя — это полностью ломает кэш.
Claude Code, Cursor и Cline включают кэш сами; от вас требуется в основном не ломать префикс.
Как проверить, что работает
В каждом ответе в блоке usage приходят cache_creation_input_tokens и cache_read_input_tokens. Если счётчик чтения остаётся нулевым на одинаковых запросах — что-то в префиксе меняется. На странице вашего ключа чтение и запись кэша тоже показаны отдельными корзинами.