Схемы данных
APIKeyobject
created_atstring · date-timeобязательноexpires_atstring | null · date-timeобязательноidstringобязательно"key_1a2b3c4d5e6f7890"kindstringобязательноmanagement — ключ управления: модели не запускает, у него нет трат.
user, playground, agent, managementlast_used_atstring | null · date-timeобязательноnamestringno_storebooleanобязательноРежим без хранения аккаунта (no_store в GET /v1/settings): тексты запросов не
сохраняются; файлы живут обычный срок.
objectstringобязательно"api_key"retentionobjectобязательноchat_content_daysintegerобязательноfiles_daysintegerобязательноrouting_optionsModelRoutingOptions | nullspend_limitinteger | null · int64обязательноПотолок трат ключа; null — без потолка.
spend_limit_resetstringобязательноКак обновляется потолок: none — потолок на всё время ключа, сам не обновляется;
daily / monthly — spent считается с 00:00 UTC текущего дня / с 1-го числа
текущего месяца. У ключа без потолка (spend_limit: null) — тоже none.
none, daily, monthlyspentinteger · int64обязательноПотрачено в текущем окне потолка (при none — за всё время ключа), только завершённые
списания.
APIKeyEntryobject
blockedbooleanобязательноКлюч заблокирован службой поддержки — отдельно от enabled: включить его снова
нельзя, запросы по нему получают 403 key_blocked. Снять блокировку — через
поддержку.
falsecreated_atstringобязательно"2026-08-21T12:00:00Z"Автор ключа — только он открывает секрет (GET /v1/keys/{id}/secret); null — автор
неизвестен или удалён из аккаунта, секрет не открыть.
enabledbooleanобязательноtrueexpires_atstring | nullобязательноRFC 3339; null — ключ бессрочный.
"2026-12-31T00:00:00Z"idstringобязательно"key_1a2b3c4d5e6f7890"kindstringобязательноuser — обычный ключ, management — ключ управления: модели не запускает, потолка трат нет.
user, managementlast_used_atstring | nullобязательноКогда ключ последний раз прошёл проверку; null — ещё ни разу.
Держатель ключа — его автор: траты ключа идут в его лимит, при его удалении ключ отзывается; null — ключ аккаунта, выданный до того, как ключи стали личными.
namestring"production"secret_availablebooleanобязательноМожно ли показать секрет снова (GET /v1/keys/{id}/secret); false — показать нельзя
(ответ 409 secret_unavailable), создайте новый ключ.
truesecret_hintstring | nullобязательноПодсказка секрета: приставка, первые 4 и последние 4 знака — узнать ключ, не открывая его; null — секрет не сохранён.
"sk_9f3a…c1d2"spend_limit_microinteger | nullобязательноПотолок трат ключа в микроединицах валюты; null — без потолка.
1000000spend_limit_resetstringобязательноКак часто обновляется потолок: none — на весь срок ключа; daily / monthly —
spent_micro считается с 00:00 UTC текущего дня / с 1-го числа текущего месяца.
none, daily, monthly"monthly"spent_microintegerобязательноСписано по запросам ключа в текущем окне потолка (при none — за весь срок), в
микроединицах; только завершённые запросы.
250000APIKeysResponseobject
AccountRefobject
blockedbooleanобязательноАккаунт заблокирован службой поддержки: новые запросы его ключей и плейграунда
получают 403 account_blocked; вход, баланс, история и уже принятые запросы
остаются. Снять блокировку — через поддержку.
falsehas_balancebooleanобязательноfalse — у аккаунта нет баланса, расход учитывается по факту; пополнение, оплата, бонусы и история баланса недоступны (403 account_without_balance).
trueidstringобязательно"user_1a2b3c4d5e6f7890"namestringобязательно"Acme"numberstringобязательноНомер аккаунта в виде автомобильного номера: буква, три цифры, две буквы и код региона РФ из двух или трёх цифр — «К 482 МТ · 77», «Р 105 ОС · 761». Случайный и уникальный; по нему поддержка находит аккаунт. Буквы — только А В Е К М Н О Р С Т У Х, у которых одно начертание в кириллице и латинице, поэтому номер принимается в любой раскладке, с пробелами и без.
"К 482 МТ · 77"AccountSettingsPatchobject
max_price_multiplierMaxPriceMultiplier | nullПотолок цены; null снимает потолок, без поля — не меняется.
no_storebooleanРежим без хранения для всех ключей аккаунта; без поля — не меняется.
routingRoutingrouting_optionsModelRoutingOptions | nullwebhookWebhookSettingsPatchAccountSettingsResponseobject
Потолок цены для всех ключей аккаунта, когда запрос его не задаёт; null — без потолка.
no_storebooleanобязательноРежим без хранения для всех ключей аккаунта, включая плейграунд. По умолчанию
выключен: тексты запросов — промпт, сообщения и ответ чата, текст речи, расшифровка —
хранятся до retention.chat_content_days дней, файлы — retention.files_days. Включён —
тексты запросов и ответов не сохраняются; файлы живут retention.files_days, как
без режима. store: false в запросе включает то же для одного вызова.
retentionobjectобязательноСроки хранения, те же, что в GET /v1/key.
chat_content_daysintegerобязательноfiles_daysintegerобязательноПресет роутинга для всех ключей аккаунта, включая встроенный ключ плейграунда, когда запрос его не называет.
routing_optionsModelRoutingOptions | nullAttemptCountinteger
Сколько раз запрос отправлялся каналам, по порядку роутинга: 1 —
выполнен с первого раза, больше — запрос переходил к следующему каналу; 0 — ещё не
отправлялся.
0BalanceHistoryResponseobject
currencystringобязательно"RUB"next_beforestring | nullобязательноКурсор следующей (более старой) страницы для before; null — страниц больше нет.
"1758600000123456.4211"BalanceOperationobject
Операция по балансу: пополнение (deposit), списание за успешный запрос (charge), возврат остатка через поддержку (refund) или отмена начисления службой поддержки (reversal). Суммы без знака в микроединицах currency ответа; направление задаёт kind: пополнение прибавляет, списание, возврат и отмена вычитают.
amount_microinteger · int64обязательно10000000api_key_kindstringuser, playground, agent"user"api_key_namestring"production"canonical_modelstring"gpt-5-nano"created_atstringобязательно"2026-08-21T12:00:00Z"idstringобязательноdep_N у пополнения, rfd_N у возврата, rev_N у отмены, id запроса у списания.
"dep_42"job_idstringУ списания — запрос, за который оно; у компенсации (label compensation) — запрос, за который она начислена. Поля ниже — только у списания.
"job_abc123"labelstringТолько у бонуса от службы поддержки: topup_bonus — бонус к пополнению, compensation — компенсация за запрос (job_id), bonus — бонус. Нет поля — приветственный бонус или бонус по приглашению.
topup_bonus, compensation, bonus"compensation"modalitystringchat, image, video, transcription, speech, music"chat"sourcestringУ пополнения: payment — оплата, bonus — бонус (приветственный, по приглашению или от поддержки). У отмены — что отменено: оплата или бонус.
payment, bonus"payment"topupBalanceTopupBalanceOperationKindstring
deposit — пополнение, charge — списание за успешный запрос, refund — возврат остатка, reversal — отмена начисления службой поддержки.
deposit, charge, refund, reversalBalanceResponseobject
available_microintegerобязательно10000000currencystringобязательно"RUB"mock_topupbooleanобязательноЕсть ли на этом сервере тестовое пополнение баланса; в рабочем API всегда false.
falseoverdraft_limit_microinteger · int64обязательноРазрешённая сумма минуса в микроединицах валюты аккаунта.
0spendable_microinteger · int64обязательноСумма, доступная для новых запросов с учётом овердрафта и текущих обязательств.
0spent_total_microinteger · int64обязательноСколько аккаунт потратил за всё время: сумма списаний за успешные запросы в
микроединицах currency. Обновляется в течение минуты после завершения запроса.
1250000000BalanceTopupobject
Остаток конкретного пополнения. Только у deposit с доступным учётом: у старых оплат без распределения поле отсутствует. Суммы в микроединицах currency ответа. Бонусы расходуются первыми; внутри каждого источника — сначала более ранние пополнения. Нулевой остаток не подтверждает выдачу чека.
methodstringСпособ оплаты пополнения: card — банковская карта, sbp — Система быстрых платежей, other — другой способ платёжной страницы. Отсутствует у бонуса и пока платёжная система не сообщила способ (обычно в течение минуты после оплаты).
card, sbp, otherreceipt_urlstring · uriHTTPS-ссылка на чек покупки, если документ доступен. Отсутствует у бонуса и при отсутствии ссылки; не является подтверждением доставки письма.
^https://refund_pending_microinteger · int64обязательноЧасть remaining_micro, удержанная для возврата; у бонуса всегда 0.
0refunded_microinteger · int64обязательноУже возвращено из этого пополнения; у бонуса всегда 0.
0remaining_microinteger · int64обязательноНеизрасходованный остаток, включая сумму ожидающего возврата.
0reversed_microinteger · int64обязательноСколько из этого пополнения отменила служба поддержки (операции reversal); это не расход и не возврат.
0Capabilitiesobject
Только у чата — что модель действительно учитывает.
audio_inputbooleanобязательноЗвук в messages[].content (input_audio).
file_inputbooleanобязательноФайл, например PDF, в messages[].content (file).
streamingbooleanобязательноstructured_outputbooleanобязательноsupported_parametersarray[string]Параметры запроса, которые учитывает хотя бы один канал модели. Нет поля — список опубликован не у всех каналов.
toolsbooleanобязательноvideo_inputbooleanобязательноВидео в messages[].content (video_url).
visionbooleanобязательноКартинка в messages[].content (image_url).
ChannelHistoryobject
Как канал работал последние 7 дней по вызовам всех клиентов и проверкам Союза: 28 интервалов по 6 часов. Считаются отправленные вызовы с успехом или отказом по вине канала; ошибки во входных данных и правила модели стабильность не портят. Это наблюдение, а не обещание: один цвет может стать медленнее или дороже.
attemptsintegerобязательноВызовов канала за 7 дней.
0bucketstringобязательно"6h"Ровно 28 интервалов по возрастанию; последний — текущий, ещё не закрытый.
success_ratenumber | nullобязательноДоля успешных за 7 дней, от 0 до 1. null — меньше двадцати вызовов.
ChannelHistoryPointobject
atstring · date-timeобязательноНачало интервала, UTC (00:00, 06:00, 12:00 или 18:00).
attemptsintegerобязательно0latency_p50_msnumber | nullобязательноМедиана задержки успешных вызовов, мс (±10 %) — у чата до первого содержимого, у остальных до результата.
success_ratenumber | nullобязательноДоля успешных вызовов интервала, от 0 до 1. null — меньше пяти вызовов; это не ноль.
throughput_p50number | nullобязательноТолько чат — медиана скорости выдачи, токенов в секунду.
ChannelIdstring
Постоянный идентификатор цветового канала. Цвет обозначает одно исполнение и не переназначается.
^[a-z][a-z0-9-]{0,47}$ChannelMetricsobject
Измерения успешных запросов канала и доля успешных выполнений. Задержка и скорость выдачи имеют отдельные числа замеров и окна. Для задержки берутся последние 50 подходящих успехов чата или 20 у остальных модальностей за сутки; для скорости выдачи — последние 20 за сутки. Если для метрики меньше трёх свежих замеров — данные за 7 дней. Без трёх замеров за неделю соответствующие значения — null, число замеров и окно — 0. Порядок пресетов дополнительно учитывает цену, ожидаемое время полного выполнения и устойчивость канала. measured_at — время последнего успешного замера канала.
latency_p50_msnumber | nullобязательноМедиана времени успешного выполнения, мс; у чата — до первого содержимого ответа.
latency_p90_msnumber | nullобязательно90-й процентиль времени успешного выполнения, мс; у чата — до первого содержимого ответа.
latency_samplesintegerобязательноЧисло успешных замеров, использованных для latency_p50_ms и latency_p90_ms; 0, если оценки нет.
0latency_window_secondsintegerобязательноОкно замеров задержки в секундах — сутки или 7 дней; 0, если оценки нет.
0, 86400, 604800measured_atstring | null · date-timeобязательноsamplesintegerобязательноЧисло успешных запросов и сбоев исполнения за сутки, по которым считается success_rate. Не число замеров задержки или скорости выдачи.
0success_ratenumber | nullобязательноДоля успешных среди успешных запросов и сбоев исполнения за сутки, от нуля до единицы. Публикуется от двадцати таких запросов. Ошибки параметров, отказы по содержимому, отмены, ограничения канала, перегрузка и неотправленные запросы исключены.
success_samplesintegerобязательноУспешные запросы среди samples за сутки.
0throughput_p50number | nullобязательноЧат — медиана скорости выдачи содержимого, токенов в секунду, после первого токена.
throughput_p90number | nullобязательноЧат — 90-й процентиль скорости выдачи содержимого, токенов в секунду. У остальных модальностей null.
throughput_samplesintegerобязательноЧисло успешных замеров выдачи, использованных для throughput_p50 и throughput_p90; 0, если оценки нет или это не чат.
0throughput_window_secondsintegerобязательноОкно замеров скорости выдачи в секундах — сутки или 7 дней; 0, если оценки нет или это не чат.
0, 86400, 604800window_secondsintegerобязательноОбщее окно времени и скорости для существующих клиентов — 86400 или 604800; если хотя бы одна оценка взята за неделю, 604800. Для каждой метрики используйте её latency_window_seconds или throughput_window_seconds.
ChannelPaletteobject
ChannelParameterobject
defaultstringобязательноenumarray[string]обязательноChannelPriceobject
Цена одного канала для сценария. Итог запроса — по факту выполнения.
amount_microinteger · int64Остальные единицы — сумма сценария (в строке options — за её сочетание параметров).
cache_read_microinteger · int64per_1m_tokens — вход из кэша за 1M токенов, если у канала отдельная ставка.
dynamicbooleantrue — динамическая цена канала: сумма — оценка сценария, итог — по фактическому расходу.
input_microinteger · int64per_1m_tokens — вход за 1M токенов.
output_microinteger · int64per_1m_tokens — выход за 1M токенов.
ChatChoiceobject
finish_reasonstring | nullобязательно"stop"indexintegerобязательноlogprobsobject | nullChatChunkChoiceobject
finish_reasonstring | nullindexintegerобязательноlogprobsobject | nullChatCompletionobject
channelвсе вариантыФактический цвет канала, который дал этот ответ. Название и HEX — GET /v1/channels.
createdinteger · int64обязательноidstringобязательноchatcmpl-…; тот же id открывает GET /v1/jobs/{id}.
modelstringобязательноobjectstringобязательно"chat.completion"ChatCompletionChunkobject
Одно событие потока; usage приходит в последнем.
ChatCompletionRequestobject
Запрос OpenAI Chat Completions. Поля, которых здесь нет, передаются модели как есть.
routing, max_price_multiplier и store — наши; модели не передаются.
Веб-поиск — web_search_options или плагин {"id": "web"} в plugins — 400 capability_mismatch;
service_tier, provider, models, route, transforms и остальные plugins игнорируются.
max_completion_tokensinteger1max_price_multiplierMaxPriceMultiplier | nullmax_tokensintegerГраница ответа (или max_completion_tokens). Без поля — предел модели. Если баланса
хватает не на весь ответ, модели передаётся граница по оплачиваемому (не меньше
1000 токенов).
11modelstringобязательно"gpt-5-nano"ninteger1reasoning_effortstring"medium"response_formatobject{"type": "json_schema", …} — у моделей с capabilities.structured_output.
routingRoutingrouting_optionsRoutingOptions | nullstoreboolean | nullfalse — запрос без хранения: тексты запроса и ответа не сохраняются; файлы живут обычный срок. По умолчанию тексты хранятся; true не отменяет режим без хранения аккаунта.
streambooleanfalsetemperaturenumber · doubletool_choiceодно изauto, none, required или конкретная функция. required и конкретную функцию исполняют не все каналы; если ни один — 400 capability_mismatch с путём tool_choice.
toolsarray[object]Инструменты OpenAI; модель без capabilities.tools — 400 capability_mismatch.
ChatContentPartobject
Часть сообщения. type выбирает поле с содержимым:
text—{"type": "text", "text": "…"};image_url—{"type": "image_url", "image_url": {"url": "https://… | data:image/png;base64,…"}};file—{"type": "file", "file": {"filename": "doc.pdf", "file_data": "data:application/pdf;base64,…"}};input_audio—{"type": "input_audio", "input_audio": {"data": "<base64>", "format": "wav"}};video_url—{"type": "video_url", "video_url": {"url": "https://… | data:video/mp4;base64,…"}}.
fileobjectfile_datastringФайл data URL в base64.
filenamestringimage_urlobjecturlstringinput_audioobjectdatastringЗвук в base64, без префикса data:.
formatstring"wav"textstringtypestringобязательно"text"video_urlobjecturlstringСсылка на ролик или data URL в base64.
ChatMessageobject
contentодно изТекст или части — как у OpenAI: text, image_url, file, input_audio,
video_url. Картинка, файл, звук и видео уходят только в каналы, которые их
принимают (capabilities модели); если таких нет — 400 capability_mismatch.
rolestringобязательноsystem, developer, user, assistant, toolChatResponseMessageobject
Сообщение ответа (в потоке — его часть delta).
annotationsarray[object]audioobject | nullcontentstring | nullimagesarray[object]Картинки мультимодальной модели — data-URI, не сохраняются.
reasoningstring | nullreasoning_detailsarray[object]refusalstring | nullrolestringtool_callsarray[object]ChatUsageobject
completion_tokensintegerобязательноcompletion_tokens_detailsobjectaudio_tokensintegerreasoning_tokensintegercostinteger · int64Сколько списано за вызов, микроединицы currency — в итоговом ответе и последнем чанке потока.
currencyCurrencyprompt_tokensintegerобязательноprompt_tokens_detailsobjectaudio_tokensintegercached_tokensintegertotal_tokensintegerобязательноCreateAPIKeyRequestobject
kindstringuser — обычный ключ, запускает модели; management — ключ управления: создают
владелец и администратор и только в кабинете, трат и потолка у него нет.
user, management"user"namestring"production"spend_limit_microintegerПотолок трат ключа в микроединицах валюты; без поля — без потолка. У ключа управления потолка нет: с полем — 400.
5000000000spend_limit_resetstringКак часто обновляется потолок: none (по умолчанию, на весь срок), daily,
monthly — по UTC.
none, daily, monthly"monthly"CreateAPIKeyResponseobject
created_atstringобязательно"2026-08-21T12:00:00Z"idstringобязательно"key_1a2b3c4d5e6f7890"keystringобязательно"sk_9f8e7d6c5b4a39281706f5e4d3c2b1a0"namestring"production"Currencystring
Валюта сумм рядом, ISO 4217.
RUBDailyUsageEntryobject
Тот же день в разрезе моделей, по расходу вниз; сумма по моделям равна итогам дня.
datestringобязательно"2026-09-01"requestsintegerобязательноЗавершённые запросы дня (успех, провал, отмена); succeeded — из них успешные.
7spend_microintegerобязательно125000succeededintegerобязательно6DetailReasonstring
required, unsupported_field, unsupported_value, incompatible_value, duplicate, mutually_exclusive, out_of_range, too_long, too_many_items, exceeds_duration, requires_first_frame, requires_visual_reference, text_to_video_only, unsupported_format, animated_not_supported, undecodable, too_large, too_many_pixels, too_small, unreachable, invalid_source, unknown_file, file_expired, content_policy_category, price_cap, wrong_endpoint, insufficient_role, requires_api_key, requires_management_key, cabinet_only, not_key_author, not_selected, above_max_price, fallback_disabledErrorobject
Тело любой ошибки.
ErrorBodyobject
detailarray[ErrorDetail]Что именно не так — когда это известно.
ends_atstring · date-timeТолько у maintenance — до какого времени приостановлены новые запросы.
messagestringобязательноКороткая фраза для человека и лога; ветвиться по ней не нужно.
reasonstringТолько у maintenance — причина плановых работ, для людей.
ErrorCodestring
Что случилось — закрытый словарь. no_channel_matches (400) — routing_options отсекли
все каналы модели; что именно — в detail[].reason (not_selected, above_max_price,
fallback_disabled). Повтор того же запроса не поможет: измените настройки.
account_blocked (403) — аккаунт заблокирован службой поддержки: новые запросы не
принимаются, чтение задач и результатов работает; key_blocked (403) — этот ключ
заблокирован службой поддержки. Повтор не поможет — напишите в поддержку.
account_without_balance (403) — у аккаунта нет баланса (has_balance: false): расход
учитывается по факту, баланс, его история, пополнение и оплата недоступны.
overloaded (503) — сервер занят большими запросами; повторите через Retry-After
секунд. maintenance (503) — плановые работы: новые запросы приостановлены до
ends_at, принятые задачи доделываются; повторите после него, переключаться не нужно.
unknown_error (502) — неизвестная ошибка, без подробностей и без списания: повторите
запрос, мы разбираем такие случаи.
storage_limit_exceeded (413) — загрузки POST /v1/files, срок которых ещё не вышел,
заняли квоту (10 ГБ, после первого пополнения — 50 ГБ): удалите ненужные
DELETE /v1/files/{id} или дождитесь их срока.
invalid_request, invalid_input, capability_mismatch, content_policy, invalid_api_key, account_blocked, key_blocked, account_without_balance, insufficient_balance, key_spend_limit_exceeded, member_spend_limit_exceeded, invalid_signature, unauthorized, forbidden, not_found, model_not_found, job_not_found, file_not_found, file_expired, idempotency_key_conflict, secret_unavailable, rate_limited, generation_failed, unknown_error, model_unavailable, no_channel_matches, storage_limit_exceeded, overloaded, maintenance, internal_errorErrorDetailobject
Одно поле запроса и что с ним не так. path — как в запросе (aspect_ratio,
references[1], elements[0].images[1]); allowed — что было бы принято. У
content_policy_category в allowed — найденная категория.
ErrorTypestring
Класс ошибки, следует из HTTP-статуса: invalid_request_error (400, 405, 413) —
исправить запрос; authentication_error (401); billing_error (402) — пополнить баланс
или поднять лимит, повтор не поможет; permission_error (403); not_found_error (404, 410);
conflict_error (409); rate_limit_error (429) и model_error (502, 503, 504) — повторить
позже; server_error (500).
invalid_request_error, authentication_error, billing_error, permission_error, not_found_error, conflict_error, rate_limit_error, model_error, server_errorFileobject
Файл — результат, референс из запроса или загрузка. Живёт 1 день (expires_at);
url подписан ровно до этого срока и одинаков при каждом чтении. После срока —
expired: true без url.
bytesinteger · int64обязательноcontent_typestringобязательно"image/png"created_atstring · date-timeобязательноexpiredbooleanобязательноexpires_atstring · date-timeобязательноfilenamestringобязательноheightintegerТолько у картинок.
idstringобязательно"file_9f8e7d6c5b4a"kindstringобязательноupload, reference, resultobjectstringобязательно"file"urlstring · uriwidthintegerТолько у картинок.
FileDeletedobject
Как у files.delete SDK OpenAI.
deletedbooleanобязательноtrueidstringобязательноobjectstringобязательно"file"FileListobject
FileUploadRequestobject
filestringобязательноФайл; имя берётся из части формы.
application/octet-streampurposestringПоле SDK OpenAI; принимается и ни на что не влияет.
GenerationParamsEntryobject
aspect_ratiostring"16:9"duration_secondsinteger5first_framebooleanобязательноfalseinstrumentalbooleanМузыка — трек без вокала.
falselast_framebooleanобязательноfalselyricsstringМузыка — свой текст песни из запроса; стирается вместе с промптом.
"[Verse] Утро светит в окно"promptstringобязательно"a red bicycle on a beach"referencesintegerобязательно0resolutionstring"1K"storedbooleanобязательноХранился ли текст запроса. false — запрос без хранения (store: false или режим
аккаунта), и после завершения промпт стёрт: пустой prompt тогда значит «не
сохранён», а не «не отправлен».
truetitlestringМузыка — название трека из запроса; стирается вместе с промптом.
"Утро"HourlyUsageEntryobject
Тот же час в разрезе моделей, все модели часа, по расходу вниз; сумма по моделям равна итогам часа. Всегда массив.
hourstring · date-timeобязательноНачало часа завершения запросов, UTC.
"2026-09-23T14:00:00Z"requestsintegerобязательноЗавершённые запросы часа (успех, провал, отмена); succeeded — из них успешные.
7spend_microintegerобязательно125000succeededintegerобязательно6ImageGenerationRequestobject
Какие поля и значения принимает конкретная модель — её input_schema.
aspect_ratiostringСоотношение сторон или auto — умолчание модели.
"16:9"^(auto|[0-9]+:[0-9]+)$backgroundstringauto, transparent, opaquecallback_urlstring · uriКуда прислать вебхук — https на публичный хост; без поля — адрес по умолчанию из настроек аккаунта.
max_price_multiplierMaxPriceMultiplier | nullmodelstringобязательно"nano-banana-pro"moderationstringПоле OpenAI; принимается, модель отвечает со своей модерацией.
auto, lownintegerПоле OpenAI — сколько картинок; больше одной — у моделей, чья карточка это объявляет.
11output_compressionintegerПоле OpenAI; принимается, сжатие файла — как у модели.
0100output_formatstringФормат файла; переводим сами, у любой модели.
png, jpeg, webppartial_imagesintegerПоле OpenAI; промежуточных кадров нет — в потоке приходит только итог.
03promptstringобязательно1qualitystringКонкретный уровень качества по схеме модели. Без поля используется medium; auto — только при явном выборе. Явный уровень ограничивает каналы, которые гарантируют его выполнение. Допустимые значения канала — parameters.quality в GET /v1/models/{id}/channels.
auto, low, medium, high, xhigh, maxreferencesarray[MediaSource]Референсы — картинки.
resolutionstring"2K"response_formatstringПоле OpenAI; b64_json — картинка ещё и base64 в data[].b64_json.
url, b64_json"url"routingRoutingrouting_optionsRoutingOptions | nullsizestringПоле OpenAI: размер ШxВ или auto. Переводится в aspect_ratio и resolution
модели; вместе с ними не присылается (mutually_exclusive).
"1024x1024"^(auto|[0-9]+x[0-9]+)$storeboolean | nullfalse — запрос без хранения: тексты запроса и ответа не сохраняются; файлы живут обычный срок. По умолчанию тексты хранятся; true не отменяет режим без хранения аккаунта.
streamboolean | nullПоле OpenAI; true — ответ text/event-stream: событие image_generation.completed
с картинкой base64 на каждую картинку, затем поток закрывается. Ошибка и задача, не
успевшая за 9 минут, — обычным JSON со статусом.
stylestringПоле OpenAI; принимается, стиль задаёт промпт.
vivid, naturaluserstringПоле OpenAI (id конечного пользователя); принимается, ни на что не влияет и не хранится.
web_searchboolean | nullМодель может сверяться с интернетом.
ImageGenerationStreamEventobject
Событие потока картинки, как у images.generate SDK OpenAI с stream:true.
b64_jsonstringобязательноbackgroundstringобязательноcreated_atintegerобязательноoutput_formatstringобязательно"png"qualitystringобязательноsizestringобязательно"1024x1024"typestringобязательно"image_generation.completed"ImageLayerobject
Метаданные фона или прозрачного слоя; порядок наложения снизу вверх.
bounding_boxobjectabsolutearray[integer]обязательноЛевый, верхний, правый и нижний края в пикселях исходного изображения.
44normalizedarray[integer]обязательно44descriptionstringheightintegerобязательно1namestringwidthintegerобязательно1z_indexintegerобязательно0Indexobject
authstringобязательно"Authorization: Bearer <api-key>"base_urlstring · uriобязательноdocsobjectобязательноllmsstring · uriобязательноllms_fullstring · uriобязательноmodelsstring · uriобязательноopenapistring · uriобязательноsitestring · uriобязательноnamestringобязательноobjectstringобязательно"api"Jobobject
Задача — один объект для картинок, видео, музыки, транскрибации, речи и итога чата. Его отдают
ответы на запросы, GET /v1/jobs/{id}, поток событий и вебхук. У картинок это ещё и
ответ images.generate SDK OpenAI (created, data[].url, data[].b64_json), у
транскрибации — ответ audio.transcriptions.create (text).
actionstringВыполненное действие с аудио.
channelChannelId | nullФактический цвет канала запроса: при успехе — канал, который выполнил запрос; пока
запрос идёт — канал, которому он уже отправлен; при ошибке — последний вызванный канал.
null — запрос ещё не отправлялся ни одному каналу или запись старше каналов.
Название и HEX цвета — GET /v1/channels.
completed_atstring | null · date-timeобязательноКогда задача завершилась; null, пока идёт.
createdinteger · int64обязательноТо же время, что created_at, в unix-секундах — как created у OpenAI.
created_atstring · date-timeобязательноФайлы результата; data[0] — сам результат. У музыкальной модели, которая за запрос даёт
два варианта трека, оба — role: result, по порядку. Пустой, пока задача не завершена, и
у чата.
durationnumber | null · doubleТранскрибация — длительность звука в секундах.
Почему задача не удалась; null, если не провалилась.
idstringобязательноjob_…; у чата — chatcmpl-… из его ответа.
"job_1a2b3c4d5e6f"languageLanguageCode | nullТранскрибация — язык записи, код ISO 639-1 (ru, en) у любой модели: названный
моделью или, если она его не назвала, из подсказки language запроса. Язык неизвестен
— поля нет.
Потолок цены, с которым задача принята: из запроса или из настроек аккаунта на момент
приёма. null — без потолка.
modelstringобязательно"nano-banana-pro"model_versionstringВерсия музыкальной модели; используйте её при продолжении исходного трека.
objectstringобязательно"job"persona_idstringID этой задачи для повторного использования созданной персоны.
priceinteger | null · int64обязательноИтог в микроединицах currency — фактический объём × цены сработавшего канала
на момент приёма; null, пока задача не завершена. У проваленной — 0.
0resultMusicResultНастройки каналов, с которыми задача принята: из запроса или из настроек аккаунта на
момент приёма. null — каналы выбирает Авто-роутинг.
segmentsarray[TranscriptionSegment]Транскрибация, verbose_json у модели с таймкодами — фразы: предложение или отрезок
речи до паузы в секунду и дольше, не длиннее 30 с. Начало фразы — начало её первого
слова, конец — конец последнего; одинаково у всех моделей.
textstring | nullТранскрибация — расшифровка; у остальных задач поля нет.
Объём выполненного — токены, символы, секунды; null, где мерить нечего.
voice_idstringID этой задачи для повторного использования созданного голоса.
webhookJobWebhookwordsarray[TranscriptionWord]Транскрибация — слова с таймкодами, если запрошена детализация по словам.
JobContentEntryobject
requestobjectобязательноЧто ушло в модель: сообщения и параметры, модель — по id каталога.
responseobjectОтвет модели — content, finish_reason, tool_calls; поля нет, если ответа не
было.
truncatedbooleanобязательноСохранённая копия неполная: длинные строки обрезаны до 256 КиБ на поле или поток оборвался раньше конца ответа.
falseJobDetailResponseobject
actionstringДействие музыкального запроса. У старых запросов на создание песни — generate; у других типов запросов поля нет.
"lyrics"api_key_idstringобязательно"key_1a2b3c4d5e6f7890"api_key_kindstringобязательноuser, playground, agent"user"api_key_namestring"production"canonical_modelstringобязательно"gpt-5-nano"channelChannelId | nullФактический цвет канала запроса: при успехе — канал, который выполнил запрос; пока
запрос идёт — канал, которому он уже отправлен; при ошибке — последний вызванный канал.
null — запрос ещё не отправлялся ни одному каналу или запись старше каналов.
Название и HEX цвета — GET /v1/channels.
contentвсе вариантыСодержимое чата, пока оно хранится.
created_atstringобязательно"2026-08-21T12:00:00Z"duration_msintegerСколько шёл запрос целиком, от приёма до итога, — та же цифра, что в списке; есть у завершённого запроса.
12400errorвсе вариантыЕсть у не удавшегося запроса.
extra_resultsarray[File]Другие файлы той же генерации, по порядку, тем же описанием, что result: второй
музыкальный вариант, дополнительные дорожки или изображения.
idstringобязательно"job_abc123"input_fileвсе вариантыЗапись, отправленная на расшифровку; после срока хранения — описание без ссылки.
input_textstringТекст запроса на озвучку; хранится тот же срок, что содержимое чата. Голос и сведения о результате остаются в карточке.
"Привет!"input_tokensinteger1978last_frameFilemodel_versionstringВыбранная версия музыкальной модели, если она была указана в запросе.
"v6"output_tokensinteger88paramsвсе вариантыПараметры генерации — у изображений, видео, музыки и расшифровки.
priceinteger | nullобязательно5000request_idstringобязательно"req_1a2b3c"resultвсе вариантыРезультат успешной генерации — то же описание файла, что в GET /v1/jobs/{id}:
подписанная ссылка, пока файл хранится, после — expired: true. last_frame —
второй файл, если видео его вернуло.
routing_sourcestringобязательноОткуда пресет routing, в котором шёл запрос, — из запроса (request) или из настройки аккаунта (account).
request, account"account"terminal_codeTerminalCodetextstringРасшифровка успешного запроса на транскрибацию; хранится тот же срок, что содержимое чата, потом поля нет.
"привет, это расшифровка"updated_atstringобязательно"2026-08-21T12:00:02Z"usageвсе вариантыОбъём расшифровки; остаётся и после того, как текст перестал храниться.
voicestring"eve"JobEntryobject
actionstringДействие музыкального запроса. У старых запросов на создание песни — generate; у других типов запросов поля нет.
"lyrics"api_key_idstringобязательно"key_1a2b3c4d5e6f7890"api_key_kindstringобязательноВид ключа запроса: user — обычный ключ, playground — встроенный ключ плейграунда
(в списке ключей его нет), agent — ключ агента.
user, playground, agent"user"api_key_namestring"production"canonical_modelstringобязательно"gpt-5-nano"channelChannelId | nullФактический цвет канала запроса: при успехе — канал, который выполнил запрос; пока
запрос идёт — канал, которому он уже отправлен; при ошибке — последний вызванный канал.
null — запрос ещё не отправлялся ни одному каналу или запись старше каналов.
Название и HEX цвета — GET /v1/channels.
charactersintegerСколько символов (Unicode) дала расшифровка — то же число, что usage.characters в
её ответе; только у транскрибации.
420created_atstringобязательно"2026-08-21T12:00:00Z"detailarray[ErrorDetail]На каком параметре не удался запрос и что было бы принято — в той же форме, что
error.detail. Обычно поля нет; у удавшегося запроса его нет никогда.
duration_msintegerСколько шёл запрос целиком, от приёма до итога; есть у завершённого запроса.
12400error_codestringПочему запрос не удался — код закрытого словаря; есть только в статусе failed.
Неизвестная ошибка — unknown_error, без подробностей.
"content_policy"idstringобязательно"job_abc123"input_tokensintegerТокены чата — входные (input_tokens) и выходные (output_tokens); у картинок и
видео их нет.
1978model_versionstringВыбранная версия музыкальной модели, если она была указана в запросе.
"v6"output_tokensinteger88priceinteger | nullобязательноИтоговая цена завершённого запроса в микроединицах (у не удавшегося — 0); null —
запрос ещё идёт.
5000resultвсе вариантыФайл результата удавшейся генерации — то же описание, что result в
GET /v1/usage/{id}: подписанная ссылка, пока файл жив, expired: true после. У
чата и незавершённых запросов поля нет.
routing_sourcestringобязательноОткуда пресет routing, в котором шёл запрос, — из запроса (request) или из настройки аккаунта (account).
request, account"account"terminal_codeTerminalCodeJobErrorEntryobject
detailarray[ErrorDetail]На каком параметре не удался запрос и что было бы принято — в той же форме, что
error.detail в GET /v1/jobs/{id}.
messagestring"the model failed to process this request; retry it, a failed request is not charged"JobStatusstring
queued → in_progress → completed или failed.
queued, in_progress, completed, failedJobUsageobject
billed_charactersintegerУ речи с посимвольной оплатой — символов по счёту этой модели; у посекундной речи поля нет.
charactersintegerРечь — символов на входе; транскрибация — в расшифровке.
completion_tokensintegerЧат.
prompt_tokensintegerЧат.
secondsnumber · doubleРечь — длительность звука.
total_tokensintegerЧат.
JobUsageEntryobject
billed_charactersinteger421charactersintegerобязательноСимволы (Unicode) расшифровки — то же число, что вернул POST /v1/audio/transcriptions.
420secondsnumber3.42JobWebhookobject
Доставка вебхука — только у задачи с callback_url.
attemptsintegerобязательноdelivered_atstring · date-timeerrorstringПочему последняя попытка доставки не засчитана.
last_status_codeintegerПоследний HTTP-статус получателя.
next_attempt_atstring · date-timestatusstringобязательноpending, delivered, failedurlstring · uriобязательноLanguageCodestring
Язык — код ISO 639-1: две строчные латинские буквы (ru, en), один вид у всех моделей.
af, am, ar, as, az, ba, be, bg, bn, bo, br, bs, ca, cs, cy, da, de, el, en, es, et, eu, fa, fi, fo, fr, gl, gu, ha, he, hi, hr, ht, hu, hy, id, is, it, ja, jv, ka, kk, km, kn, ko, la, lb, ln, lo, lt, lv, mg, mi, mk, ml, mn, mr, ms, mt, my, ne, nl, nn, no, oc, pa, pl, ps, pt, ro, ru, sa, sd, si, sk, sl, sn, so, sq, sr, su, sv, sw, ta, te, tg, th, tk, tl, tr, tt, uk, ur, uz, vi, yi, yo, zh"ru"Limitsobject
Опубликованные пределы; нет поля — число не публикуется (а не ноль).
context_tokensintegermax_output_secondsintegerНаибольшая длительность готового звука в секундах, если известна.
max_output_tokensintegermax_referencesintegerMCPRequestobject
Сообщение JSON-RPC 2.0 клиента MCP — запрос (с id) или уведомление (без id).
idодно изНомер запроса; ответ вернёт его же. Без id — уведомление.
jsonrpcstringобязательно"2.0"methodstringобязательно"tools/call"paramsobjectПараметры метода; у tools/call — name инструмента и arguments по его inputSchema.
MCPResponseobject
Ответ JSON-RPC 2.0 — ровно одно из result и error.
errorobjectОшибка протокола JSON-RPC.
codeintegerобязательно-32700 — не JSON, -32600 — не запрос JSON-RPC, -32601 — нет метода, -32602 — неверные параметры или неизвестный инструмент, -32603 — сбой сервера.
dataobjectПодробности у неверных аргументов инструмента (-32602).
errorsarray[object]allowedarray[string]pathstringобязательноJSON Pointer внутри arguments.
"/model"toolstringmessagestringобязательноidодно изобязательноid запроса; null — запрос не удалось разобрать.
jsonrpcstringобязательно"2.0"resultobjectИтог метода. У tools/call — content (текст с таблицей), structuredContent
(те же данные объектом) и isError.
MaxPriceMultipliernumber
Потолок цены: каналы дороже первого канала плана больше чем во столько раз не
пробуются. Без routing_options первый канал — канал пресета, и цена отсчёта — как в
pricing.presets карточки модели, для параметров запроса; с routing_options отсчёт
идёт от первого канала, который остался после ваших настроек. Первый канал под потолок
попадает всегда. Если не ответили все
каналы в пределах потолка, задача проваливается, как при отказе всех каналов, с
деталью {"path": "max_price_multiplier", "reason": "price_cap"}. null — без потолка.
Без поля в запросе — настройка аккаунта (GET /v1/key → max_price_multiplier);
значение не из списка — 400 со списком допустимых.
1.5, 2, 3, 5, 10MeResponseobject
avatar_urlstring | nullобязательноКартинка участника — адрес в кабинете (?v= меняется вместе с картинкой) — или
null.
"/v1/members/mem_1a2b3c4d5e6f7890/avatar?v=1758300000"emailstringобязательноПочта участника; пустая строка — участник приглашён только по username Telegram.
telegram_username — username Telegram (строчными, без @) или пустая строка; хотя
бы одно из двух есть.
"dev@example.com"idstringобязательно"mem_1a2b3c4d5e6f7890"namestringобязательноИмя; пустая строка, пока участник не вошёл через провайдера входа и не задал имя в профиле.
"Dev User"rolestringобязательноРоль участника в аккаунте: owner, admin, developer или viewer.
owner, admin, developer, viewer"owner"Собственный лимит трат участника — с расходом и остатком в текущем окне; null —
лимита нет (владелец, администратор, наблюдатель, разработчик без лимита).
telegram_usernamestringобязательно"durov"MediaSourcestring
data:<mime>;base64,…, https://… или file_… (POST /v1/files).
"https://example.com/cat.png"MemberRefobject
idstringобязательно"mem_1a2b3c4d5e6f7890"namestringобязательно"Иван Петров"Modalitystring
chat, image, video, transcription, speech, musicModelobject
added_atstring · dateобязательноcapabilitiesCapabilitiescreatedinteger · int64обязательноUnix-время появления модели в каталоге (added_at) — поле models.list SDK OpenAI.
1758758400descriptionstringобязательноdisplay_namestringобязательноidstringобязательноТо, что идёт в поле model запроса.
"nano-banana-pro"input_schemaobjectобязательноJSON Schema 2020-12 тела запроса к этой модели, включая условные пределы текста музыки: какие поля и значения она
принимает. Годится как parameters инструмента и inputSchema MCP. Значения,
которые у модели ничего не меняют, в ней тоже есть — они принимаются.
objectstringобязательно"model"owned_bystringобязательноАвтор модели — vendor.id (пусто, если автор не указан); поле models.list SDK OpenAI.
"google"Те же поля для витрины — с подписями и подсказками.
released_atstring | null · dateобязательноКакие сочетания значений допустимы — то, что не выражает params.
statusstringобязательноactivetagsarray[string]обязательноupdated_atstring · date-timeобязательноАвтор модели; null, если не указан.
ModelChannelobject
availablebooleanобязательноcapabilitiesobjectобязательноaudio_inputbooleanобязательноfile_inputbooleanобязательноstreamingbooleanобязательноstructured_outputbooleanобязательноsupported_parametersarray[string]Параметры запроса, которые учитывает канал. Параметр не из списка этим каналом игнорируется; tools, tool_choice, response_format и verbosity идут только к каналам, которые их учитывают. Нет поля — список канала не опубликован.
toolsbooleanобязательноvideo_inputbooleanобязательноvisionbooleanобязательноcolorstringобязательно^#[0-9A-Fa-f]{6}$limitsobjectобязательноПределы конкретного канала в токенах; null означает, что предел неизвестен.
context_tokensinteger | nullобязательно1max_input_tokensinteger | nullобязательно1max_output_tokensinteger | nullобязательно1namestringобязательноparametersobjectПараметры, выполнение которых гарантирует канал; отсутствие поля означает отсутствие подтверждённой поддержки.
ModelChannelRatesobject
basisstringобязательноtokens, default_request, second, charactercache_readinteger | null · int64обязательноdynamicbooleantrue — динамическая цена: request — оценка для параметров по умолчанию, итог считается по фактическому расходу у канала и может отличаться от оценки.
inputinteger | null · int64обязательноoutputinteger | null · int64обязательноrequestinteger | null · int64обязательноСумма в микроединицах currency за единицу basis. Для default_request — оценка запроса с указанными параметрами; у динамической цены она может уточняться по сопоставимым выполненным запросам. Токеновые ставки остаются в tokens.
tokensobject | nullЦены, по которым считается итог канала с динамической ценой (dynamic), в микроединицах currency за 1M токенов. null у канала с ценой, известной заранее.
image_inputinteger | null · int64обязательноИзображения на входе (референсы); null у речи.
inputinteger · int64обязательноТекст на входе.
outputinteger · int64обязательноРезультат на выходе — изображение или звук.
reference_imageinteger | null · int64обязательноОценка одного референса в микроединицах currency — не за 1M токенов; null у речи.
ModelChannelsobject
ModelListobject
generated_atstring · date-timeобязательноКогда собран каталог (до часа).
objectstringобязательно"list"ModelRoutingOptionsobject
Настройки по id модели. Объект заменяет сохранённый словарь целиком (сначала GET, затем
слить и отправить PATCH); null очищает его. Ключ — существующая модель или «»; каждый
цвет only/ignore/order — канал этой модели (GET /v1/models/{id}/channels), иначе
400 с detail[].path вида routing_options.<модель>.only[0]. Ключ «» задаёт общие
предпочтения без списков цветов; поля только для чата (sort: throughput,
preferred_min_throughput) у не-чат модели из «*» молча не применяются, а под ключом
не-чат модели — 400. session_id в настройках не сохраняется.
ModelStatsobject
Статистика модели за 7 дней по запросам всех клиентов — за окно и по часам. Пересчитывается раз в минуту. Объёмы и доли точные; доля успешных — среди завершённых запросов, отказы по вине запроса не считаются. Время ответа — только по успешным запросам; медиана и p95 округлены до ступени шкалы (±10 %), поэтому одинаковые числа у разных моделей — следствие округления, а не общий предел времени.
bucketstringобязательно"1h"latency_p50_msinteger | nullобязательноМедиана времени ответа успешных запросов, мс (±10 %); null — успешных нет.
latency_p95_msinteger | nullобязательно95 % успешных запросов отвечают быстрее, мс (±10 %); null — успешных нет.
model_idstringобязательноrequestsintegerобязательноРовно 168 часов по возрастанию.
Скорость опций пресетов роутинга за 7 дней: по ряду на опцию — те же опции и в том же
порядке, что pricing.presets карточки модели (параметры по умолчанию). От одного до
трёх рядов; пусто, когда цены нет. Точка ряда — медиана успешных запросов первого
канала опции за 6 часов, с любым пресетом. Ряды разных опций могут
численно совпадать.
success_ratenumber | null · doubleобязательноДоля успешных среди завершённых запросов, от 0 до 1; отказы по вине запроса (ошибка
во входных данных, правила модели, нехватка баланса, несовместимые параметры) не
считаются. null — считать не из чего.
tokens_outinteger | null · int64обязательноupdated_atstring · date-timeобязательноКогда числа пересчитаны.
windowstringобязательно"7d"ModelStatsHourobject
atstring · date-timeобязательноНачало часа, UTC.
failedintegerобязательноНе выполнены; отказы по вине запроса не считаются, как и в success_rate.
latency_max_msinteger | nullобязательноСамый долгий успешный запрос часа, мс; null — успешных нет.
latency_min_msinteger | nullобязательноСамый быстрый успешный запрос часа, мс; null — успешных нет.
latency_p05_msinteger | nullобязательно5 % успешных запросов часа отвечают быстрее, мс (±10 %); null — успешных нет. Вместе
с latency_p95_ms — полоса обычного времени ответа без редких крайних значений.
latency_p50_msinteger | nullобязательноМедиана времени ответа успешных запросов часа, мс (±10 %); null — успешных нет.
latency_p95_msinteger | nullобязательно95 % успешных запросов часа отвечают быстрее, мс (±10 %); null — успешных нет.
requestsintegerобязательноsucceededintegerобязательноsuccess_ratenumber | null · doubleобязательноModelStatsSpeedobject
Скорость одной опции пресетов роутинга за 7 дней.
Ровно 28 интервалов по 6 часов по возрастанию; последний — текущий, ещё не закрытый.
Пресеты опции — как routing опции в pricing.presets.
1unitstringобязательноЕдиница value: seconds — время выполнения запроса, секунды; tokens_per_second —
у чата: скорость ответа, выходных токенов в секунду за всё время ответа (время ответа
чата зависит от его длины).
seconds, tokens_per_secondModelStatsSpeedPointobject
atstring · date-timeобязательноНачало интервала, UTC (00:00, 06:00, 12:00 или 18:00).
valuenumber | null · doubleобязательноМедиана успешных запросов за интервал в единице unit, приближённая (ошибка до
20 %); null — успешных запросов не было.
ModelStatsSummaryobject
Итоги статистики модели за 7 дней по запросам всех клиентов — те же числа, что в
GET /v1/models/{id}/stats на начало часа, без почасового ряда. Обновляются раз в час;
null — за окно нет данных, а не ноль.
failedintegerобязательноИз них не выполнены; отказы по вине запроса не считаются, как и в success_rate.
Сумма failed по часам GET /v1/models/{id}/stats.
latency_p50_msinteger | nullобязательноМедиана времени ответа успешных запросов, мс (±10 %).
latency_p95_msinteger | nullобязательно95 % успешных запросов отвечают быстрее, мс (±10 %).
requestsintegerобязательноЗапросы за окно в любом статусе.
succeededintegerобязательноИз них завершились успешно.
success_ratenumber | null · doubleобязательноДоля успешных среди завершённых запросов, succeeded / (succeeded + failed), от 0
до 1; отказы по вине запроса (ошибка во входных данных, правила модели, нехватка
баланса, несовместимые параметры) не считаются.
tokens_outinteger | null · int64обязательноСколько токенов выдала модель — только у чата.
updated_atstring · date-timeобязательноКогда числа пересчитаны.
ModelUsageEntryobject
canonical_modelstringобязательно"gpt-5-nano"requestsintegerобязательно5spend_microintegerобязательно90000MusicGenerationRequestobject
Какие поля и значения принимает конкретная модель — её input_schema.
actionstringДействие с музыкой или звуком; без поля — создание музыки.
generate, sounds, cover, extend, add_vocals, add_instrumental, mashup, replace_section, separate_vocals, split_stems, isolate_stem, wav, midi, video, cover_image, lyrics, boost_style, timestamps, persona, voice_validate, voice_generate, voice_regenerate, voice_checkaudio_weightnumberВлияние аудиоэлементов; доступно и при создании в custom_mode.
01authorstringАвтор.
callback_urlstring · uriКуда прислать вебхук — https на публичный хост; без поля — адрес по умолчанию из настроек аккаунта.
continue_atnumberС какой секунды продолжить исходный трек.
0.01custom_modebooleanСоздание по своему стилю и тексту; для инструментала текст не нужен.
descriptionstringОписание.
domain_namestringПодпись сайта.
duration_secondsintegerЖелаемая длительность в режиме своего текста или стиля.
10360end_secondsnumberКонец фрагмента.
full_lyricsstringПолный текст после замены.
grab_lyricsbooleanСохранить текст звука.
instrumentalboolean | nullТрек без вокала.
languagestringЯзык проверки голоса.
lyricsstringТекст песни — модель споёт его как написан; разделы размечаются [Verse], [Chorus],
[Bridge]. Без поля текст пишет модель. Вместе с instrumental не присылается.
max_price_multiplierMaxPriceMultiplier | nullmodelstringобязательно"suno-v6"namestringИмя.
negative_tagsstringКакие стили и элементы исключить.
200persona_idstringID задачи Союза, создавшей персону или голос.
persona_modelstringТип сохранённой персоны.
style_persona, voice_personapromptstringОписание трека: жанр, настроение, инструменты, темп, голос. Язык текста песни, который напишет модель, — язык описания. В custom_mode и при lyrics это музыкальный стиль.
reference_audioarray[string]Входные аудиофайлы — ссылки https или идентификаторы загруженных файлов.
2routingRoutingrouting_optionsRoutingOptions | nullsinger_skill_levelstringУровень вокала.
sound_keystringТональность звука из схемы параметров модели.
sound_loopbooleanЗацикленный звук.
sound_tempointegerТемп звука в ударах в минуту.
1300source_filestringID аудиофайла из data исходной задачи.
source_jobstringID готовой задачи Союза, принадлежащей вашему аккаунту.
start_secondsnumberНачало фрагмента.
stem_namestringДорожка или инструмент.
storeboolean | nullfalse — запрос без хранения: тексты запроса и ответа не сохраняются; файлы живут обычный срок. По умолчанию тексты хранятся; true не отменяет режим без хранения аккаунта.
style_weightnumberТочность следования стилю.
01titlestringНазвание в режиме своего текста или стиля и при переработке аудио. Без него — первая строка текста песни или описания. В простом режиме название выбирает модель.
userstringПоле OpenAI (id конечного пользователя); принимается, ни на что не влияет и не хранится.
versionstringВерсия модели из её схемы параметров.
vocal_genderstringПредпочтительный вокал; результат не гарантирован.
m, fweirdnessnumberСтепень экспериментальности.
01MusicResultobject
Структурированный результат аудиооперации. Доступен до истечения срока файла JSON из data; отсутствующие поля не относятся к выбранному действию.
aligned_wordsarray[object]Слова и их таймкоды в секундах; success показывает, удалось ли выровнять слово.
endSnumberобязательноpalignnumberобязательноstartSnumberобязательноsuccessbooleanобязательноwordstringобязательноdescriptionstring | nullhoot_cernumber | nullОценка ошибки выравнивания текста.
is_availablebooleanГотов ли проверяемый голос к использованию.
is_streamedboolean | nulllyricsarray[object]textstringtitlestringmidiobjectНотные партии; pitch — MIDI-номер ноты, start/end — секунды, velocity — сила от 0 до 1.
instrumentsarray[object]namestringnotesarray[object]endnumberобязательноpitchintegerобязательно0127startnumberобязательноvelocitynumberобязательно01statestringnamestring | nullresultstringУлучшенное описание музыкального стиля.
statusstringСостояние проверки голоса.
validate_infostringФраза для записи подтверждения голоса.
waveform_dataarray | nullАмплитуды для визуализации звука, сохранённые вместе с результатом.
OutputFileвсе варианты
Файл результата задачи.
actionsarray[string]Доступные действия с этим треком; принимают source_job и source_file.
b64_jsonstringКартинка в base64 — при response_format=b64_json.
cover_idstringID файла обложки из data с role=cover.
duration_secondsnumberФактическая длительность трека.
labelstringНазвание выделенной дорожки.
layerImageLayerlyricsstringТекст песни.
rolestringобязательноresult — сам результат (у музыки их бывает два — варианты трека), last_frame — последний кадр ролика по return_last_frame.
result, last_frame, cover, layertagsstringСтиль трека.
titlestringНазвание трека.
typestringобязательноЧто это за файл (не что за задача — у видео бывает и кадр).
image, video, audio, jsonPaletteColorobject
colorstringобязательно^#[0-9A-Fa-f]{6}$namestringобязательно"Синий"ParamRuleobject
when / when_present → allow или deny.
allowobjectdenyobjectwhenobjectwhen_presentarray[string]ParamSpecobject
Одно поле запроса к модели — для API, витрины и плейграунда.
api_onlybooleanПоле API и документации; плейграунд не показывает и не отправляет его.
defaultсхемаЗначение по умолчанию — строка, число или логическое.
fieldsarray[ParamSpec]formatsarray[string]hintstringlabelstringобязательноmaxnumber · doublemax_bytesinteger · int64max_distinctintegerПеречисление внутри списка — сколько разных значений поле принимает во всём списке (голоса диалога речи).
max_itemsintegermax_lengthintegermax_pixelsinteger · int64minnumber · doublemin_itemsintegernamestringобязательно"aspect_ratio"requiredbooleanstepnumber · doubletypestringобязательноstring, enum, integer, number, boolean, image, video, audio, listvaluesarray[ParamValue]ParamValueobject
labelstringобязательноvalueсхемаобязательноСтрока или число — то, что уходит в запрос.
PresetOptionobject
Опция пресетов роутинга: цена и типичное время запроса в пресетах routing. Суммы — в
единице unit карточки модели, как у Pricing; в строке options — как у
amount_micro этой строки.
amount_microinteger · int64Остальные единицы — за генерацию, секунду звука или 1M символов. В строке options — в
той же единице, что amount_micro строки (у видео — цена сценария строки, за её
billed_seconds секунд; ставка за секунду — деление на billed_seconds).
cache_read_microinteger · int64per_1m_tokens — вход из кэша за 1M токенов, если у этой опции есть отдельная ставка.
dynamicbooleantrue — динамическая цена первого канала опции: сумма — оценка, итог — по фактическому расходу.
input_microinteger · int64per_1m_tokens — вход за 1M токенов.
output_microinteger · int64per_1m_tokens — выход за 1M токенов.
Пресеты, которые покрывает опция, по порядку cheap, balanced, fast.
1typical_secondsinteger | nullобязательноТипичное время выполнения первого канала опции, секунды: медиана последних успешных
запросов за сутки, если их меньше трёх — типичное за 7 дней (та же оценка, что в
metrics каналов), округлённая: до 10 с — до секунды, 10–60 с — до 5 с, дольше —
до 10 с; null — замеров нет. У чата всегда null: время ответа зависит от
его длины.
1PriceOptionobject
amount_microinteger · int64обязательноbilled_secondsintegerПосекундное видео — сколько секунд тарифицируется в этом сочетании.
channelsarray[ChannelPrice]Цена каждого канала для этого сочетания параметров — как pricing.channels.
max_amount_microinteger | null · int64обязательноВерх полной цены того же сочетания параметров по всем пригодным каналам, включая запасные; у видео это цена ролика указанной длительности, а не ставка за секунду. null, если единицы расчёта различаются, длительность видео-входа неизвестна или у части каналов динамическая цена.
Опции пресетов роутинга для этого сочетания параметров — как pricing.presets.
whenobjectобязательноPricingobject
Цена «от» — наименьшая по всем каналам и параметрам, одна для всех. Цены и
типичное время пресетов роутинга — presets (параметры по умолчанию) и
options[].presets (каждое сочетание параметров). Итог запроса — фактический объём ×
цены сработавшего канала на момент приёма; если отвечал следующий канал, итог может
быть выше цены пресета. Поля max_* — верх опубликованной ставки пригодных каналов
для указанной единицы, включая запасные, но не предел итоговой стоимости
запроса: объём и фактическое списание могут отличаться. null означает, что общий
верх в этой единице по всем допустимым параметрам не доказан. Какие суммы есть, решает unit.
amount_microinteger · int64Для изображений — минимальная цена каналов за генерацию с параметрами по умолчанию, как в каталоге каналов; другие сочетания представлены в options. Остальные единицы — за генерацию, секунду звука или 1M символов.
availablebooleanобязательноfalse — цены сейчас нет, сумм тоже нет.
cache_read_microinteger · int64per_1m_tokens — вход из кэша за 1M токенов, если есть отдельная ставка.
channelsarray[ChannelPrice]Цена каждого канала для параметров по умолчанию — в порядке палитры модели, как
GET /v1/models/{id}/channels. Суммы — в единице unit: у чата ставки за 1M токенов,
у остальных — сумма сценария. Канал, которому параметры не подходят, отсутствует.
Пусто, когда цены нет.
dynamicbooleantrue — у части каналов динамическая цена: их суммы — оценка, итог считается по фактическому расходу у канала и может отличаться от оценки. Верх max_amount_micro тогда null.
input_microinteger · int64per_1m_tokens — вход за 1M токенов.
max_amount_microinteger | null · int64обязательноВерх ставки по всем пригодным каналам и доказуемо полному набору допустимых параметров в единице unit. Для видео null, поскольку полную цену генерации нельзя выдавать за секундную ставку; используйте верх конкретной строки options[].max_amount_micro. Также null, если единицы каналов различаются, полный охват не доказан или у части каналов динамическая цена (dynamic).
max_cache_read_microinteger | null · int64обязательноВерх ставки чтения кэша за 1M токенов; канал без отдельной ставки тарифицирует такой вход по обычной ставке.
max_input_microinteger | null · int64обязательноВерх ставки входа за 1M токенов с учётом запасных каналов и ступени длинного контекста.
max_output_microinteger | null · int64обязательноВерх ставки выхода за 1M токенов с учётом запасных каналов и ступени длинного контекста.
optionsarray[PriceOption]Стартовые цены отдельных сочетаний параметров.
output_microinteger · int64per_1m_tokens — выход за 1M токенов.
Цены и типичное время пресетов роутинга для параметров по умолчанию — от одной до трёх
опций. Одна опция может покрывать несколько пресетов: «Баланс» может входить в опцию
«Дешевле» или «Быстрее». У разных опций цена и типичное время могут совпадать, хотя
их поведение в Авто-роутинге различается. Переданный в запросе routing сохраняет
выбранный порядок исполнения. Пусто, когда цены нет.
unitstringобязательноper_1m_tokens, per_generation, per_second, per_1m_charactersQuoteElementobject
descriptionstringimagesintegernamestringQuoteGenerationParamsobject
actionstringМузыка — действие (generate, cover, …), от него зависит цена.
aspect_ratiostringaudiobooleanbackgroundstringbackground_sourcestringcharacter_orientationstringduration_secondsintegerelementsarray[QuoteElement]first_framebooleanlast_framebooleanoutput_formatstringqualitystringauto, low, medium, high, xhigh, maxreference_audiointegerreference_videosintegerreferencesintegerresolutionstringreturn_last_framebooleanshotsarray[VideoShot]versionstringМузыка — версия модели, от неё зависит цена.
web_searchbooleanRevealAPIKeyResponseobject
keystringобязательно"sk_9f8e7d6c5b4a39281706f5e4d3c2b1a0"Routingstring
Пресет роутинга — порядок, в котором Авто-роутинг пробует каналы модели. cheap —
«Дешевле»: самый дешёвый канал, даже если он медленнее; скорость решает только при
равной цене. balanced — «Баланс», по умолчанию: заметно быстрее за небольшую
доплату; если такого канала нет — как «Дешевле». fast — «Быстрее»: самый быстрый
канал; при близкой скорости — дешевле. Скорость измеряется по реальным запросам.
Пресет — пожелание: принимается для любой модели, даже если у неё один канал. Канал не
ответил — запрос переходит к следующему по порядку пресета; следующий канал может
стоить дороже, и итог может превысить цену пресета — насколько, ограничивает
max_price_multiplier. Без поля в запросе сервер применяет настройку аккаунта; другое
значение — 400 со списком допустимых.
cheap, balanced, fastRoutingMaxPriceobject
Абсолютные потолки опубликованных ставок в микроединицах RUB: input/output/cache_read за миллион токенов, request за конкретный запрос с его параметрами. Ноль допускает только бесплатную ставку. Неизвестная ставка не проходит заданный потолок. Потолки за токены действуют только на каналы с ценой за токены: каналы с ценой за запрос (картинка, видео, секунда или символ звука) они не отсекают — их цену ограничивает request. Это фильтр тарифов, а не гарантия итоговой суммы при иной фактической стоимости. Для неизвестной длительности аудио request сравнивается с оценкой; окончательная длительность может отличаться.
cache_readinteger · int640inputinteger · int640outputinteger · int640requestinteger · int640RoutingOptionsobject
Настройки каналов. Без поля действует настройка аккаунта; объект заменяет её целиком,
null сбрасывает на автоматический выбор. Ограничения никогда не ослабляются при отказах.
only и ignore ограничивают допустимые каналы; order задаёт предпочтительный порядок и
обязан быть подмножеством допустимых: цвет из order вне only или из ignore — 400.
Остальные допустимые каналы следуют по пресету. allow_fallbacks=false оставляет только
order, а без order — первый выбранный канал. Закрепление диалога не отменяет ограничений.
Цвет, которого у модели нет, — 400 invalid_request. Если настройки отсекли все каналы
(ни один разрешённый цвет не исполняет модель, все дороже max_price, запасные запрещены),
ответ — 400 no_channel_matches с detail[{path: "routing_options", reason}], а не
503: повтор того же запроса не поможет. Пауза канала после сбоев смотрится только среди
каналов, которые вы разрешили: если на паузе все они, запрос всё равно пробует их.
allow_fallbacksbooleantrueignorearray[ChannelId]64max_priceRoutingMaxPriceonlyarray[ChannelId]64orderarray[ChannelId]64preferred_max_latency_msinteger · int64Мягкое предпочтение по p50 задержки. Неизмеренные и более медленные каналы остаются запасными.
1preferred_min_throughputnumberМягкое предпочтение по p50 токенов в секунду; только чат (в запросе к другой модальности — 400).
session_idstringИдентификатор диалога чата в пределах аккаунта и модели. Сохраняется только хеш.
1256sortstringЯвная сортировка заменяет пресет; порядок цветов имеет приоритет. latency — время первого содержимого чата или всего результата; throughput — токены в секунду, только чат (в запросе к другой модальности — 400).
price, latency, throughputstickybooleanЗакреплять успешное исполнение диалога на десять минут бездействия. Явный order имеет приоритет.
trueRoutingPreviewobject
Каналы плана в порядке попыток: первый — тот, с которого начнётся запрос, следующие —
запасные. Пустой список — запрос с этими условиями сейчас выполнить нельзя; почему —
в excluded.
estimated_priceinteger | null · int64обязательноОценка суммы первого канала цепочки для этих параметров. Может уточняться по
сопоставимым выполненным запросам; итог зависит от фактического объёма
и ставок на момент приёма. Запасной канал может стоить дороже. null — план пуст. План ознакомительный: при создании
запроса он рассчитывается заново.
Каналы модели, которые в план не вошли, и почему. Каждый цвет — один раз.
generated_atstring · date-timeобязательноmodelstringобязательноRoutingPreviewChannelobject
estimated_priceinteger | null · int64обязательноОценка суммы этого канала для параметров превью, в микроединицах currency; итог определяется фактическим объёмом и ставками на момент приёма запроса.
ratesModelChannelRatesRoutingPreviewExclusionobject
reasonstringобязательноnot_selected — цвет не прошёл only/ignore; above_max_price — дороже
max_price или потолка max_price_multiplier; unsupported — канал не берёт эти
параметры, возможности (инструменты, картинка, JSON-схема, поток) или пределы
токенов; unavailable — канал сейчас не исполняет (пауза после сбоев, выключен);
fallback_disabled — запасные каналы запрещены (allow_fallbacks: false).
not_selected, above_max_price, unsupported, unavailable, fallback_disabledRoutingPreviewRequestobject
audio_inputbooleanЧат — в messages будет звук.
billed_secondsinteger186400file_inputbooleanЧат — в messages будет файл (PDF).
input_tokensinteger016777216max_price_multiplierMaxPriceMultiplier | nullnintegerЧат — сколько вариантов ответа; пределы выхода каналов и оценка считаются на все.
1128output_tokensinteger116777216paramsQuoteGenerationParamsroutingRoutingrouting_optionsRoutingOptionsspeech_charactersinteger11000000speech_dialoguebooleanРечь — запрос с dialogue вместо input.
speech_instructionsbooleanРечь — запрос с полем instructions.
speech_output_secondsinteger186400speech_utf16_charactersinteger12000000streambooleanstructured_outputbooleantoolsbooleanvideo_inputbooleanЧат — в messages будет видео.
visionbooleanServiceStatusobject
Состояние сервиса (GET /v1/status). У maintenance — причина и срок плановых работ.
ends_atstring · date-timeДо какого времени приостановлены новые запросы.
reasonstringПричина плановых работ, для людей.
started_atstring · date-timeКогда начались плановые работы.
statusstringобязательноok — работает; maintenance — плановые работы, новые запросы до ends_at получают
503 maintenance; unavailable — сервис не отвечает вне плановых работ.
ok, maintenance, unavailableSpeechRequestobject
Текст — input или dialogue, одно из двух; без обоих — 400 с input required.
callback_urlstring · uridialoguearray[object]Реплики по порядку вместо input — диалог разными голосами. Только у моделей, в карточке которых есть это поле; число разных голосов, реплик и общий предел текста — там же.
1textstringобязательноТекст реплики.
1voicestringобязательноГолос реплики из карточки модели.
inputstringТекст или описание звуковой сцены; предел длины — у модели, если указан. Обязателен, если нет dialogue; вместе с dialogue не присылается.
1instructionsstringКак говорить — тон, темп и эмоция словами. Только у моделей, в карточке которых есть это поле; предел длины — там же.
1max_price_multiplierMaxPriceMultiplier | nullmodelstringобязательно"qwen-audio-3.0-tts-plus"response_formatstringФормат звука; без поля — родной формат модели.
mp3, opus, aac, flac, wav, pcmroutingRoutingrouting_optionsRoutingOptions | nullspeednumberПоле OpenAI; принимается, темп речи — как у модели.
0.254storeboolean | nullfalse — запрос без хранения: тексты запроса и ответа не сохраняются; файлы живут обычный срок. По умолчанию тексты хранятся; true не отменяет режим без хранения аккаунта.
stream_formatstringПоле OpenAI; sse — звук событиями text/event-stream: speech.audio.delta с base64
звука, затем speech.audio.done.
audio, sse"audio"userstringПоле OpenAI (id конечного пользователя); принимается, ни на что не влияет и не хранится.
voicestringГолос из карточки модели, если она предлагает выбор; без поля — умолчание модели.
SpeechStreamEventobject
Событие потока речи, как у audio.speech.create SDK OpenAI со stream_format:"sse".
audiostringЗвук base64 — у speech.audio.delta.
typestringобязательноspeech.audio.delta, speech.audio.doneSpendLimitEntryobject
amount_microintegerобязательно5000000000remaining_microintegerобязательно3750000000resetstringобязательноnone, daily, monthly"monthly"spent_microintegerобязательно1250000000TerminalCodestring
Почему задача не удалась — закрытый словарь, тот же, что у error.code задачи в
публичном API: invalid_input — модель отвергла входные данные (параметр или файл;
что именно — в detail, если известно), исправьте запрос; content_policy — сработал
контентный фильтр, перепишите описание; capability_mismatch — модель не принимает
параметры; insufficient_balance — не хватило баланса или лимита; model_unavailable
— модель сейчас некому исполнить, повторите позже или выберите другую модель;
generation_failed — модель приняла запрос и не справилась, повторите; unknown_error —
неизвестная ошибка, без подробностей: повторите, мы разбираем такие случаи. Проваленная
задача стоит 0.
invalid_input, content_policy, capability_mismatch, insufficient_balance, model_unavailable, generation_failed, unknown_error"model_unavailable"TranscriptionRequestobject
callback_urlstring · urichunking_strategyодно изПоле OpenAI (auto или объект server_vad); принимается, запись делит модель. В multipart также принимаются поля chunking_strategy[…].
"auto"typestringобязательно"server_vad"filestringобязательноwav, mp3, flac, m4a, ogg, webm, aac, до 25 МиБ; формат определяется по байтам.
audio/*includearray[string]Поле OpenAI; принимается, вероятностей токенов в ответе нет. В multipart также принимается запись include[].
languageLanguageCodeЯзык записи, код ISO 639-1 (ru, en); без поля язык определяет модель. Другое
написание (RU, ru-RU, russian) — 400 со списком кодов в allowed.
max_price_multiplierMaxPriceMultiplier | nullmodelstringобязательно"whisper-large-v3-turbo"promptstringПоле OpenAI; принимается, модель расшифровывает без подсказки.
response_formatstringjson, verbose_json, text, srt"json"routingRoutingrouting_optionsRoutingOptions | nullstoreboolean | nullfalse — запрос без хранения: тексты запроса и ответа не сохраняются; файлы живут обычный срок. По умолчанию тексты хранятся; true не отменяет режим без хранения аккаунта.
streambooleanПоле OpenAI; true — ответ text/event-stream: transcript.text.delta с текстом, затем
transcript.text.done.
temperaturenumberПоле OpenAI; принимается, ни на что не влияет.
01timestamp_granularitiesarray[string]Таймкоды фраз и слов; только вместе с verbose_json у моделей, которые их поддерживают. В multipart также принимается запись timestamp_granularities[].
12userstringПоле OpenAI (id конечного пользователя); принимается, ни на что не влияет и не хранится.
TranscriptionSegmentobject
endnumber · doubleобязательноidintegerобязательноstartnumber · doubleобязательноНачало, секунды от начала записи.
textstringобязательноTranscriptionStreamEventobject
Событие потока расшифровки, как у audio.transcriptions.create SDK OpenAI со stream:true.
deltastringТекст — у transcript.text.delta.
textstringВся расшифровка — у transcript.text.done.
typestringобязательноtranscript.text.delta, transcript.text.doneTranscriptionWordobject
endnumber · doubleобязательноstartnumber · doubleобязательноНачало, секунды от начала записи.
wordstringобязательноUpdateAPIKeyRequestobject
expires_atstring | nullRFC 3339; null — ключ бессрочный.
"2026-12-31T00:00:00Z"namestring"production"spend_limit_microinteger | null · int64null — без потолка.
1000000spend_limit_resetstringnone | daily | monthly; без поля — none.
none, daily, monthly"monthly"UsageResponseobject
currencystringобязательно"RUB"next_beforestring | nullобязательноКурсор следующей (более старой) страницы для before; null — страниц больше нет.
"1758283200000000000_job_1a2b3c4d5e6f7890"UsageStatusstring
Статус запроса: queued — в очереди, running — выполняется, succeeded — готов, failed — не удался, unknown — исход ещё выясняется, cancelled — отменён.
queued, running, succeeded, failed, unknown, cancelledUsageSummaryResponseobject
currencystringобязательно"RUB"Ряд по UTC-дням; дней без запросов в нём нет. С bucket=hour — пустой, ряд в hourly.
hourlyarray[HourlyUsageEntry]Ряд по UTC-часам — только с bucket=hour; часов без запросов в нём нет, по часу вверх.
period_daysintegerобязательно30total_requestsintegerобязательно42total_spend_microintegerобязательно1250000total_succeededintegerобязательно40Vendorobject
idstringобязательно"bytedance"namestringобязательно"ByteDance"VideoElementobject
VideoGenerationFormobject
Форма videos.create SDK OpenAI. input_reference — первый кадр: файл картинки,
input_reference[image_url] или input_reference[file_id]. Остальные поля
VideoGenerationRequest — полями формы: числа и флаги текстом, списки повтором поля или
JSON-массивом, объекты (routing_options, shots, elements) — JSON-строкой.
input_referencestring · binarymodelstringобязательноpromptstringобязательноsecondsstring"8"sizestring"1280x720"VideoGenerationRequestobject
Какие поля и значения принимает конкретная модель — её input_schema. Кадры
(first_frame, last_frame) и набор референсов взаимоисключающие.
aspect_ratiostring"16:9"^(auto|[0-9]+:[0-9]+)$audioboolean | nullСгенерировать звуковую дорожку.
background_sourcestring"input_image"callback_urlstring · uricharacter_orientationstring"video"duration_secondsinteger51elementsarray[VideoElement]Именованные сущности, на которые промпт ссылается как @name.
first_frameMediaSourcelast_frameMediaSourcemax_price_multiplierMaxPriceMultiplier | nullmodelstringобязательно"seedance-2"output_formatstringmp4, movpromptstringобязательно1reference_audioarray[MediaSource]Звук — https://… или file_….
reference_videosarray[MediaSource]Клипы — https://… или file_….
referencesarray[MediaSource]resolutionstring"720p"return_last_frameboolean | nullВернуть последний кадр вторым файлом (role: last_frame).
routingRoutingrouting_optionsRoutingOptions | nullsecondsодно изДлительность в секундах, как в videos.create SDK OpenAI ("8"); то же, что duration_seconds.
^[0-9]+$1shotsarray[VideoShot]Сцены вместо одного промпта; сумма длительностей — в пределах ролика.
sizestringШxВ, как в videos.create SDK OpenAI (1280x720): соотношение сторон — ближайшее из
aspect_ratio модели, разрешение — по короткой стороне. Вместе с aspect_ratio или
resolution не передаётся.
"1280x720"^([0-9]+x[0-9]+|auto)$storeboolean | nullfalse — запрос без хранения: тексты запроса и ответа не сохраняются; файлы живут обычный срок. По умолчанию тексты хранятся; true не отменяет режим без хранения аккаунта.
userstringПоле OpenAI (id конечного пользователя); принимается, ни на что не влияет и не хранится.
web_searchboolean | nullVideoShotobject
duration_secondsinteger1promptstringобязательноWebhookEventobject
Тело вебхука по Standard Webhooks.
timestampstring · date-timeобязательноtypestringобязательноjob.completed, job.failedWebhookSecretobject
objectstringобязательно"webhook_secret"secretstringобязательноwhsec_<base64> — ключ Standard Webhooks.
^whsec_WebhookSettingsobject
urlstringURL is where a job without callback_url of its own reports to, including jobs started with the playground key; empty — nowhere.
"https://example.com/hooks/souz"WebhookSettingsPatchobject
urlstring | nullnull или пустая строка снимает адрес.
"https://example.com/hooks/souz"