Справочник по API
SUB&SUB предоставляет мультипровайдерный релей по адресу https://api.subnsub.com/v1. OpenAI-клиенты обращаются к /v1/chat/completions; Anthropic-клиенты — к /v1/messages. Один и тот же ключ sk-cf-... маршрутизирует оба — выберите модель в теле запроса, и релей сам подберёт upstream.
Доступность сервиса
Быстрый старт
Для существующего аккаунта с доступом к API нужны три вещи:
- Base URL:
https://api.subnsub.com/v1(OpenAI-клиенты) илиhttps://api.subnsub.com(Anthropic-клиенты — SDK сам добавляет/v1/messages) - API-ключ:
sk-cf-..., выданный в консоли - Модель: одна из 16 поддерживаемых моделей – например.
gpt-5.4-miniилиclaude-sonnet-5
Аутентификация
Каждый запрос должен содержать заголовок Authorization: Bearer sk-cf-.... Ключи выдаются в консоли и хранятся в виде SHA-256-хешей — как только вы покинете экран создания, открытый текст исчезнет навсегда, поэтому сохраните его сразу.
Эндпоинты
Стабильный публичный интерфейс описан ниже и в машиночитаемом документе OpenAPI 3.1. Не указанные здесь поля могут передаваться upstream-провайдеру, но автоматически не становятся частью гарантий совместимости SUB&SUB.
POST /v1/chat/completions
Отправьте запрос на завершение чата. Структура запроса совпадает с OpenAI Chat Completions API — OpenAI SDK работают без изменений.
| Параметр | Тип | Описание |
|---|---|---|
| model | string | Один из проверенных ID моделей. |
| messages | array | История диалога. Каждый элемент: {role, content}, где role ∈ system / user / assistant. |
| stream | boolean | Если true, ответ отправляется как SSE-чанки. См. Стриминг. |
| stream_options | object | Необязательный. Релей всегда принудительно передаёт upstream {include_usage: true}, чтобы финальный чанк содержал блок с расходом токенов — переопределение не имеет эффекта. |
| max_tokens | integer | Ограничивает длину ответа. По умолчанию — максимум модели. |
| temperature | number | 0 – 2. Выше = больше случайности. |
POST /v1/responses
OpenAI Responses API — новая форма запроса OpenAI (client.responses.create(...)). Работает со всеми моделями каталога: gpt-* изначально, claude-* через тот же мост совместимости, что и чат/дополнения. Использование измеряется одинаково — токены ввода/вывода по уровневой ставке модели.
| Параметр | Тип | Описание |
|---|---|---|
| model | string | Любой идентификатор модели по каталогу. |
| input | string | array | Подсказка — простая строка или список структурированных элементов, определяемый Responses API. |
| max_output_tokens | integer | Ограничивает длину ответа (обоснование + видимый результат вместе взятые). |
| reasoning | object | {"effort": "..."} — те же пять значений, что и у reasoning_effort. |
| stream | boolean | Если true, передается стандартная последовательность ответов SSE: response.created, response.output_text.delta, …, response.completed. |
| background | boolean | Не поддерживается. background: true возвращает 400 unsupported_background_mode — реле обслуживает только синхронные запуски. |
:online не влияет на эту конечную точку — суффикс удаляется, но контекст поиска не вводится (запросы извлекаются из messages, которые не передаются в ответах). Используйте /v1/chat/completions или /v1/messages для веб-поиска.
Готовый к запуску пример Responses:
curl https://api.subnsub.com/v1/responses \
-H "Authorization: Bearer sk-cf-xxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.4-mini",
"input": "Explain exponential backoff in two sentences."
}'
POST /v1/messages
Нативный эндпоинт Anthropic для моделей claude-* — Anthropic SDK (anthropic-sdk-python, @anthropic-ai/sdk, claude-code) работают без изменений с этим путём. Укажите base URL https://api.subnsub.com и аутентифицируйтесь через заголовок x-api-key (форма Authorization-Bearer тоже работает, если ваш клиент её предпочитает).
| Параметр | Тип | Описание |
|---|---|---|
| model | string | ID модели claude-* (см. Доступные модели). Передача здесь OpenAI-модели возвращает 400 invalid_request_error. |
| max_tokens | integer | Требуется Anthropic — ограничивает длину ответа ассистента. |
| messages | array | История диалога в формате Anthropic: {role, content}, где role ∈ user / assistant. |
| stream | boolean | Если true, возвращает стандартную последовательность SSE-событий Anthropic: message_start, content_block_delta, message_delta, message_stop. |
| thinking | object | Дословно отправлено на Anthropic. Используйте {"type":"adaptive"}, если это поддерживается; Fable 5 всегда использует адаптивное мышление, даже если это поле опущено. Синтетических идентификаторов моделей -thinking нет. |
| cache_control | object | Поддерживается prompt-кэширование. Токены записи в кэш тарифицируются по 1.25×, а токены чтения из кэша — по 0.10× от ставки input соответствующего тира. |
Готовый к запуску пример Anthropic Messages:
curl https://api.subnsub.com/v1/messages \
-H "x-api-key: sk-cf-xxxxxxxxxxxx" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"model": "claude-sonnet-5",
"max_tokens": 256,
"messages": [{"role": "user", "content": "Hello"}]
}'
POST /v1/messages/count_tokens
Подсчитайте токены запроса в формате Anthropic перед отправкой. Используйте те же поля x-api-key, anthropic-version, model, system, messages и tools, что и для /v1/messages. Этот endpoint не тарифицируется. Суффикс :online удаляется, но результаты поиска не запрашиваются и не учитываются.
curl https://api.subnsub.com/v1/messages/count_tokens \
-H "x-api-key: sk-cf-xxxxxxxxxxxx" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"model": "claude-sonnet-5",
"messages": [{"role": "user", "content": "Count this prompt."}]
}'
GET /v1/models
Перечислите модели, которые вы действительно можете использовать. Ретранслятор проверяет работоспособность обоих вышестоящих семейств и возвращает 16 проверенных общедоступных идентификаторов — тот же белый список, который используют конечные точки POST, поэтому обнаружение никогда не рекламирует модель, которая будет 400. Если восходящий каталог недоступен, конечная точка возвращает 502 models_unreachable, а не вводящий в заблуждение пустой список.
# sample response (truncated)
{
"object": "list",
"data": [
{ "id": "gpt-5.4-mini", "type": "model", ... },
{ "id": "gpt-5.4", "type": "model", ... },
{ "id": "claude-sonnet-5", "type": "model", ... },
{ "id": "claude-fable-5", "type": "model", ... },
...
]
}
Гарантии совместимости
Совместимость с OpenAI не означает, что каждое поле каждой upstream-модели гарантировано на каждом маршруте. Есть три уровня поддержки:
| Статус | Детали |
|---|---|
| Документировано и стабильно | Генерация текста через четыре endpoint выше; синхронные и потоковые ответы; документированные настройки reasoning; кэширование промптов Anthropic; :online для Chat Completions и Messages; аутентификация, учёт и документированные форматы ошибок. |
| Сквозная передача, зависит от модели | Вызов инструментов/функций, strict tools, структурированный вывод/JSON Schema, параметры семплирования, стоп-последовательности, multipart-содержимое, включая изображения и документы, а также лимиты контекста/вывода модели. Edge передаёт эти поля без локальной проверки, но поддержка и точная форма ответа зависят от модели и протокола. Проверьте конкретную модель и payload до запуска в production; нормализация между провайдерами не гарантируется. |
| Не предоставляется | Фоновые запуски Responses; :online для Responses; API OpenAI для генерации изображений, Audio, Realtime, Batch, Files, Embeddings и Moderation; синтетические алиасы Claude с -thinking; уровень reasoning effort minimal OpenAI. |
Доступные модели
Две семьи вверх по течению. 7 моделей OpenAI направляются к общим учетным записям уровня ChatGPT; 9 моделей Claude обслуживаются официальными аккаунтами Anthropic. Ставки за токен зависят от уровня (см. Цены) — для обоих работает один и тот же ключ.
OpenAI
| ID модели | Семейство | Тир | Примечания |
|---|---|---|---|
| gpt-5.4-mini | GPT-5.4 | Mini | Быстрая и дешёвая. Рекомендуемый вариант по умолчанию для чата и кодинга. |
| gpt-5.4 | GPT-5.4 | Standard | Полноразмерная GPT-5.4 — медленнее, более сильное рассуждение. |
| gpt-5.4-2026-03-05 | GPT-5.4 | Standard | Снимок gpt-5.4 с указанием даты. |
| gpt-5.5 | GPT-5.5 | Premium | Более новый флагман. |
| gpt-5.6-luna | GPT-5.6 | Luna | Облегченный GPT-5.6 — между Mini и Standard. |
| gpt-5.6-terra | GPT-5.6 | Standard | Средний размер GPT-5.6 — та же ставка, что и gpt-5.4. |
| gpt-5.6-sol | GPT-5.6 | Premium | Лучшие GPT-5.6 — та же ставка, что и gpt-5.5. |
Anthropic
| ID модели | Семейство | Тир | Примечания |
|---|---|---|---|
| claude-fable-5 | Fable 5 | Fable | Самая функциональная и широко распространенная модель Anthropic; адаптивное мышление всегда включено. |
| claude-haiku-4-5-20251001 | Haiku 4.5 | Mini | Самая маленькая Claude — та же потокенная ставка, что и у gpt-5.4-mini. |
| claude-sonnet-4-5-20250929 | Sonnet 4.5 | Standard | Claude среднего тира — та же потокенная ставка, что и у gpt-5.4. |
| claude-sonnet-4-6 | Sonnet 4.6 | Standard | Более новая настройка Sonnet — тир Standard, та же ставка, что и у sonnet-4.5. |
| claude-sonnet-5 | Sonnet 5 | Sonnet 5 Intro | Последний Sonnet; Начальные цены действительны до 31 августа 2026 г. |
| claude-opus-4-5-20251101 | Opus 4.5 | Ultra | Передовая Claude. Тарифицируется по прайс-листу Anthropic — без маржи (см. Тарифы). |
| claude-opus-4-6 | Opus 4.6 | Ultra | Более новая настройка Opus. |
| claude-opus-4-7 | Opus 4.7 | Ultra | Предыдущий снимок Opus. |
| claude-opus-4-8 | Opus 4.8 | Ultra | Последний снимок Opus. |
200 с stop_reason: "refusal" и пустым массивом содержимого. Клиенты должны перейти по stop_reason, а не только по статусу HTTP, и повторить запрос с помощью claude-opus-4-8. Через конечные точки протокола OpenAI тот же результат предоставляется как finish_reason: "content_filter" (чат/завершения) или status: "incomplete" с incomplete_details.reason: "content_filter" (ответы). Отказы на этапе подсказки не списываются с вашего баланса; отказ в середине потока после частичной выдачи тарифицируется как обычно.
gpt-5.2* и gpt-5.3-codex*), простой псевдоним gpt-5.6 (используйте названные варианты выше), варианты OpenAI Pro/image/audio/realtime, идентификаторы точечной нотации (например, claude-sonnet-4.5) и синтетические идентификаторы модели -thinking недоступны. Используйте точные идентификаторы, указанные выше, и собственное поле thinking для Anthropic.
Усилие рассуждения
Каждая приведенная выше модель OpenAI является моделью рассуждения: серверная часть может потратить больше или меньше токенов «обдумывания», прежде чем выдать видимый результат. Установите reasoning_effort в теле запроса OpenAI /v1/chat/completions (или reasoning: {"effort": ...} в /v1/responses), чтобы контролировать бюджет. Для Claude используйте собственные поля Anthropic thinking и output_config.effort — см. раздел /v1/messages. Модели OpenAI принимают одни и те же пять значений усилий:
| Значение | Поведение |
|---|---|
| none | Без размышления — сразу к ответу. Самый дешёвый и быстрый. |
| low | Короткий проход рассуждения. |
| medium | По умолчанию, если поле не передано. Сбалансированный. |
| high | Более глубокое рассуждение. Рекомендуется для нетривиального кодинга / многошаговых задач. |
| xhigh | Максимальное усилие. Самый медленный и дорогой; приберегите для сложного анализа, где он действительно нужен. |
# Two equivalent forms — pick whichever your SDK supports
{
"model": "gpt-5.4-mini",
"reasoning_effort": "high",
"messages": [ ... ]
}
{
"model": "gpt-5.5",
"reasoning": { "effort": "xhigh" },
"messages": [ ... ]
}
'minimal', но модели этого релея его отклоняют: "'minimal' is not supported with this model". Придерживайтесь пяти значений выше.
Стриминг
Задайте "stream": true, чтобы получать Server-Sent Events. Финальный чанк несёт блок usage (мы принудительно передаём upstream stream_options.include_usage, чтобы счётчики токенов всегда выдавались), затем поток закрывает литерал data: [DONE].
# Streaming format (line by line)
data: {"id":"resp_...","choices":[{"delta":{"content":"Hi"}}]}
data: {"id":"resp_...","choices":[{"delta":{"content":"!"}}]}
data: {"id":"resp_...","choices":[],"usage":{"prompt_tokens":18,"completion_tokens":11,"total_tokens":29}}
data: [DONE]
Готовый к запуску пример потоковой передачи на Python:
from openai import OpenAI
client = OpenAI(
api_key="sk-cf-xxxxxxxxxxxx",
base_url="https://api.subnsub.com/v1",
)
stream = client.chat.completions.create(
model="gpt-5.4-mini",
messages=[{"role": "user", "content": "Hello"}],
stream=True,
)
for chunk in stream:
text = chunk.choices[0].delta.content if chunk.choices else None
if text:
print(text, end="", flush=True)
Веб-поиск
Добавьте :online к любому ID модели, поддерживаемому эндпоинтом, и релей выполнит веб-поиск перед пересылкой модели, добавив результаты в начало диалога, чтобы ответ опирался на свежие данные. Суффикс работает на /v1/chat/completions и /v1/messages (последний по-прежнему требует базу claude-*); никаких специальных полей запроса для поиска не требуется.
# Same call as before — just :online on the model
curl https://api.subnsub.com/v1/chat/completions \
-H "Authorization: Bearer sk-cf-xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.4-mini:online",
"messages": [
{"role": "user", "content": "What did Anthropic ship this week?"}
]
}'
Как это работает: релей убирает :online, берёт самое последнее сообщение пользователя в качестве запроса (с ограничением в 400 символов), вызывает Tavily для получения до 3 результатов с извлечённым текстом страниц, когда он доступен, плюс необязательную сводку, сгенерированную Tavily, а затем добавляет их в начало того же пользовательского хода в виде чётко выделенного блока <search_results> перед отправкой запроса upstream. У вызова поиска тайм-аут 8 секунд. Результаты намеренно внедряются в роль user — никогда в системный промпт — чтобы недоверенные фрагменты не могли быть повышены до инструкций системного приоритета.
Блок <search_results> выглядит так. Перед ним идёт однострочная инструкция, предписывающая модели рассматривать блок как недоверенные внешние данные и ссылаться на пронумерованные элементы внутри текста:
<search_results query="What did Anthropic ship this week?" retrieved="2026-05-21">
Summary: <short LLM-generated synthesis of the result set>
[1] Anthropic launches Opus 4.8
URL: https://www.anthropic.com/news/opus-4-8
<extracted page text, or short snippet if extraction failed — up to ~2000 chars>
[2] ...
</search_results>
| Поведение | Детали |
|---|---|
| Стоимость | Сегодня без наценки — вы платите обычную потокенную ставку модели; релей берёт вызов поиска на себя. Внедрённый блок <search_results> при этом засчитывается как input-токены, поэтому ожидайте более высокий счёт за prompt-токены, чем для того же вопроса без :online. |
| Режим отказа | Мягкий. Если Tavily выходит за тайм-аут или возвращает ошибку, запрос продолжается к модели без поискового контекста (вы всё равно получаете ответ, просто без опоры на данные). Единственный жёсткий отказ — 503 search_unavailable, когда поиск вообще не настроен на релее. |
| count_tokens | /v1/messages/count_tokens убирает суффикс, но никогда не вызывает Tavily — счётчик отражает ваш исходный промпт, а не дополненный. |
| Многоходовой режим | Запрашивается и дополняется только последний пользовательский ход; более ранние ходы не затрагиваются. Чтобы выполнить поиск снова, отправьте новое пользовательское сообщение с :online всё ещё на модели. |
Когда использовать :online
Релей делает один вызов Tavily на запрос и внедряет результаты — это не агентный цикл поиска. Модель не решает выполнить повторный поиск на основе того, что видит, как это делают Perplexity Sonar или инструмент просмотра ChatGPT. Планируйте с учётом этого ограничения:
| Подходит | Не подходит |
|---|---|
| Чувствительные ко времени факты (новости, цены, номера версий, даты релизов) | Приватный или вставленный код, которого нет в публичной сети — добавляет шум в промпт без опоры на данные |
| Поиск официального документа или анонса | Математика, рассуждение, перевод, креативное письмо — опираться не на что |
| Всё, что вы иначе проверяли бы поиском в Google | Стабильные знания, уже имеющиеся в обучающих данных («что такое двоичное дерево») |
Сформулируйте последнее сообщение пользователя как самостоятельный поисковый запрос. Поиск выполняется по буквальному тексту вашего самого последнего пользовательского хода (с ограничением в 400 символов), поэтому разговорные уточнения вроде «а как насчёт последней версии?» превращаются в бесполезные запросы без контекста. В многоходовом чате повторно укажите тему, когда добавляете :online — например, «последняя версия Anthropic Python SDK» вместо «последнюю».
Для вопросов, требующих многошагового синтеза (сравнение, глубокое исследование), разбивайте их на несколько ходов и добавляйте :online к каждому. Модель прочитает свежие результаты каждого хода; следующий запрос вы направляете вручную. Учтите, что внедрённый блок <search_results> отправляется только upstream — он не возвращается вашему клиенту и не сохраняется в следующий запрос, поэтому, если более поздний ход зависит от деталей из ранних источников, попросите модель кратко изложить их в видимом ответе. Режим исследования за один проход не поддерживается.
reasoning_effort: "high"), чтобы модель действительно взвешивала возвращённые источники, а не опиралась на первый результат. Внедрённая инструкция просит модель ссылаться на пронумерованные источники как [1], [2] внутри текста, поэтому в выводе обычно будут такие ссылки — хотя модель не строго связана этим форматом.
Ошибки
Оболочка зависит от того, какой эндпоинт вы вызвали — релей возвращает ошибки в протоколе, соответствующем SDK вызывающей стороны, а upstream-ошибки передаются дословно.
Пути OpenAI (/v1/chat/completions, /v1/responses, /v1/models) — оболочка OpenAI:
{ "error": { "message": "...", "type": "...", "code": "..." } }
Пути Anthropic (/v1/messages, /v1/messages/count_tokens) — оболочка Anthropic:
{ "type": "error", "error": { "type": "...", "message": "..." } }
Оболочка Anthropic использует другую структуру — нет поля code, а дискриминатор type: "error" находится на верхнем уровне (внутреннее error.type задаёт категорию, например authentication_error, invalid_request_error, permission_error, api_error). Anthropic SDK уже разбирают эту структуру; обработчики ошибок обычного OpenAI SDK — нет, поэтому вызывайте /v1/messages через Anthropic SDK (или используйте чистый HTTP).
Коды статусов — канонические HTTP-коды в обоих протоколах:
| Статус | OpenAI code / Anthropic error.type | Значение |
|---|---|---|
| 401 | invalid_api_key / authentication_error | Отсутствующий или неизвестный ключ sk-cf-.... |
| 402 | insufficient_balance / permission_error | Баланс аккаунта отрицательный. Пополните во вкладке оплаты в консоли. |
| 403 | key_revoked / permission_error | Ключ был отозван. |
| 403 | account_closed / permission_error | Учетной записи не разрешен доступ к API — регистрации после прекращения предоставления услуг 8 июня 2026 г. не включают услугу API. |
| 400 | model_not_available / invalid_request_error | Отправленная вами model отсутствует в проверенном каталоге или не подходит для эндпоинта (например, OpenAI-модель на /v1/messages) — проверьте Доступные модели. |
| 400 | unsupported_background_mode / — | background: true на /v1/responses — реле обслуживает только синхронные запуски. Только конверт OpenAI. |
| 429 | rate_limit_exceeded / rate_limit_error | Общая upstream-ёмкость временно ограничена. Учитывайте retry-after, если он есть, затем повторите с экспоненциальной задержкой и jitter. |
| 503 | — | Сейчас ни один upstream-аккаунт не обслуживает запрос — обычно это временное окно лимита запросов по всему пулу. Повторите попытку после небольшой паузы. |
| 503 | search_unavailable / api_error | Вы использовали :online, но веб-поиск не настроен на этом релее. См. Веб-поиск. |
| 502 | upstream_unreachable / api_error | Релей не смог достучаться до бэкенда. Повторите после короткой паузы. |
| 500 | server_error / api_error | Relay завершился ошибкой до или после обращения к upstream. Повторяйте только безопасную для повтора операцию; иначе сначала проверьте историю использования. |
Повторные попытки и надёжность
Ограничивайте число повторов. Relay использует общую upstream-ёмкость, а запросы генерации не являются идемпотентными.
- Повторять: ответы
429,502,503и явно временные500. Учитывайтеretry-after; иначе используйте экспоненциальную задержку с jitter (например, 1 с, 2 с, 4 с; не более трёх попыток). - Не повторять без изменений:
400,401,402или403. Сначала исправьте payload, ключ, баланс или состояние доступа. - Риск дублирования: каждая успешная генерация — отдельный тарифицируемый запрос. Сейчас SUB&SUB не устраняет дубли POST генерации по idempotency key; храните ID операции в приложении и не повторяйте запрос после полного ответа.
- Streaming: прерванный SSE-поток нельзя продолжить. Повторное подключение запускает новую генерацию и может привести ко второму списанию.
Тарифы и оплата
Оплата по факту, тарификация по токенам в микродолларах (1 микро = $0.000001 = 1/10,000 цента), чтобы запросы дешевле цента учитывались точно. Ставки указаны за 1M токенов, по тирам — см. таблицу моделей, чтобы узнать, к какому тиру относится каждая модель.
| Тир | Модели | Вход / 1M | Выход / 1M |
|---|---|---|---|
| Mini | gpt-5.4-mini, claude-haiku-4-5-20251001 | $0.20 | $1.60 |
| Luna | gpt-5.6-luna | $0.30 | $2.40 |
| Standard | gpt-5.4, gpt-5.4-2026-03-05, gpt-5.6-terra, claude-sonnet-4-5-20250929, claude-sonnet-4-6 | $0.75 | $6.00 |
| Premium | gpt-5.5, gpt-5.6-sol | $1.10 | $8.80 |
| Sonnet 5 Intro | claude-sonnet-5 | $2.00 | $10.00 |
| Ultra | claude-opus-4-5-20251101, claude-opus-4-6, claude-opus-4-7, claude-opus-4-8 | $5.00 | $25.00 |
| Fable | claude-fable-5 | $10.00 | $50.00 |
Тарифы Fable и Ultra соответствуют опубликованным прейскурантным ценам Anthropic. В Sonnet 5 до 31 августа 2026 г. используется начальный тариф Anthropic 2/10 долларов США; его опубликованная стандартная цена после этой даты составляет 3 доллара США/15 долларов США. Цены на другие уровни ниже исходящих благодаря поддержке объединенной подписки.
Токены рассуждений (когда вы устанавливаете reasoning_effort в OpenAI или собственное поле thinking Anthropic в Claude) считаются токенами вывода по уровневой ставке модели – за большие усилия не взимается отдельная дополнительная плата, но глубокомысленный запрос может легко выдать в 10–50 раз больше токенов вывода, чем запрос без усилий. один, поэтому долларовая купюра масштабируется вместе с ним.
Prompt-кэширование Anthropic тарифицируется отдельной строкой: записи в кэш по 1.25×, а чтения из кэша по 0.10× от ставки input соответствующего тира. Так, попадание в кэш для haiku-4.5 стоит 0.20 × 0.10 = $0.02 per 1M tokens, а попадание в кэш для sonnet-4.5 — 0.75 × 0.10 = $0.075 per 1M tokens. Токены кэша фиксируются отдельной позицией в записи о списании по каждому запросу — консоль показывает разбивку.
Баланс списывается в реальном времени по мере возврата каждого запроса — для стриминговых запросов списание выполняется после прихода чанка [DONE]. Смотрите текущий баланс и списания по каждому запросу на /console#billing.
Лимиты запросов
Сегодня лимитов запросов на ключ нет. По-прежнему действуют общая ёмкость upstream и троттлинг на стороне провайдера; если вы в них упрётесь, релей вернёт 429 с заголовком retry-after. Лимиты RPM / TPM на ключ запланированы.
Статус и поддержка
- Авторизованные аккаунты с доступом к API могут видеть состояние провайдеров в разделе Консоль → Состояние сервиса, а объявления — в системных уведомлениях.
- По вопросам аккаунта, оплаты, конфиденциальности или безопасности пишите на [email protected].
- Сообщая об ошибке API, укажите время UTC, endpoint, модель, HTTP-статус и видимый префикс API-ключа. Никогда не отправляйте полный ключ или содержимое промпта, если поддержка явно не запросила отредактированный пример.
- Сервис предоставляется по принципу best effort и без SLA. Условия доступности и возвратов приведены в доступных только на английском Условиях использования, а обработка данных — в Политике конфиденциальности.
Документация проверена 14 июля 2026 года.