Уровни обслуживания (Service Tiers)

Некоторые провайдеры продают одну и ту же модель в нескольких уровнях обслуживания: обычная ёмкость, более дешёвая с низким приоритетом обработки и приоритетная с более высокой ценой. Каждый уровень — это отдельный эндпоинт модели со своим тегом и своей ценой. По умолчанию запрос обслуживается на стандартном уровне.

Уровни обслуживания

Уровень Также называется Что даёт
default standard Обычная ёмкость провайдера и обычная цена
flex — Ниже цена, ниже приоритет обработки
priority fast Приоритетная обработка, выше цена
ultrafast — Уровень выше priority; только у отдельных моделей OpenAI и только по явному указанию

priority и fast — два написания одного уровня, в запросе можно использовать любое. Провайдеры по-разному называют свои приоритетные эндпоинты (fast, turbo, highspeed, prime), и это название попадает в тег эндпоинта — например, deepinfra/turbo. При этом запрос с service_tier: "priority" или service_tier: "fast" обслуживается любым из них.

Каждый уровень — самостоятельный эндпоинт модели, а не вариант имени модели. В каталоге /models тарифные эндпоинты видны в информации о провайдере: на каждый уровень отдельная секция, а тег уровня указан рядом с именем эндпоинта — например, openai/flex, openai/fast или openai/ultrafast.

Параметр service_tier

Уровень задаётся необязательным параметром service_tier в теле запроса — на верхнем уровне, рядом с model. Параметр поддерживается в /v1/chat/completions, /v1/responses и /v1/messages.

Значение Поведение
default Стандартный уровень. Дополнительно исключает приоритетные эндпоинты open-weight моделей из пула
flex Дешёвый уровень с низким приоритетом обработки
priority Приоритетная обработка
fast То же, что priority
ultrafast Уровень выше priority (только модели, у которых он есть)

Пример запроса на уровне flex:

curl https://api.ru-openrouter.ru/v1/chat/completions \
  -H "Authorization: Bearer sk_ваш_api_ключ" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-5",
    "service_tier": "flex",
    "messages": [{"role": "user", "content": "Привет!"}]
  }'

Если параметр не указан, используется стандартный уровень.

Выбор уровня через slug эндпоинта

У каждого уровня есть собственный slug эндпоинта: к slug стандартного эндпоинта добавляется уровень последним сегментом. Примеры: openai/fast, openai/ultrafast, google-vertex/global/flex, baseten/fp4/us/priority. Суффиксы fast и priority взаимозаменяемы — оба указывают на один и тот же приоритетный эндпоинт.

Указать тир-слаг можно в provider.order или provider.only:

{
  "model": "openai/gpt-5",
  "messages": [{"role": "user", "content": "Привет!"}],
  "provider": {
    "only": ["openai/fast"]
  }
}
{
  "model": "openai/gpt-5",
  "messages": [{"role": "user", "content": "Привет!"}],
  "provider": {
    "order": ["openai/fast", "openai"],
    "allow_fallbacks": false
  }
}

Базовый slug без суффикса (openai) матчит все эндпоинты провайдера, включая тарифные варианты.

Маршрутизация и резервные варианты

Уровни, отличные от стандартного (flex, priority, ultrafast), запрашиваются явно — параметром service_tier или тир-слагом в provider.order / provider.only. Без этого запрос на них не попадает.

Исключение — приоритетные эндпоинты open-weight моделей: они участвуют в обычной маршрутизации и могут обслужить запрос без явного указания уровня. service_tier: "default" исключает их из пула, и запрос обслуживается по стандартному тарифу.

Поведение при выборе уровня:

  • priority — приоритетные эндпоинты пробуются первыми, при их недоступности запрос уходит на обычные. Внутри группы эндпоинты сортируются по скорости; provider.sort или provider.order заменяют эту сортировку своим порядком.
  • flex — flex-эндпоинты пробуются первыми, сортировка по цене. Резерв ограничен ценой: запрос уходит только на эндпоинты, у которых и вход, и выход не дороже flex. Если таких нет (например, у модели один провайдер и его flex — самый дешёвый вариант), возвращается ошибка ёмкости, как при прямом вызове провайдера. Если flex-эндпоинтов у модели нет вообще, запрос обслуживается по обычным ценам.
  • ultrafast — порядок такой: сначала ultrafast-эндпоинты, затем priority, затем обычные. Уровень не выбирается ни :nitro, ни service_tier: "priority", ни сортировкой provider.sort — только явным указанием service_tier: "ultrafast" или тир-слагом.

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

Уровень в ответе

Поле service_tier в ответе сообщает, какой уровень фактически обслужил запрос. Возможные значения: default, flex, priority, ultrafast и null, если уровень недоступен или провайдер его не сообщает.

Расположение поля зависит от API:

API Где находится поле
/v1/chat/completions На верхнем уровне объекта ответа
/v1/responses На верхнем уровне объекта ответа
/v1/messages Внутри usage; вместо default возвращается standard — как в спецификации Anthropic

Пример для Chat Completions:

{
  "id": "gen-1750000000-AbCdEf",
  "object": "chat.completion",
  "model": "openai/gpt-5",
  "service_tier": "priority",
  "choices": [
    {
      "index": 0,
      "message": {"role": "assistant", "content": "Привет!"},
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 9,
    "completion_tokens": 3,
    "total_tokens": 12
  }
}

Пример для Messages API:

{
  "id": "msg_01AbCdEf",
  "type": "message",
  "role": "assistant",
  "content": [{"type": "text", "text": "Привет!"}],
  "model": "openai/gpt-5",
  "stop_reason": "end_turn",
  "usage": {
    "input_tokens": 9,
    "output_tokens": 3,
    "service_tier": "priority"
  }
}

Суффиксы :nitro и :floor

Суффиксы :nitro и :floor в имени модели управляют сортировкой провайдеров: :nitro сортирует по скорости (provider.sort = "throughput"), :floor — по цене (provider.sort = "price"). Уровень обслуживания они не переключают: чтобы запрос обслуживался на flex, priority или ultrafast, укажите service_tier или тир-слаг.

Примечания

  • Названия уровней у провайдеров (turbo, highspeed, prime) — это ярлыки эндпоинтов, а не значения для service_tier. В запросе используйте priority или fast.
  • ultrafast — отдельный уровень, а не ещё одно написание priority. Если у модели нет ultrafast-эндпоинта, запрос с service_tier: "ultrafast" обслуживается как priority.
  • Отдельные модели с суффиксом -fast в имени устарели: вместо них используется обычная модель с service_tier: "fast".