Консоль

Документация BasicRouter

Быстрый старт

BasicRouter предоставляет продакшен-командам единый стабильный API для доступа к моделям, маршрутизации, резерва, отслеживания использования и биллинга на основе кредитов. Поставка LLM-токенов осуществляется через доверенные корпоративные облачные аккаунты оригинальных провайдеров, с защитой конфиденциальности, высокой стабильностью и отслеживаемостью запросов, встроенными в шлюз.

Базовый URLhttps://api.basicrouter.ai/api
Совместимо с OpenAIhttps://api.basicrouter.ai/api/v1
Anthropic-messageshttps://api.basicrouter.ai/api/v1
АвторизацияAuthorization: Bearer <key>

Создание ключа API

Создайте ключ API BasicRouter в консоли. Храните ключ на сервере и никогда не раскрывайте его в коде браузера или мобильного клиента.

Рекомендуемая стратегия ключей:

Тип ключаРекомендуемое использование
Ключ для разработкиЛокальная разработка, staging, тестирование и прототипы.
Продакшен-ключТолько для бэкенд-нагрузок в продакшене.
Ключ интеграцииОтдельный ключ для таких инструментов, как Cursor, Claude Code, Codex, Hermes или OpenClaw.
Клиентский / тенантный ключОпциональная изоляция ключей для корпоративных клиентов, трафика тенантов или бизнес-подразделений.

Ротируйте ключи при изменении доступа команды. Отзывайте ключи, которые больше не используются.

Настройте SDK на BasicRouter

Большинству OpenAI-совместимых клиентов нужен только новый базовый URL и ключ API.

import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.BASICROUTER_API_KEY,
  baseURL: "https://api.basicrouter.ai/api/v1"
});

Отправка chat completion

curl --request POST \
  --url https://api.basicrouter.ai/api/v1/chat/completions \
  --header "Authorization: Bearer $BASICROUTER_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{
    "model": "claude-sonnet-5",
    "messages": [
      { "role": "user", "content": "Explain BasicRouter in one sentence." }
    ]
  }'

Проверка использования и баланса

curl --request GET \
  --url https://api.basicrouter.ai/api/v1/billing/balance \
  --header "Authorization: Bearer $BASICROUTER_API_KEY"

Обзор моделей

Используйте страницу «Модели» или API моделей для просмотра доступных текстовых моделей. Метаданные модели включают производителя, обслуживающего провайдера, модальность, длину контекста, поддерживаемые семейства API, поддерживаемые возможности, доступность, ограничения на уровне аккаунта и цены в кредитах.

Конечная точка: GET /v1/models Назначение: Список моделей, доступных текущему аккаунту.

curl --request GET \
  --url https://api.basicrouter.ai/api/v1/models \
  --header "Authorization: Bearer $BASICROUTER_API_KEY"

Матрица возможностей

ВозможностьОписаниеКто обычно использует
streamingПоддерживает потоковую передачу через server-sent events.Чат-приложения, кодинг-агенты, интерактивный UX.
tool_callingПоддерживает вызов инструментов или функций.Агенты, автоматизация рабочих процессов, помощники в кодинге.
structured_outputsПоддерживает вывод, ограниченный схемой, или JSON.Извлечение данных, автоматизация рабочих процессов, корпоративные приложения.
json_modeМожет возвращать вывод в формате JSON.Лёгкие структурированные ответы.
visionПринимает изображения на вход.Мультимодальный чат, анализ UI, скриншоты документов.
prompt_cachingПоддерживает кэширование входных данных или повторное использование контекста.Агенты с длинным контекстом, повторяющиеся системные промпты.
reasoningПоддерживает явное управление рассуждением там, где доступно.Сложное планирование, кодинг, аналитические рабочие процессы.
logprobsПоддерживает вывод вероятностей токенов.Оценка, ранжирование, продвинутые NLP-рабочие процессы.

Матрица совместимости семейств API

Семейство APIТекстВвод изображенийВызов инструментовСтруктурированный выводПотоковая передачаПримечания
OpenAI Chat CompletionsДаЗависит от моделиЗависит от моделиЗависит от моделиДаЛучший вариант по умолчанию для OpenAI-совместимых агентов и SDK.
OpenAI ResponsesДаЗависит от моделиЗависит от моделиЗависит от моделиДаРекомендуется для более новых агентских рабочих процессов в стиле OpenAI.
Anthropic MessagesДаЗависит от моделиЗависит от моделиЗависит от моделиДаЛучший вариант для Claude-совместимых клиентов и Claude Code.
Совместимость Gemini с OpenAIДаЗависит от моделиЗависит от моделиЗависит от моделиДаИспользуйте модели Gemini через OpenAI-совместимые клиенты.
Нативная совместимость GeminiДаЗависит от моделиЗависит от моделиЗависит от моделиДаЛучший вариант для существующих Gemini-native приложений.
Генерация изображений BasicRouterНетЗависит от моделиНетНетНетИспользует асинхронный опрос задач или webhook.
Генерация видео BasicRouterНетЗависит от моделиНетНетНетИспользует асинхронный опрос задач или webhook.

Аутентификация

Каждый API-запрос использует bearer-токен. Храните ключи в серверных переменных окружения, ротируйте их при изменении доступа команды и записывайте идентификаторы запросов для отладки.

ЗаголовокЗначениеПримечания
AuthorizationBearer YOUR_API_KEYОбязателен для каждого запроса.
Content-Typeapplication/jsonОбязателен для JSON-тел запросов.

Рекомендации по безопасности ключей

  1. Храните API-ключи на сервере. Не раскрывайте ключи в браузерном или мобильном клиентском коде.
  2. Используйте отдельные ключи для разработки, staging-окружения, продакшена и сторонних интеграций.
  3. Ограничивайте область действия ключей по окружению, сервису, клиенту или тенанту при наличии.
  4. Ротируйте ключи после ухода сотрудников, изменения доступа подрядчиков или при подозрении на утечку.
  5. Храните ключи в менеджерах секретов или переменных окружения, а не в исходном коде.

Использование консоли

Консоль BasicRouter — это операционная плоскость управления для доступа к API, доступности моделей, политик маршрутизации, мониторинга использования и администрирования биллинга. Она предоставляет администраторам аккаунта централизованное представление ключей, моделей, запросов, кредитов и средств управления на уровне аккаунта для продакшен-трафика моделей.

Управление ключами API

Создавайте, ротируйте, отзывайте и помечайте API-ключи из консоли. Используйте отдельные ключи для разработки, staging-окружения, продакшена и отдельных сервисов, чтобы использование можно было аудировать и изолировать по окружению или приложению.

ПрактикаОписание
Раздельные окруженияИспользуйте разные API-ключи для разработки, staging-окружения и продакшен-трафика.
Используйте описательные меткиПомечайте ключи по приложению, сервису, окружению или интеграции.
Регулярная ротацияРотируйте ключи при изменении доступа или возможном раскрытии учетных данных.
Избегайте раскрытия на стороне клиентаХраните API-ключи только на серверных системах. Не раскрывайте ключи в браузерном или мобильном клиентском коде.
Мониторинг использования ключейПросматривайте объём запросов, потребление кредитов и шаблоны ошибок по ключам.

Список моделей

Используйте страницу «Модели» для просмотра моделей, доступных аккаунту. Каждая запись о модели может включать вендора, обслуживающего провайдера, модальность, поддерживаемые семейства API, длину контекста, флаги возможностей, статус доступности и информацию о ценах.

ФильтрНазначение
ВендорФильтр по вендору модели, такому как OpenAI, Anthropic, Google, Qwen, DeepSeek, или другим провайдерам.
ПровайдерФильтр по обслуживающему или облачному провайдеру.
МодальностьФильтр по поддержке текста, изображений, видео, эмбеддингов, аудио или мультимодальности.
ВозможностьФильтр по потоковой передаче, вызову инструментов, структурированным выводам, зрению, кэшированию промптов или поддержке рассуждений.
ДоступностьОпределяйте модели, которые в настоящее время доступны аккаунту.

Для продакшен-приложений проверяйте возможности моделей перед включением трафика. Некоторые параметры и функции зависят от модели и могут не поддерживаться во всех семействах API.

Использование и журналы

Представление «Использование и журналы» обеспечивает оперативную видимость API-трафика. Команды могут проверять объём запросов, выбранные модели, разрешённые цели маршрутизации, потребление кредитов, задержку, коды ошибок и идентификаторы запросов.

  • Устранение неполадок неудачных запросов.
  • Выявление дорогостоящих рабочих нагрузок.
  • Сравнение использования моделей между приложениями и окружениями.
  • Проверка поведения маршрутизации и резерва.
  • Исследование проблем задержки или доступности провайдера.
  • Предоставление идентификаторов запросов при обращении в поддержку.

Каждый ответ API включает или раскрывает идентификатор запроса BasicRouter. Сохраняйте этот идентификатор в журналах вашего приложения для повышения эффективности отладки в продакшене и эскалации поддержки.

Резерв

Резерв (fallback) — это механизм отказоустойчивости BasicRouter. Когда основная модель или политика маршрутизации даёт сбой, система автоматически переключается на резервную модель, чтобы продолжить обработку запроса. Это сохраняет отзывчивость приложения и минимизирует риск нарушения работы сервиса.

Гарантия высокой доступности
Резерв действует как страховка, поддерживая бесперебойную работу приложения даже при сбое модели, достижении лимита квоты или колебаниях сети.

Почему важен резерв

В продакшене сервисы моделей могут столкнуться с рядом непредсказуемых проблем:

  • Сбой сервиса модели: вышестоящий API временно недоступен или превышает время ожидания.
  • Колебания производительности: высокая нагрузка на модель приводит к медленным или неудачным ответам.
  • Сбой маршрутизации: все модели-кандидаты, выбранные умной маршрутизацией, становятся недоступными.

Резерв поддерживает доступность вашего приложения, предоставляя надёжный резервный путь.

Ключевые преимущества

ПреимуществоОписание
Высокая доступностьАвтоматическое переключение при сбое поддерживает работу сервиса и снижает влияние простоев.
Прозрачное переключениеСистема переключает модели автоматически — изменения кода приложения не требуются.
Гибкая конфигурацияПоддерживается конфигурация как на уровне запроса, так и на уровне аккаунта для разных сценариев.
Оптимизация затратВыберите более экономичную модель в качестве резерва для контроля затрат в экстренных случаях.
Централизованное управлениеНастройте один раз на уровне аккаунта, и это автоматически применяется к каждому запросу.

Глобальная конфигурация резервной модели

BasicRouter поддерживает настройку глобальной резервной модели из бэкенда консоли. Все запросы автоматически используют эту модель в качестве резерва при сбое.

Как настроить:

  1. Перейдите на страницу настроек стратегии BasicRouter.
  2. Найдите настройку Модель резерва по умолчанию.
  3. Выберите вашу глобальную резервную модель из выпадающего списка.
  4. Сохраните настройку, чтобы применить её немедленно.

Преимущества глобальной конфигурации:

  • Изменения кода не требуются: настройте один раз, и это применяется глобально, без необходимости повторять настройку в каждом запросе.
  • Централизованное управление: управляйте политикой резерва в одном месте для более удобной корректировки и мониторинга.
  • Упрощённое обслуживание: снижает сложность кода и вероятность ошибок конфигурации.
  • Гибкое переопределение: конфигурация резерва на уровне запроса имеет приоритет и может переопределять глобальную настройку для конкретных сценариев.

Конфигурация резерва на уровне запроса

Для конкретных бизнес-сценариев можно указать резервную модель в отдельном запросе, чтобы переопределить глобальную конфигурацию.

Укажите резервную модель с помощью параметра router.fallBackModels:

{
  "model": "claude-sonnet-4",
  "messages": [
    {
      "role": "user",
      "content": "Explain what quantum computing is"
    }
  ],
  "router": {
    "fallBackModels": ["glm-5.2"]
  }
}

Правила приоритета

При наличии нескольких конфигураций резерва приоритет распределяется от высшего к низшему:

  1. router.fallBackModels на уровне запроса: резервная модель, указанная в отдельном запросе.
  2. Глобальная модель резерва по умолчанию: глобальная резервная модель, настроенная в консоли.
  3. Без резерва: если ни одна из них не настроена, запрос возвращает ошибку при сбое.
⚠ Важные примечания
  • Если все резервные модели дают сбой, система возвращает причину сбоя последней испробованной модели.
  • При срабатывании резерва ответ указывает фактически использованную модель, что облегчает мониторинг и анализ.

Администрирование аккаунта

В зависимости от типа аккаунта консоль может включать включение моделей на уровне аккаунта, элементы управления реселлером или дистрибьютором, конфигурацию биллинга и настройки доступа. Администраторы могут использовать эти элементы управления для согласования доступа к моделям, видимости использования и ответственности за биллинг с приложениями, клиентскими аккаунтами или бизнес-подразделениями.

Контрольный список производственных операций

ПунктРекомендация
API-ключиИспользуйте выделенные продакшен-ключи с понятными метками.
МоделиПодтвердите доступность модели, цены, длину контекста и требуемые возможности.
МаршрутизацияНастройте псевдонимы маршрутизации или политики резерва для критически важных рабочих нагрузок.
ЖурналыУбедитесь, что идентификаторы запросов фиксируются в журналах приложения.
БиллингПодтвердите баланс кошелька, статус тарифа и правила списания кредитов.
Ограничения скоростиПросмотрите RPM, TPM, параллелизм и лимиты медиазадач на уровне аккаунта.
ОповещенияОтслеживайте рост использования, баланс кредитов, ошибки и доступность провайдера.

Биллинг и кредиты

BasicRouter использует модель биллинга на основе кредитов для текстовых, графических, видеоматериалов и других поддерживаемых рабочих нагрузок моделей. Кредиты предоставляют единую единицу измерения для использования нескольких моделей и провайдеров, что позволяет командам согласованно управлять потреблением между модальностями и семействами API.

Подробная информация о ценах на модели доступна на странице «Модели» или через API метаданных моделей. Цены могут различаться в зависимости от модели, провайдера, модальности, разрешения, типа токенов, длины вывода, длительности задачи, типа аккаунта и коммерческого соглашения.

Пополнение и кошелёк

Аккаунты могут добавлять кредиты на кошелёк с оплатой по факту использования для гибкого использования. Кредиты кошелька используются после того, как кредиты месячного тарифа и пакеты ресурсов будут израсходованы, если к аккаунту не применяется пользовательское правило биллинга.

Кредиты кошелька не истекают, если иное не указано в применимых коммерческих условиях. При пополнении кошелька с оплатой по факту использования взимается сервисный сбор.

Месячные тарифы и пакеты ресурсов

Каждый пользователь или аккаунт может выбрать один активный месячный тариф. Месячные тарифы предоставляют определённый объём пропускной способности использования, коммерческие условия и конфигурацию доступа на уровне аккаунта для расчётного периода.

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

Порядок списания

Если не настроены пользовательские правила биллинга, кредиты списываются в следующем порядке:

ПриоритетИсточник кредитовОписание
1Месячный тарифВключённая месячная пропускная способность использования расходуется первой.
2Пакеты ресурсовДополнительно приобретённые пакеты расходуются после кредитов месячного тарифа.
3Кошелёк с оплатой по фактуБаланс кошелька расходуется после кредитов тарифа и пакетов ресурсов.

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

Индивидуальное ценообразование

Ценообразование может быть настроено для каждого пользователя или аккаунта. Корпоративные клиенты, аккаунты реселлеров, аккаунты дистрибьюторов и клиенты с большим объёмом использования могут иметь право на индивидуальное ценообразование. Свяжитесь с отделом продаж для получения предложения.

Индивидуальное ценообразование может быть настроено по аккаунту, модели, провайдеру, модальности, региону, объёму использования или коммерческому соглашению. Когда включено индивидуальное ценообразование, консоль и API биллинга отражают специфичные для аккаунта цены и правила списания там, где это доступно.

Единицы ценообразования

Разные модальности моделей используют разные единицы измерения. BasicRouter конвертирует эти единицы в кредиты в соответствии с правилами ценообразования модели.

МодальностьОбычная основа ценообразования
ТекстВходные токены, выходные токены, кэшированные токены чтения, кэшированные токены записи, токены рассуждений или специфичные для модели категории токенов.
ИзображениеМодель, разрешение, количество сгенерированных изображений, использование входных изображений, режим редактирования или настройка качества.
ВидеоМодель, разрешение вывода, сгенерированные секунды, соотношение сторон, использование входных изображений или видео и тип задачи.
ЭмбеддингиВходные токены или количество записей эмбеддингов.
АудиоДлительность ввода, длительность вывода, длина транскрипции или специфичные для модели единицы аудио.

Единицы ценообразования могут различаться в зависимости от модели. Всегда обращайтесь к странице сведений о модели или метаданным цен перед включением модели в продакшене.

Атрибуция использования

Использованием BasicRouter можно просматривать по аккаунту, API-ключу, модели, модальности или диапазону времени. Это позволяет командам относить затраты к приложениям, окружениям, клиентам или внутренним бизнес-подразделениям.

ИзмерениеОписание
API-ключГруппировка использования по приложению, сервису или окружению.
МодельСравнение затрат и объёма по выбранной модели.
Разрешённая модельПросмотр фактически использованной модели после маршрутизации или резерва.
МодальностьРазделение использования текста, изображений, видео, эмбеддингов и аудио.
Диапазон времениПросмотр дневных, месячных или пользовательских отчётных периодов.
МетаданныеГруппировка использования по пользовательским метаданным запроса, таким как ID клиента, ID тенанта, ID пользователя или окружение.

Баланс кредитов

Проверьте, сколько кредитов доступно на вашем аккаунте. Баланс разделён на три кошелька, которые списываются по порядку: месячный лимит тарифа, приобретённые пакеты ресурсов и кошелёк с оплатой по факту. Также доступен общий ресурсный итог (месячный тариф + пакеты ресурсов, без учёта оплаты по факту) для отслеживания включённого использования отдельно от расходов на пополнение.

Чтобы получить эти данные программно, см. GET /v1/billing/balance в Справочнике API.

Сведения об использовании

Просматривайте постраничный хронологический список отдельных записей об использовании для отчётности, мониторинга и внутреннего распределения затрат. Каждая запись показывает модель, тип модели (текст, изображение или видео), списанные кредиты и разбивку того, из какого кошелька было произведено каждое списание. Результаты можно фильтровать по конкретному диапазону времени.

Чтобы получить эти данные программно, см. GET /v1/usage в Справочнике API.

История транзакций

Используйте историю транзакций для просмотра движений кредитов, включая пополнения, распределения по тарифам, предоставления пакетов ресурсов, списания за использование, корректировки и административные исправления.

Чтобы получить эти данные программно, см. GET /v1/billing/transactions в Справочнике API.

Неудачные запросы и возвраты

Ошибки валидации, ошибки аутентификации и ошибки разрешений, как правило, не оплачиваются, поскольку выполнения модели не происходит. Запросы, достигающие вышестоящей модели или генерирующие частичный вывод, могут потреблять кредиты в зависимости от модели, провайдера и состояния ответа.

Для асинхронных задач генерации изображений и видео поведение биллинга зависит от того, была ли задача принята, начата, завершена, выполнена с ошибкой или отменена. Ответ с деталями задачи включает информацию об использовании, когда кредиты были потреблены.

Пополнения, месячные тарифы, пакеты ресурсов и потреблённые кредиты возврату не подлежат, если иное не предусмотрено применимым коммерческим соглашением или не требуется по закону.

Эксплуатация

Ошибки

BasicRouter возвращает стабильные коды ошибок, чтобы приложения могли единообразно обрабатывать повторы, резервирование, проблемы с биллингом и отладку.

Совместимые с провайдерами конечные точки по возможности сохраняют форму ошибок исходного семейства API. Собственные конечные точки BasicRouter используют объект ошибок BasicRouter.

Соответствие HTTP-статусов и кодов ошибок

HTTP-статусТип ошибкиПримеры кодовПовтор
400invalid_request_errorinvalid_request, unsupported_parameter, invalid_messages, invalid_image_urlНет
401authentication_errormissing_api_key, invalid_api_keyНет
402billing_errorinsufficient_credits, payment_required, quota_exceededНет
403permission_errormodel_access_denied, endpoint_access_denied, key_scope_deniedНет
404not_found_errormodel_not_found, response_not_found, task_not_foundНет
408timeout_errorgateway_timeout, provider_timeoutДа
409conflict_erroridempotency_conflict, task_already_cancelledЗависит
422validation_errorschema_validation_failed, unsupported_modalityНет
429rate_limit_erroraccount_rpm_exceeded, account_tpm_exceeded, provider_rate_limitedДа
500internal_errorinternal_errorДа
502provider_errorprovider_bad_gateway, provider_invalid_responseДа
503service_unavailablemodel_unavailable, provider_unavailable, insufficient_capacityДа
504timeout_errorprovider_timeout, gateway_timeoutДа

Частые коды ошибок

КодЗначениеРекомендуемое действие
missing_api_keyAPI-ключ не предоставлен.Добавьте заголовок Authorization.
invalid_api_keyAPI-ключ недействителен или отозван.Создайте или смените API-ключ.
model_not_foundИдентификатор модели не существует или не включён для аккаунта.Проверьте страницу «Модели» или вызовите GET /v1/models.
model_access_deniedAPI-ключ или аккаунт не имеет доступа к модели.Включите модель или обратитесь к администратору.
unsupported_parameterЗапрос содержит параметр, не поддерживаемый выбранной конечной точкой или моделью.Удалите параметр или выберите совместимую модель.
unsupported_modalityМодальность ввода или вывода не поддерживается выбранной моделью.Выберите модель, поддерживающую эту модальность.
account_rpm_exceededПревышен лимит запросов аккаунта в минуту.Повторите с backoff или запросите большие лимиты.
account_tpm_exceededПревышен лимит токенов аккаунта в минуту.Повторите с backoff, уменьшите количество токенов или запросите большие лимиты.
provider_rate_limitedВышестоящий провайдер ограничил частоту запросов.Повторите или включите резервирование.
insufficient_creditsНа аккаунте недостаточно кредитов.Пополните кошелёк, купите пакет или повысьте тариф.
provider_timeoutВышестоящий провайдер не ответил вовремя.Повторите или включите резервирование.
model_unavailableМодель временно недоступна.Повторите или используйте алиас маршрутизации.
content_policy_errorЗапрос или вывод заблокированы политикой безопасности.Измените ввод или выберите подходящий рабочий процесс.