Справка

Справочник API

Два протокола, один ключ. Anthropic-совместимый /v1/messages и OpenAI-совместимый /v1/chat/completions — все модели доступны через оба.

Адрес и авторизация

Базовый адрес: https://api.rerouter.ru. Ключ передаётся заголовком x-api-key или Authorization: Bearer — принимаются оба. Ключи выдаются в кабинете.

Эндпоинты

Метод и путьПротоколЧто делает
POST /v1/messagesAnthropicНативный формат Anthropic. Поддерживает stream: true, thinking, tool_use.
POST /v1/chat/completionsOpenAIOpenAI-совместимый формат. Работает с OpenAI SDK, LangChain, Cursor, Continue, Open WebUI.
GET /v1/modelsОбаКаталог моделей. Формат ответа подходит и Anthropic, и OpenAI клиентам.

Запрос: Anthropic-формат

Claude Code, Claude Desktop и Anthropic SDK используют этот формат.

curl https://api.rerouter.ru/v1/messages \
  -H "x-api-key: $REROUTER_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-opus-5",
    "max_tokens": 1024,
    "messages": [
      {"role": "user", "content": "Привет"}
    ]
  }'

Запрос: OpenAI-формат

OpenAI SDK, LangChain, Cursor и любой клиент, ожидающий /v1/chat/completions.

curl https://api.rerouter.ru/v1/chat/completions \
  -H "Authorization: Bearer $REROUTER_KEY" \
  -H "content-type: application/json" \
  -d '{
    "model": "gpt-5.6-luna",
    "max_tokens": 1024,
    "messages": [
      {"role": "user", "content": "Привет"}
    ]
  }'

Стриминг

При stream: true ответ приходит событиями SSE. Формат зависит от эндпоинта:

ЭндпоинтСобытияКонец потока
/v1/messagesmessage_start, content_block_delta, message_deltamessage_stop
/v1/chat/completionsdata: {choices: [{delta: ...}]}data: [DONE]

Тело мы не переписываем и не буферизуем — байты уходят к вам по мере поступления. Если поток оборвался, списывается то, что успело прийти.

Учёт токенов

Расход считается по полям usage из ответа. Формат зависит от эндпоинта:

Anthropic (/v1/messages)

"usage": {
  "input_tokens": 412,
  "output_tokens": 187,
  "cache_read_input_tokens": 68344,
  "cache_creation_input_tokens": 2910
}

Размер промпта — это сумма трёх входных полей, а не только input_tokens. На агентной работе основной объём приходит как cache_read_input_tokens.

OpenAI (/v1/chat/completions)

"usage": {
  "prompt_tokens": 412,
  "completion_tokens": 187,
  "prompt_tokens_details": {
    "cached_tokens": 68344
  }
}

Чтение из кэша стоит дешевле свежих входных токенов — ставки на странице моделей.

Ошибки

КодЧто значитЧто делать
400Запрос не разобран: структура или параметры.Починить запрос. Повтор не поможет.
401Ключ недействителен или отозван.Проверить ключ в кабинете.
402Баланс исчерпан.Пополнить — запросы не проходят до пополнения.
404Модель не найдена в каталоге.Проверить id модели — каталог.
429Лимит окна или частота запросов.Подождать по retry-after. Подробности — лимиты.
5xxВременная проблема на нашей стороне.Повторить с экспоненциальной задержкой.

Формат тела ошибки соответствует протоколу эндпоинта: на /v1/messages — Anthropic-формат, на /v1/chat/completions — OpenAI-формат. Официальные SDK обеих платформ обрабатывают ошибки и retry-after сами.

Чего у нас нет

  • Batch API и файлов. Только синхронные запросы.
  • Веб-поиска на стороне модели. Инструмент поиска подключается вашим кодом и вашим ключом поискового провайдера.

Работаете руками в Claude Code, а не из своего кода? Тогда подписка выйдет дешевле: API продаёт программный доступ и отсутствие окон.