Справка
Справочник API
Два протокола, один ключ. Anthropic-совместимый /v1/messages и OpenAI-совместимый /v1/chat/completions — все модели доступны через оба.
Адрес и авторизация
Базовый адрес: https://api.rerouter.ru. Ключ передаётся заголовком x-api-key или Authorization: Bearer — принимаются оба. Ключи выдаются в кабинете.
Эндпоинты
| Метод и путь | Протокол | Что делает |
|---|---|---|
| POST /v1/messages | Anthropic | Нативный формат Anthropic. Поддерживает stream: true, thinking, tool_use. |
| POST /v1/chat/completions | OpenAI | OpenAI-совместимый формат. Работает с 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/messages | message_start, content_block_delta, message_delta | message_stop |
/v1/chat/completions | data: {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 продаёт программный доступ и отсутствие окон.