GETAPI
СвязатьсяВойти
GETAPI/Документация/OpenRouter и выбор провайдера

OpenRouter и выбор провайдера

Исполнители моделей, маршрутизация, Batch и Rerank

Модели и исполнители

Модели GetAPI подключены через OpenRouter. Вендор создаёт модель, провайдер исполняет запрос. Например, модель OpenAI может работать через OpenAI или Azure

GetAPI предоставляет общий каталог моделей. Используйте точный id из ответа GET /v1/models, независимо от семейства

Для доступных текстовых моделей базовый вариант интеграции описан в Chat Completions

Выбор провайдера

Откройте страницу модели в каталоге личного кабинета и выберите доступного провайдера. В запросе используется его идентификатор, например openai или azure

Объект provider передаётся на верхнем уровне JSON рядом с model и messages

bash
curl https://api.getapi.ru/v1/chat/completions \
  -H "Authorization: Bearer $GETAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-4o-mini",
    "messages": [{"role": "user", "content": "Ответь одним словом: привет"}],
    "max_tokens": 32,
    "provider": {
      "only": ["openai"],
      "allow_fallbacks": false
    }
  }'

Не добавляйте провайдера к ID модели. Для выбора Azure оставьте model: "gpt-4o-mini" и задайте provider.only: ["azure"]

Поле providerНазначение
onlyРазрешённые исполнители для запроса
orderПорядок предпочтения провайдеров
ignoreПровайдеры, которых нужно исключить
allow_fallbacksРазрешение использовать запасных исполнителей, по умолчанию true
sortПриоритет по price, latency или throughput
require_parametersВыбор исполнителя, поддерживающего все запрошенные параметры
max_priceВерхняя цена исполнителя, поля prompt и completion задаются в USD за миллион токенов
quantizationsОграничение по доступным вариантам квантования

order задаёт предпочтение. Для ограничения одним исполнителем используйте only и allow_fallbacks: false

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

max_price ограничивает тариф исполнителя, итоговое списание GetAPI рассчитывается с курсом и коэффициентом группы. Нулевой предел исключает платные endpoints и может привести к no compatible priced endpoint

Сейчас require_parameters: true у gpt-4o-mini, gpt-5-nano, claude-sonnet-5.5 и gemini-2.5-flash-lite приводит к no compatible priced endpoint, в том числе в простом текстовом запросе. Для такого запроса опустите флаг, поддержку необходимых параметров проверяйте по результату

Фильтр quantizations может исключить всех исполнителей модели. Учитывайте доступные значения конкретного endpoint

Методы API

Форма запроса зависит от метода. provider текстового API нельзя без проверки переносить на аудио и видео

МетодИспользование provider
Chat CompletionsОбъект рядом с model и messages
ResponsesОбъект рядом с model и input
MessagesОбъект рядом с model, messages и max_tokens
EmbeddingsОбъект рядом с model и input
RerankОбъект рядом с model, query и documents
Images APIonly, order, ignore, sort, allow_fallbacks для поддерживаемых маршрутов
Batchonly и allow_fallbacks на уровне задания
Speech и Transcriptionsprovider.only не поддерживается, запрос отклоняется с provider_routing
VideoНастройки видеопровайдера имеют отдельную схему, см. видео

Набор исполнителей проверяйте для конкретной модели и операции. Каталог OpenRouter помогает найти исходные возможности модели, доступность маршрута GetAPI проверяется отдельным запросом

Проверка результата

Поле provider в ответе содержит имя фактического исполнителя, если метод его возвращает. Например, для provider.only: ["azure"] это "Azure"

Сохраняйте id ответа, идентификатор запроса и usage. Они нужны для сопоставления с журналом расходов

Наличие поля в принятом запросе не подтверждает применение настройки. Например, неподдерживаемый параметр генерации может быть проигнорирован или отклонён провайдером

Если исполнитель недоступен

Список провайдеров и цены могут меняться. Запрос отклоняется, если при заданных ограничениях не осталось совместимых доступных исполнителей

model_price_error с сообщением no compatible priced endpoint означает, что для условий запроса не найден подходящий endpoint с ценой. Проверьте ID модели, only, ignore, ограничения параметров и текущий список провайдеров

Сообщение model has no available endpoints означает отсутствие доступных upstream endpoints модели. Наличие модели в каталоге само по себе не обеспечивает её выполнение

Ошибки upstream_error содержат сведения об отказе провайдера. При 429 учитывайте источник ограничения и время ожидания. Не повторяйте запрос с заведомо неверным провайдером без изменения условий

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

Стоимость

Провайдеры одной модели могут иметь разные тарифы. Окончательное списание рассчитывается по фактической стоимости выполненного запроса с курсом расчёта и коэффициентом группы

Предварительный резерв и окончательное списание различаются. Подробности: стоимость и учёт

Что различается

ОбластьВозможные различия
СообщенияПоддерживаемые роли и мультимодальные блоки
ГенерацияДопустимые параметры и бюджет вывода
ИнструментыПоддержка tools, выбор и число вызовов
JSONJSON mode, JSON Schema или только текст
ПотокСостав событий, дополнительные поля, расположение usage
РассужденияОтдельные поля, режимы и счётчики
СтоимостьТарифы входа, выхода, кеша и медиа

Не связывайте схему ответа только с названием провайдера. На неё влияют модель, версия и формат API

Подключение

  1. Получите точный ID
  2. Выберите формат API
  3. Выполните минимальный текстовый запрос
  4. Добавьте необходимые возможности по одной
  5. Проверьте обработку ошибок и завершения потока

Ограничения конкретной модели сохраняются при работе через общий API

Примеры расширенных сценариев: инструменты, JSON, рассуждения

Пакетные задания Batch

POST https://api.getapi.ru/v1/batches

Задание содержит одну модель, один метод и массив запросов. Используйте обычный ID модели без суффикса :batch, наличие отдельного batch-варианта смотрите в каталоге

bash
curl --fail-with-body https://api.getapi.ru/v1/batches \
  -H "Authorization: Bearer $GETAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "endpoint": "/v1/chat/completions",
    "model": "gpt-5-nano",
    "completion_window": "24h",
    "requests": [
      {
        "custom_id": "request-1",
        "body": {
          "messages": [{"role": "user", "content": "Ответь одним словом: готово"}],
          "max_tokens": 1024
        }
      }
    ]
  }'

Каждый custom_id должен быть уникален внутри задания. endpoint, model, provider и completion_window размещайте на верхнем уровне рядом с requests

Ответ 202 содержит ID задания и означает его приём. Сохраняйте ID до дальнейших действий

ДействиеМетод
Прочитать состояниеGET /v1/batches/{id}
Получить результатыGET /v1/batches/{id}/results

В состоянии проверяйте status, request_count, result_count, settled_count, billing_status, reserved_quota и charged_quota, если они присутствуют

Запрос отмены POST /v1/batches/{id}/cancel может вернуть unsupported_operation, если провайдер не поддерживает отмену. Такой ответ не подтверждает отмену задания и возврат резерва, продолжайте проверять тот же ID

validating и in_progress не означают готовый результат. При failed читайте error

Расчёт проверяйте отдельно: billing_status: "settled", нулевой reserved_quota и итоговый charged_quota. При reconciliation_required сохраняйте ID и сумму резерва, освобождение денег ещё не подтверждено. Повторно читайте то же задание и сверяйте связанные проводки в журнале

Результаты возвращаются построчно в JSONL. Каждая строка содержит custom_id, status_code, body и сведения об ошибке. Сопоставляйте строки по custom_id, порядок не гарантируется

Выбор исполнителя задаётся объектом provider уровня задания, например {"only": ["openai"], "allow_fallbacks": false}. Доступность batch у провайдера проверяется отдельно от синхронного вызова

После таймаута не создавайте второе задание вслепую. Сначала проверьте сохранённый ID и журнал, см. повторы

Ранжирование Rerank

POST https://api.getapi.ru/v1/rerank

json
{
  "model": "qwen3-reranker-8b",
  "query": "красный квадрат",
  "documents": ["синий круг", "красный квадрат"],
  "top_n": 1,
  "provider": {"only": ["fireworks"], "allow_fallbacks": false}
}

Ответ содержит массив results с index исходного документа и relevance_score. Если возвращён блок document, его текст дополняет индекс, но не заменяет сопоставление с исходным списком

Не вызывайте rerank через Chat Completions. Модель, провайдер и тариф должны поддерживать операцию ранжирования

Назад
← Модели Anthropic
Далее
Messages и GenerateContent →