Альтернативу OpenRouter выбирают по причине замены: неподходящий протокол, способ оплаты, политика данных или требования к маршрутизации. AIHubMix, ProxyAPI, Zenith и прямой API — разные варианты, а не взаимозаменяемые копии одного сервиса.
Ниже — сравнение документированных подключений, расчёт Haiku 4.5 при одинаковых 4 000 входных и 800 выходных токенах и план миграции. Тарифный расчёт не устанавливает равенство backend, качества и функций; комиссии и конвертация показаны отдельно.
Сопоставление вариантов
| Вариант и источник заявленной цены | Документированный способ доступа или заявленный тип endpoint | Токенный расчёт для 4 000 входных / 800 выходных токенов | Условия и границы сравнения |
|---|---|---|---|
OpenRouter; запись anthropic/claude-haiku-4.5 в публичном каталоге, наблюдение 28.10.2026 |
https://openrouter.ai/api/v1/chat/completions, Bearer API-ключ; Quickstart и FAQ. |
$0,008 по ставкам записи каталога | OpenRouter заявляет единый API и автоматический fallback; условия зависят от настроек запроса и здесь не проверялись. Бесплатный режим: 20 RPM и 50 запросов в день; после покупки кредитов минимум на $10 — 1 000 запросов в день. Неудачные попытки входят в дневной лимит. Это ограничения free-моделей, не лимит платного Haiku. Цена каталога не доказывает идентичность фактически обслуживаемой модели Anthropic. |
AIHubMix; публичная карточка claude-haiku-4-5, наблюдение 28.10.2026 |
OpenAI-compatible endpoint: https://aihubmix.com/v1/chat/completions; резервный домен — https://api.inferera.com. |
$0,0088 по ставкам карточки | Покупка кредитов через Stripe — от $15 целыми долларами. Карточка указывает минимум кэш-токенов 4 096. Идентичность фактически обслуживаемой модели, fallback и сопоставимый RPM не подтверждены. |
ProxyAPI; публичная карточка anthropic/claude-haiku-4-5, наблюдение 28.10.2026 |
Для OpenAI SDK документация указывает базу https://api.proxyapi.ru/v1. |
2,3592 ₽ по обычному тарифу | Ставки включают НДС 5%. 20 ответов 4xx за минуту по ключу вызывают защитную паузу; это не лимит успешных запросов. Цена не подтверждает идентичность модели или сопоставимый fallback. |
Zenith; запись claude-haiku-4-5 в GET-каталоге одного аутентифицированного ключа, 28.10.2026, 16:39 UTC |
В записи заявлены типы endpoint chat_completions, responses и messages; работа каждого типа для этой модели и ключа не проверялась. |
$0,00272 по ставкам записи каталога | Key-specific метаданные, не публичный универсальный тариф. Запись не подтверждает backend, inference или фактическую маршрутизацию к Anthropic. Наблюдение GET в 17:39 UTC подтверждает только объект с массивом data, а не новую цену. |
Anthropic напрямую; API ID claude-haiku-4-5-20251001 |
Messages API: https://api.anthropic.com/v1/messages. |
$0,008 по официальной ставке без кэша | Паспорт отмечает модель как legacy и рекомендует рассмотреть Haiku 5.5. Короткий alias claude-haiku-4-5 не выдаётся за подтверждённый API ID; его доступность отдельно не установлена. |
Переносите контракт, а не строку URL
- Зафиксируйте протокол, точный model ID, endpoint, способ авторизации, настройки маршрута и ожидаемую схему ответа. Для OpenRouter отдельно запишите настройки provider/fallback.
- Проверьте ID в каталоге цели. Совпадение имени не доказывает backend и работоспособность endpoint.
- Создайте отдельный ключ нового сервиса; прежний ключ не отправляйте на новый домен.
- В staging выполните минимальный текстовый запрос. Для Chat Completions ожидайте HTTP-ответ со структурой
choices[0].message.content; для Anthropic Messages — ответ именно на/v1/messagesс документированной схемой Messages API, а не с полями Chat Completions. Отсутствие ожидаемого поля — отклонение. - Если приложение использует tools, отправьте одну декларацию инструмента и запрос, который должен вызвать её: пройдите только при наличии корректного tool-вызова и обязательных полей; текст вместо вызова — отказ. Для JSON задайте схему и проверьте разбираемый JSON с обязательными полями. Для streaming проверьте последовательные события и финальную собранную строку; обычный цельный ответ вместо потока — отказ. Для изображения отправьте тот же тип входного контента и проверьте документированное поле результата; ошибка формата или потеря изображения — отказ.
- Сравните ответы, usage и ошибки на одинаковом наборе. Переключайте production только после прохождения нужных проверок и сохраните откат.
Небольшой адаптер с разрешёнными адресами
Ниже — минимальный документальный пример текстового запроса Chat Completions для OpenRouter и AIHubMix. Это не готовая миграция и не проверка совместимости модели, маршрутизации, стоимости, tools, streaming, изображений, Responses или Messages. Скрипт обрабатывает ошибки SDK, проверяет HTTP-ответ через исключение и принимает только обычную строку в message.content; другие формы ответа он отклоняет. Установите python -m pip install openai, сохраните код как migrate_api.py и запустите python migrate_api.py. Укажите точный ID модели, доступный в выбранном сервисе. Для Anthropic Messages, Zenith и ProxyAPI этот адаптер не предназначен.
# Минимальный пример OpenAI-compatible Chat Completions для OpenRouter или AIHubMix.
# Не используйте этот пример для Zenith, Anthropic Messages или ProxyAPI.
import getpass
import json
from openai import APIError, APIConnectionError, APITimeoutError, OpenAI
addresses = {
"openrouter": "https://openrouter.ai/api/v1",
"aihubmix": "https://aihubmix.com/v1",
}
provider = input("Провайдер openrouter/aihubmix: ").strip()
if provider not in addresses:
raise SystemExit("Неизвестный провайдер")
model = input("Точный ID модели из каталога выбранного сервиса: ").strip()
if not model:
raise SystemExit("Не указан ID модели")
key = getpass.getpass("Ключ именно " + provider + ": ")
client = OpenAI(api_key=key, base_url=addresses[provider], max_retries=0, timeout=60)
try:
result = client.chat.completions.create(
model=model,
messages=[{"role": "user", "content": "Верни JSON с полем result равным 4"}],
max_tokens=128,
)
except (APIConnectionError, APITimeoutError, APIError) as exc:
raise SystemExit("Ошибка API или сети: " + str(exc))
text = result.choices[0].message.content if result.choices else None
if not isinstance(text, str) or not text.strip():
raise SystemExit("Ответ пуст или content не является строкой")
try:
value = json.loads(text)
except (TypeError, ValueError):
raise SystemExit("Ответ не JSON")
if not isinstance(value, dict) or type(value.get("result")) not in (int, float) or value["result"] != 4:
raise SystemExit("Задание не выполнено")
print(value)
print("usage:", result.usage)
Расчёт заявленных тарифов для одинакового объёма
Условная нагрузка — 4 000 входных и 800 выходных токенов, без кэша, Batch, внешних инструментов и повторов. Это арифметика по ставкам, не измерение. Цены посредников — снимки публичных карточек 28 октября 2026 года; Anthropic — официальный паспорт Haiku 4.5. Zenith — запись GET-каталога одного аутентифицированного редакционного ключа на ту же дату, а не публичный универсальный тариф.
| Маршрут / точный ID | Вход / выход за 1 млн токенов | 1 запрос, 4 000/800 | 10 000 запросов |
|---|---|---|---|
Anthropic: claude-haiku-4-5-20251001 (официальный API ID; legacy) |
$1 / $5 | $0,008 | $80 |
OpenRouter: anthropic/claude-haiku-4.5 |
$1 / $5 | $0,008 | $80 |
AIHubMix: claude-haiku-4-5 |
$1,10 / $5,50 | $0,0088 | $88 |
ProxyAPI: anthropic/claude-haiku-4-5 |
295 ₽ / 1 474 ₽, с указанным сервисом НДС | 2,3592 ₽ | 23 592 ₽ |
Zenith: claude-haiku-4-5 |
$0,34 / $1,70 | $0,00272 | $27,20 |
USD-строки используют заявленные долларовые ставки. ProxyAPI оставлен в RUB: это отдельная архивная карточка, а не единый рейтинг. Для арифметического сравнения по курсу Банка России на 28.10.2026 (80,5307 ₽ за $1) 2,3592 ₽ равны $0,02929566, а 23 592 ₽ — $292,9566; это не курс платежа и не текущая цена. Zenith — историческая key-specific запись GET-каталога, не универсальный тариф и не инвойс.
Формула для каждой валюты отдельно: (4 000 × ставка входа за миллион + 800 × ставка выхода за миллион) / 1 000 000; 1 USD = 1 000 000 microUSD. Например, AIHubMix: 0,004 × 1,10 + 0,0008 × 5,50 = $0,0088; ProxyAPI: 0,004 × 295 + 0,0008 × 1 474 = 2,3592 ₽; Zenith: 0,004 × 0,34 + 0,0008 × 1,70 = $0,00272. Это арифметика по датированной записи, без вывода о качестве, backend, комиссии или фактическом списании.
Источник справочного курса: Банк России, 28 октября 2026 года. Долларовый эквивалент помогает сопоставить арифметику, но не заменяет курс и комиссии фактического платежа.
Лимиты, комиссии и повторные запросы
Токенный расход не равен полной стоимости покупки. Для конкретной строки OpenRouter на $80 и только как сценарий тарифа Standard: указанная комиссия 5,5% даёт $80 × 0,055 = $4,40, то есть условно $84,40 до налогов и конвертации. Это не расчёт для прямого Anthropic, AIHubMix, ProxyAPI или Zenith и не обещание суммы списания. Для бесплатных моделей OpenRouter документирует 20 RPM и 50 запросов в день; после покупки кредитов на $10 — 1 000 в день, причём неудачные попытки учитываются. AIHubMix требует пополнение через Stripe минимум на $15 целыми долларами. Цены ProxyAPI включают НДС 5%; комиссии и условия операции Zenith не установлены.
При 25% дополнительных оплаченных запросов расход умножается на 1,25: $80→$100, $88→$110, 23 592 ₽→29 490 ₽, $27,20→$34; для переведённой строки ProxyAPI это $292,9566→$366,19575. Это сценарий, а не измерение. Полная цена принятого результата считается как все фактические расходы, включая неудачные запросы, делённые на число принятых результатов.
Когда OpenRouter стоит сохранить
OpenRouter рационально оставить, если приложению нужен единый документированный endpoint /api/v1/chat/completions, Bearer-авторизация и доступ к нескольким моделям через один API. Его документация также заявляет автоматический fallback; это полезный критерий только при наличии в конкретном запросе настроек маршрутизации, которые проект действительно использует. Free-лимиты 20 RPM и 50 запросов в день относятся к бесплатным моделям, а не к платному Haiku. Сохраняйте маршрут, если staging-проверка подтверждает нужные поля ответа, tools, streaming и обработку ошибок, а итоговая стоимость с комиссиями приемлема.
Миграция имеет смысл, когда нужен другой протокол или расчёт: Anthropic использует Messages API, AIHubMix — OpenAI-compatible base URL https://aihubmix.com/v1, ProxyAPI документирует https://api.proxyapi.ru/v1, а Zenith публикует отдельную Anthropic-compatible базу https://api.zenithmarket.dev без добавления /v1. Эти адреса и заявленные форматы не доказывают взаимную совместимость конкретной модели.
Когда миграцию считать неудачной
Не переключайте production, если целевой адрес не принимает предусмотренный метод авторизации, точный model ID или формат запроса. Для OpenAI-compatible маршрута проверьте HTTP-ответ с choices[0].message.content; для Anthropic Messages — ответ схемы Messages API на /v1/messages; для Zenith Anthropic-compatible клиента не добавляйте /v1 к базе. Для ProxyAPI проверяйте его документированный единый API и учитывайте защитную паузу после 20 ответов 4xx за минуту по ключу. Проваленным считается также потеря обязательного tool-вызова, JSON-схемы, streaming-событий или входного изображения. Сохраните прежнюю пару endpoint+ключ для отката и сравните журнал запросов, ответы, usage, ошибки и фактические расходы на одинаковом наборе.
Документированные адреса и авторизация: Anthropic Messages использует собственный x-api-key, версию API и /v1/messages; OpenRouter — /api/v1/chat/completions и Bearer-ключ; AIHubMix — собственный ключ и /v1; ProxyAPI — собственный ключ и /v1 для OpenAI SDK. Для Zenith документация указывает Bearer и /v1 для Chat Completions, а Anthropic-compatible SDK — базу https://api.zenithmarket.dev без добавления /v1.



