Перейти к содержанию

API

Хаб совместим с API OpenAI и Anthropic. Подойдут официальные SDK, AI SDK от Vercel и любые клиенты, в которых можно указать базовый адрес и ключ.

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

Ключ хаба передаётся так же, как ключ самого провайдера. Ключи начинаются с sk-ci2-.

ПротоколБазовый адресКлюч
OpenAI: Chat Completions и Responseshttps://hub.coreinfra.ai/openai/api/v1Authorization: Bearer
Anthropic: Messageshttps://hub.coreinfra.ai/anthropic/apix-api-key

В инструкциях для агентов используются свои адреса: https://hub.coreinfra.ai/codex/api/v1 для Codex и https://hub.coreinfra.ai/claude/api для Claude Code. Они отдают агентам каталог моделей хаба в том виде, в котором его ждёт агент.

Эндпоинты​

МетодПутьНазначение
POST/openai/api/v1/chat/completionsChat Completions — диалог с моделью, в том числе потоком.
POST/openai/api/v1/responsesResponses API — протокол Codex и современных SDK OpenAI.
GET/openai/api/v1/modelsСписок моделей, доступных в протоколе OpenAI.
POST/anthropic/api/v1/messagesMessages API — протокол Claude Code и SDK Anthropic.
POST/anthropic/api/v1/messages/count_tokensПодсчёт токенов во входных данных до запроса к модели.
GET/anthropic/api/v1/modelsСписок моделей, доступных в протоколе Anthropic.

Потоковые ответы (stream) работают так же, как у провайдеров. В протоколе Anthropic доступны модели, для которых хаб умеет считать токены: сейчас это все, кроме моделей z.ai и Moonshot AI.

Примеры​

curl https://hub.coreinfra.ai/openai/api/v1/responses \
-H "Authorization: Bearer $COREINFRA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-6-sol",
"input": "Объясни кэш промптов в двух предложениях."
}'

Конвертация протоколов​

Codex говорит только на Responses API, Claude Code — только на Messages API, а большинство провайдеров поддерживают Chat Completions. Каждая модель принадлежит одному провайдеру, и если клиент обращается к ней по другому протоколу, хаб переводит запрос, ответ и поток событий между Messages API, Responses API и Chat Completions.

Если у модели есть прямой маршрут для протокола клиента, запрос идёт без конвертации. При переводе могут теряться поля, которых нет в протоколе провайдера.

Изображения​

Изображения во входных данных принимаются только встроенными в запрос в base64: в Messages API — источником типа base64, в Chat Completions и Responses — адресом вида data:image/png;base64,…. Ссылки на внешние изображения и file_id провайдеров отклоняются с ошибкой 400.

Важно

Хаб — шлюз к моделям и должен видеть всё, что получает модель. Внешняя ссылка — канал, по которому провайдер скачал бы данные мимо хаба. Документы и другие файлы это правило не затрагивает.

Ошибки​

Ошибки хаба приходят с кодом 400 и текстом для человека — агенты показывают его как есть. Программам удобнее смотреть на заголовок x-coreinfra-status, а в x-coreinfra-action-url хаб кладёт ссылку на страницу, где проблему можно решить.

СитуацияТекст ошибкиx-coreinfra-status
На балансе недостаточно денегПополните баланс на CoreInfra AI Hub. Баланс: …, зарезервировано: …, доступно: …payment-required
Исчерпан недельный лимитЛимит расходов хаба исчерпанcost-limit-reached
Модель запрещена в настройках хабаМодель … заблокирована настройками хаба—
Модели нет в хабеМодель «…» не поддерживается CoreInfra AI Hub—
Ключ не передан или недействителенТокен отсутствует или недействителен—