{"openapi":"3.1.0","info":{"title":"Slicer API","version":"1.10.0","description":"Public API of Slicer: upload materials, run the AI montage, edit and export vertical videos. Auth — `Authorization: Bearer <API token>`.","x-description-ru":"Публичное API Slicer: загрузка материалов, ИИ-монтаж, правки и экспорт вертикальных роликов. Вход — `Authorization: Bearer <API-токен>`.","contact":{"name":"Slicer","url":"https://docs.slicer.media","email":"api@slicer.media"}},"servers":[{"url":"https://api.slicer.media"}],"tags":[{"name":"Account","x-name-en":"Account","x-name-ru":"Аккаунт"},{"name":"Catalog","x-name-en":"Catalog and prices","x-name-ru":"Каталог и цены"},{"name":"Uploads","x-name-en":"Uploads","x-name-ru":"Загрузки"},{"name":"Projects","x-name-en":"Projects","x-name-ru":"Проекты"},{"name":"Editing","x-name-en":"Editing","x-name-ru":"Правки"},{"name":"Export","x-name-en":"Export and publishing","x-name-ru":"Экспорт и публикация"},{"name":"Webhooks","x-name-en":"Webhooks","x-name-ru":"Вебхуки"}],"paths":{"/v1/me":{"get":{"operationId":"getMe","tags":["Account"],"summary":"Current account and token","x-summary-ru":"Аккаунт и токен","x-scopes":["account:read"],"x-rate":"default","x-paid":false,"x-public":false,"security":[{"bearerAuth":[]}],"parameters":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"$ref":"#/components/schemas/Me"}},"required":["ok","data"],"additionalProperties":false}}}},"default":{"description":"Error / Ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/wallet/transactions":{"get":{"operationId":"listTransactions","tags":["Account"],"summary":"Wallet transactions","x-summary-ru":"Операции кошелька","x-scopes":["account:read"],"x-rate":"default","x-paid":false,"x-public":false,"security":[{"bearerAuth":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","maxLength":200}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/WalletTransaction"}},"nextCursor":{"type":["string","null"]}},"required":["items","nextCursor"],"additionalProperties":false}},"required":["ok","data"],"additionalProperties":false}}}},"default":{"description":"Error / Ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/styles":{"get":{"operationId":"getStyles","tags":["Catalog"],"summary":"Styles, settings and prices","x-summary-ru":"Стили, настройки и цены","x-scopes":[],"x-rate":"default","x-paid":false,"x-public":false,"security":[{"bearerAuth":[]}],"parameters":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"$ref":"#/components/schemas/Styles"}},"required":["ok","data"],"additionalProperties":false}}}},"default":{"description":"Error / Ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/export-presets":{"get":{"operationId":"getExportPresets","tags":["Catalog"],"summary":"Export presets and the default profile","x-summary-ru":"Пресеты экспорта и профиль по умолчанию","x-scopes":[],"x-rate":"default","x-paid":false,"x-public":false,"security":[{"bearerAuth":[]}],"parameters":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{"defaultProfile":{"$ref":"#/components/schemas/ExportProfile"},"presets":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"profile":{"$ref":"#/components/schemas/ExportProfile"}},"required":["id","profile"],"additionalProperties":false}}},"required":["defaultProfile","presets"],"additionalProperties":false}},"required":["ok","data"],"additionalProperties":false}}}},"default":{"description":"Error / Ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/estimate":{"post":{"operationId":"estimate","tags":["Catalog"],"summary":"Price of an operation","x-summary-ru":"Цена операции","x-scopes":[],"x-rate":"default","x-paid":false,"x-public":false,"security":[{"bearerAuth":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EstimateRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"$ref":"#/components/schemas/Quote"}},"required":["ok","data"],"additionalProperties":false}}}},"default":{"description":"Error / Ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/uploads":{"post":{"operationId":"createUpload","tags":["Uploads"],"summary":"Start an upload","x-summary-ru":"Начать загрузку","description":"Returns the upload and a one-time `uploadUrl`. Then either `PUT` the whole file to `uploadUrl` (no token) or to `/v1/uploads/{id}/content`, or send 8 MiB parts to `/v1/uploads/{id}/parts/{n}` and call `complete`.","x-description-ru":"Возвращает загрузку и одноразовую ссылку `uploadUrl`. Дальше — `PUT` всего файла на `uploadUrl` (без токена) или на `/v1/uploads/{id}/content`, либо части по 8 МиБ на `/v1/uploads/{id}/parts/{n}` и `complete`.","x-scopes":["projects:write"],"x-rate":"default","x-paid":false,"x-public":false,"security":[{"bearerAuth":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateUploadRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"$ref":"#/components/schemas/CreatedUpload"}},"required":["ok","data"],"additionalProperties":false}}}},"default":{"description":"Error / Ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/uploads/{id}/content":{"put":{"operationId":"putUploadContent","tags":["Uploads"],"summary":"Upload the whole file","x-summary-ru":"Загрузить файл целиком","description":"Body — the file bytes, `Content-Length` must equal the declared size. The upload is completed automatically.","x-description-ru":"Тело — байты файла, `Content-Length` равен заявленному размеру. Загрузка завершается сама.","x-scopes":["projects:write"],"x-rate":"default","x-paid":false,"x-public":false,"security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"requestBody":{"required":true,"content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"$ref":"#/components/schemas/Upload"}},"required":["ok","data"],"additionalProperties":false}}}},"default":{"description":"Error / Ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/uploads/{id}/parts/{n}":{"put":{"operationId":"putUploadPart","tags":["Uploads"],"summary":"Upload a part","x-summary-ru":"Загрузить часть","description":"Parts are numbered from 1; every part except the last is exactly `partSize` bytes. Parts may go in parallel and be retried.","x-description-ru":"Части нумеруются с 1; все, кроме последней, — ровно `partSize` байт. Части можно слать параллельно и повторять.","x-scopes":["projects:write"],"x-rate":"upload","x-paid":false,"x-public":false,"security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"name":"n","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991}}],"requestBody":{"required":true,"content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{"part":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"etag":{"type":"string"}},"required":["part","etag"],"additionalProperties":false}},"required":["ok","data"],"additionalProperties":false}}}},"default":{"description":"Error / Ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/uploads/{id}/complete":{"post":{"operationId":"completeUpload","tags":["Uploads"],"summary":"Complete a multipart upload","x-summary-ru":"Завершить загрузку по частям","x-scopes":["projects:write"],"x-rate":"default","x-paid":false,"x-public":false,"security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"$ref":"#/components/schemas/Upload"}},"required":["ok","data"],"additionalProperties":false}}}},"default":{"description":"Error / Ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/uploads/import":{"post":{"operationId":"importUpload","tags":["Uploads"],"summary":"Import a file by URL","x-summary-ru":"Загрузить файл по адресу","description":"Downloads a public https file in the background. Poll `GET /v1/uploads/{id}` or wait for the `upload.ready` webhook.","x-description-ru":"Скачивает публичный https-файл в фоне. Опрашивайте `GET /v1/uploads/{id}` или ждите вебхук `upload.ready`.","x-scopes":["projects:write"],"x-rate":"default","x-paid":false,"x-public":false,"security":[{"bearerAuth":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportUploadRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"$ref":"#/components/schemas/Upload"}},"required":["ok","data"],"additionalProperties":false}}}},"default":{"description":"Error / Ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/uploads/{id}":{"get":{"operationId":"getUpload","tags":["Uploads"],"summary":"Upload status","x-summary-ru":"Статус загрузки","x-scopes":["projects:read"],"x-rate":"default","x-paid":false,"x-public":false,"security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"$ref":"#/components/schemas/Upload"}},"required":["ok","data"],"additionalProperties":false}}}},"default":{"description":"Error / Ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteUpload","tags":["Uploads"],"summary":"Cancel an upload","x-summary-ru":"Отменить загрузку","x-scopes":["projects:write"],"x-rate":"default","x-paid":false,"x-public":false,"security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"deleted":{"type":"boolean"}},"required":["id","deleted"],"additionalProperties":false}},"required":["ok","data"],"additionalProperties":false}}}},"default":{"description":"Error / Ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/upload-links/{secret}":{"put":{"operationId":"putUploadLink","tags":["Uploads"],"summary":"Upload the whole file by a one-time URL","x-summary-ru":"Загрузить файл по одноразовой ссылке","description":"No token: the secret in the URL is the permission. Write-only, one file, ≤ 1 h. `curl -T video.mp4 <uploadUrl>`","x-description-ru":"Без токена: разрешение — секрет в адресе. Только запись, один файл, ≤ 1 ч. `curl -T video.mp4 <uploadUrl>`","x-scopes":[],"x-rate":"default","x-paid":false,"x-public":true,"security":[],"parameters":[{"name":"secret","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"$ref":"#/components/schemas/Upload"}},"required":["ok","data"],"additionalProperties":false}}}},"default":{"description":"Error / Ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/projects":{"get":{"operationId":"listProjects","tags":["Projects"],"summary":"List projects","x-summary-ru":"Список проектов","x-scopes":["projects:read"],"x-rate":"default","x-paid":false,"x-public":false,"security":[{"bearerAuth":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","maxLength":200}},{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["all","ready","active","failed","draft"]}},{"name":"q","in":"query","required":false,"schema":{"type":"string","maxLength":100}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Project"}},"nextCursor":{"type":["string","null"]}},"required":["items","nextCursor"],"additionalProperties":false}},"required":["ok","data"],"additionalProperties":false}}}},"default":{"description":"Error / Ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"createProject","tags":["Projects"],"summary":"Create a project and start the montage","x-summary-ru":"Создать проект и запустить монтаж","description":"Without `confirmCost` returns a `Quote` and creates nothing. With `confirmCost` equal to the current price creates the project and starts the montage: one version that the director checks and fixes after rendering. The first video is free (`cost: 0`). With `mode: \"manual\"` the project is free: materials go to the timeline in order and the project becomes a `draft` — no `confirmCost` needed.","x-description-ru":"Без `confirmCost` возвращает `Quote` и ничего не создаёт. С `confirmCost`, равным текущей цене, создаёт проект и запускает монтаж: одна версия, которую режиссёр после рендера сам проверяет и поправляет. Первый ролик бесплатный (`cost: 0`). С `mode: \"manual\"` проект бесплатный: материалы ложатся на таймлайн по порядку, проект становится черновиком `draft` — `confirmCost` не нужен.","x-scopes":["projects:write"],"x-rate":"paid","x-paid":true,"x-public":false,"security":[{"bearerAuth":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateProjectRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"anyOf":[{"$ref":"#/components/schemas/Quote"},{"$ref":"#/components/schemas/ProjectDetails"}]}},"required":["ok","data"],"additionalProperties":false}}}},"default":{"description":"Error / Ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/projects/{id}":{"get":{"operationId":"getProject","tags":["Projects"],"summary":"Project details","x-summary-ru":"Проект","x-scopes":["projects:read"],"x-rate":"default","x-paid":false,"x-public":false,"security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"$ref":"#/components/schemas/ProjectDetails"}},"required":["ok","data"],"additionalProperties":false}}}},"default":{"description":"Error / Ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"operationId":"renameProject","tags":["Projects"],"summary":"Rename a project","x-summary-ru":"Переименовать проект","x-scopes":["projects:write"],"x-rate":"default","x-paid":false,"x-public":false,"security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RenameRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"$ref":"#/components/schemas/Project"}},"required":["ok","data"],"additionalProperties":false}}}},"default":{"description":"Error / Ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteProject","tags":["Projects"],"summary":"Delete a project and its files","x-summary-ru":"Удалить проект и файлы","x-scopes":["projects:write"],"x-rate":"default","x-paid":false,"x-public":false,"security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"deleted":{"type":"boolean"}},"required":["id","deleted"],"additionalProperties":false}},"required":["ok","data"],"additionalProperties":false}}}},"default":{"description":"Error / Ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/projects/{id}/remount":{"post":{"operationId":"remountProject","tags":["Projects"],"summary":"Rebuild with new settings","x-summary-ru":"Пересобрать с новыми параметрами","x-scopes":["montage:run"],"x-rate":"paid","x-paid":true,"x-public":false,"security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RemountRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"anyOf":[{"$ref":"#/components/schemas/Quote"},{"$ref":"#/components/schemas/ProjectDetails"}]}},"required":["ok","data"],"additionalProperties":false}}}},"default":{"description":"Error / Ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/projects/{id}/retry":{"post":{"operationId":"retryProject","tags":["Projects"],"summary":"Retry a failed run","x-summary-ru":"Повторить неудачный запуск","x-scopes":["montage:run"],"x-rate":"paid","x-paid":true,"x-public":false,"security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetryRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"anyOf":[{"$ref":"#/components/schemas/Quote"},{"$ref":"#/components/schemas/ProjectDetails"}]}},"required":["ok","data"],"additionalProperties":false}}}},"default":{"description":"Error / Ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/projects/{id}/cancel":{"post":{"operationId":"cancelProject","tags":["Projects"],"summary":"Stop the run","x-summary-ru":"Остановить запуск","x-scopes":["projects:write"],"x-rate":"default","x-paid":false,"x-public":false,"security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"$ref":"#/components/schemas/ProjectDetails"}},"required":["ok","data"],"additionalProperties":false}}}},"default":{"description":"Error / Ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/projects/{id}/versions":{"get":{"operationId":"listVersions","tags":["Projects"],"summary":"Video versions","x-summary-ru":"Версии ролика","x-scopes":["projects:read"],"x-rate":"default","x-paid":false,"x-public":false,"security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"array","items":{"$ref":"#/components/schemas/ProjectVersion"}}},"required":["ok","data"],"additionalProperties":false}}}},"default":{"description":"Error / Ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/projects/{id}/versions/{versionId}/choose":{"post":{"operationId":"chooseVersion","tags":["Projects"],"summary":"Choose a version","x-summary-ru":"Выбрать версию","description":"Makes a version current: one awaiting choice (`versionChoice`) or any version from the history whose file is kept (`hasFile`) — like «Make current» in the app. The previous video stays in the history.","x-description-ru":"Делает версию текущей: ждущую выбора (`versionChoice`) или любую версию из истории, файл которой хранится (`hasFile`), — как «Сделать текущей» в приложении. Прежний ролик остаётся в истории.","x-scopes":["projects:write"],"x-rate":"default","x-paid":false,"x-public":false,"security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991}},{"name":"versionId","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"$ref":"#/components/schemas/ProjectDetails"}},"required":["ok","data"],"additionalProperties":false}}}},"default":{"description":"Error / Ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/projects/{id}/history":{"get":{"operationId":"getHistory","tags":["Projects"],"summary":"Project history","x-summary-ru":"История проекта","x-scopes":["projects:read"],"x-rate":"default","x-paid":false,"x-public":false,"security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"array","items":{"$ref":"#/components/schemas/HistoryEvent"}}},"required":["ok","data"],"additionalProperties":false}}}},"default":{"description":"Error / Ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/projects/{id}/result":{"get":{"operationId":"getResult","tags":["Projects"],"summary":"Download the video","x-summary-ru":"Скачать ролик","description":"Range requests are supported. `?version={versionId}` — a kept version file.","x-description-ru":"Поддерживаются Range-запросы. `?version={versionId}` — файл версии.","x-scopes":["projects:read"],"x-rate":"default","x-paid":false,"x-public":false,"security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991}},{"name":"version","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991}}],"responses":{"200":{"description":"File / Файл","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"default":{"description":"Error / Ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/projects/{id}/poster":{"get":{"operationId":"getPoster","tags":["Projects"],"summary":"Download the cover (JPEG)","x-summary-ru":"Скачать обложку (JPEG)","x-scopes":["projects:read"],"x-rate":"default","x-paid":false,"x-public":false,"security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991}}],"responses":{"200":{"description":"File / Файл","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"default":{"description":"Error / Ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/projects/{id}/transcript":{"get":{"operationId":"getTranscript","tags":["Editing"],"summary":"The video as text with word ids","x-summary-ru":"Ролик текстом с id слов","x-scopes":["projects:read"],"x-rate":"default","x-paid":false,"x-public":false,"security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"$ref":"#/components/schemas/Transcript"}},"required":["ok","data"],"additionalProperties":false}}}},"default":{"description":"Error / Ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/projects/{id}/document":{"get":{"operationId":"getDocument","tags":["Editing"],"summary":"Edit document","x-summary-ru":"Документ монтажа","x-scopes":["projects:read"],"x-rate":"default","x-paid":false,"x-public":false,"security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"$ref":"#/components/schemas/DocumentState"}},"required":["ok","data"],"additionalProperties":false}}}},"default":{"description":"Error / Ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"put":{"operationId":"putDocument","tags":["Editing"],"summary":"Replace the edit document (advanced)","x-summary-ru":"Заменить документ монтажа (для продвинутых)","x-scopes":["projects:write"],"x-rate":"default","x-paid":false,"x-public":false,"security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PutDocumentRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"$ref":"#/components/schemas/DocumentState"}},"required":["ok","data"],"additionalProperties":false}}}},"default":{"description":"Error / Ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/projects/{id}/edits":{"post":{"operationId":"applyEdits","tags":["Editing"],"summary":"Apply edit operations","x-summary-ru":"Применить правки","description":"Free. Word ids — from `GET …/transcript`. Inapplicable operations are skipped and listed in `skipped`.","x-description-ru":"Бесплатно. Id слов — из `GET …/transcript`. Неприменимые операции пропускаются и перечисляются в `skipped`.","x-scopes":["projects:write"],"x-rate":"default","x-paid":false,"x-public":false,"security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EditsRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"$ref":"#/components/schemas/EditsResult"}},"required":["ok","data"],"additionalProperties":false}}}},"default":{"description":"Error / Ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/projects/{id}/assistant":{"post":{"operationId":"askAssistant","tags":["Editing"],"summary":"Command for the AI assistant","x-summary-ru":"Команда ИИ-помощнику","description":"Charged only if something changed. The result is saved.","x-description-ru":"Списывается, только если что-то изменилось. Результат сохраняется.","x-scopes":["montage:run"],"x-rate":"paid","x-paid":true,"x-public":false,"security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssistantRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"anyOf":[{"$ref":"#/components/schemas/Quote"},{"$ref":"#/components/schemas/AssistantResult"}]}},"required":["ok","data"],"additionalProperties":false}}}},"default":{"description":"Error / Ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/projects/{id}/translate":{"post":{"operationId":"translateCaptions","tags":["Editing"],"summary":"Translate captions","x-summary-ru":"Перевести субтитры","x-scopes":["montage:run"],"x-rate":"paid","x-paid":true,"x-public":false,"security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranslateRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"anyOf":[{"$ref":"#/components/schemas/Quote"},{"$ref":"#/components/schemas/TranslateResult"}]}},"required":["ok","data"],"additionalProperties":false}}}},"default":{"description":"Error / Ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/projects/{id}/transcribe":{"post":{"operationId":"transcribeSpeech","tags":["Editing"],"summary":"Captions from speech","x-summary-ru":"Субтитры из речи","description":"Recognises speech in the project sources (a manual project or new sources) — at AI cost, per minute of sound. Without `confirmCost` returns the price. Runs in the background: follow it with GET …/transcribe; when ready, the words are in the transcript and captions follow the speech.","x-description-ru":"Распознаёт речь исходников проекта (ручной проект или новые исходники) — по себестоимости ИИ за минуту звука. Без `confirmCost` — цена. Идёт в фоне: ход — GET …/transcribe; когда готово, слова — в тексте ролика, субтитры идут за речью.","x-scopes":["montage:run"],"x-rate":"paid","x-paid":true,"x-public":false,"security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranscribeRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"anyOf":[{"$ref":"#/components/schemas/Quote"},{"$ref":"#/components/schemas/TranscribeJob"}]}},"required":["ok","data"],"additionalProperties":false}}}},"default":{"description":"Error / Ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"get":{"operationId":"transcribeJobs","tags":["Editing"],"summary":"Speech recognition jobs","x-summary-ru":"Задачи распознавания речи","x-scopes":["projects:read"],"x-rate":"default","x-paid":false,"x-public":false,"security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"array","items":{"$ref":"#/components/schemas/TranscribeJob"}}},"required":["ok","data"],"additionalProperties":false}}}},"default":{"description":"Error / Ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/projects/{id}/director/brief":{"post":{"operationId":"directorBrief","tags":["Editing"],"summary":"Director brief for your AI assistant (free)","x-summary-ru":"Бриф режиссёра для вашего ИИ-ассистента (бесплатно)","description":"The material (speech by word ids, pauses, retakes, wishes), general tips and the schemas of the plan and of scenes. Your assistant looks at the footage with sourceFrames and sends the plan with what it saw to submitDirectorPlan; the rules of the Slicer director run on the server there. Optional settings are saved to the project.","x-description-ru":"Материал (речь по id слов, паузы, дубли, пожелания), общие советы и схемы плана и наблюдений по кадрам. Ассистент смотрит кадры через sourceFrames и присылает план вместе с тем, что увидел, в submitDirectorPlan — правила режиссёра Slicer работают там, на сервере. Настройки, если переданы, сохраняются в проекте.","x-scopes":["projects:write"],"x-rate":"default","x-paid":false,"x-public":false,"security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DirectorBriefRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"$ref":"#/components/schemas/DirectorBrief"}},"required":["ok","data"],"additionalProperties":false}}}},"default":{"description":"Error / Ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/projects/{id}/sources/{index}/frames":{"get":{"operationId":"sourceFrames","tags":["Editing"],"summary":"Frames of a source (free)","x-summary-ru":"Кадры исходника (бесплатно)","x-scopes":["projects:read"],"x-rate":"default","x-paid":false,"x-public":false,"security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991}},{"name":"index","in":"path","required":true,"schema":{"type":"integer","minimum":0,"maximum":9007199254740991}},{"name":"times","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d+(\\.\\d+)?(,\\d+(\\.\\d+)?){0,15}$"}},{"name":"from","in":"query","required":false,"schema":{"type":"number","minimum":0}},{"name":"to","in":"query","required":false,"schema":{"type":"number","minimum":0}},{"name":"count","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":16}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"$ref":"#/components/schemas/SourceFrames"}},"required":["ok","data"],"additionalProperties":false}}}},"default":{"description":"Error / Ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/projects/{id}/director/plan":{"post":{"operationId":"submitDirectorPlan","tags":["Editing"],"summary":"Apply a director plan (free)","x-summary-ru":"Применить план режиссёра (бесплатно)","description":"The rules of the Slicer director are applied to the plan on the server (word boundaries, retakes, footage by your scenes, restraint, length): the plan becomes the video document — a new revision, visible in the editor — and the answer lists fixes and issues to address. Media cards from a description are not accepted (their picture is a paid generation).","x-description-ru":"К плану на сервере применяются правила режиссёра Slicer (границы слов, дубли, видеоряд по вашим наблюдениям, сдержанность, длительность): план становится документом ролика — новая ревизия, видна в редакторе, — в ответе исправления и замечания. Медиа-карточки по описанию не принимаются (их картинка — платная генерация).","x-scopes":["projects:write"],"x-rate":"default","x-paid":false,"x-public":false,"security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DirectorPlanRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"$ref":"#/components/schemas/DirectorPlanResult"}},"required":["ok","data"],"additionalProperties":false}}}},"default":{"description":"Error / Ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/projects/{id}/auto-color":{"post":{"operationId":"autoColor","tags":["Editing"],"summary":"Auto colour and colour matching (free)","x-summary-ru":"Автобаланс и подбор цвета (бесплатно)","description":"No AI: statistics of 10 frames of the fragment → «Adjust» values (exposure, contrast, saturation, white balance). The result is applied and saved.","x-description-ru":"Без ИИ: статистика 10 кадров фрагмента → значения «Настроить» (экспозиция, контраст, насыщенность, баланс белого). Результат применяется и сохраняется.","x-scopes":["projects:write"],"x-rate":"default","x-paid":false,"x-public":false,"security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AutoColorRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"$ref":"#/components/schemas/AutoColorResult"}},"required":["ok","data"],"additionalProperties":false}}}},"default":{"description":"Error / Ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/projects/{id}/style":{"patch":{"operationId":"setStyle","tags":["Editing"],"summary":"Change the style","x-summary-ru":"Сменить стиль","x-scopes":["projects:write"],"x-rate":"default","x-paid":false,"x-public":false,"security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StyleRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"$ref":"#/components/schemas/Project"}},"required":["ok","data"],"additionalProperties":false}}}},"default":{"description":"Error / Ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/projects/{id}/export":{"post":{"operationId":"exportVideo","tags":["Export"],"summary":"Render the video (free)","x-summary-ru":"Отрендерить ролик (бесплатно)","description":"With `publish` — publishes after rendering (needs the `publish` scope). TikTok — only from the Slicer app.","x-description-ru":"С `publish` — публикует после рендера (нужна область `publish`). TikTok — только из приложения Slicer.","x-scopes":["projects:write"],"x-rate":"paid","x-paid":false,"x-public":false,"security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"$ref":"#/components/schemas/ProjectDetails"}},"required":["ok","data"],"additionalProperties":false}}}},"default":{"description":"Error / Ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/projects/{id}/publications":{"get":{"operationId":"listPublications","tags":["Export"],"summary":"Project publications","x-summary-ru":"Публикации проекта","x-scopes":["projects:read"],"x-rate":"default","x-paid":false,"x-public":false,"security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"array","items":{"$ref":"#/components/schemas/Publication"}}},"required":["ok","data"],"additionalProperties":false}}}},"default":{"description":"Error / Ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/social/accounts":{"get":{"operationId":"listSocialAccounts","tags":["Export"],"summary":"Connected social accounts","x-summary-ru":"Подключённые соцсети","x-scopes":["publish"],"x-rate":"default","x-paid":false,"x-public":false,"security":[{"bearerAuth":[]}],"parameters":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"array","items":{"$ref":"#/components/schemas/SocialAccount"}}},"required":["ok","data"],"additionalProperties":false}}}},"default":{"description":"Error / Ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/webhooks":{"get":{"operationId":"listWebhooks","tags":["Webhooks"],"summary":"List webhooks","x-summary-ru":"Список вебхуков","x-scopes":["webhooks"],"x-rate":"default","x-paid":false,"x-public":false,"security":[{"bearerAuth":[]}],"parameters":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"array","items":{"$ref":"#/components/schemas/Webhook"}}},"required":["ok","data"],"additionalProperties":false}}}},"default":{"description":"Error / Ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"createWebhook","tags":["Webhooks"],"summary":"Add a webhook","x-summary-ru":"Добавить вебхук","x-scopes":["webhooks"],"x-rate":"default","x-paid":false,"x-public":false,"security":[{"bearerAuth":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWebhookRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"$ref":"#/components/schemas/CreatedWebhook"}},"required":["ok","data"],"additionalProperties":false}}}},"default":{"description":"Error / Ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/webhooks/{id}":{"get":{"operationId":"getWebhook","tags":["Webhooks"],"summary":"Webhook","x-summary-ru":"Вебхук","x-scopes":["webhooks"],"x-rate":"default","x-paid":false,"x-public":false,"security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"$ref":"#/components/schemas/Webhook"}},"required":["ok","data"],"additionalProperties":false}}}},"default":{"description":"Error / Ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"operationId":"updateWebhook","tags":["Webhooks"],"summary":"Change a webhook","x-summary-ru":"Изменить вебхук","x-scopes":["webhooks"],"x-rate":"default","x-paid":false,"x-public":false,"security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWebhookRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"$ref":"#/components/schemas/Webhook"}},"required":["ok","data"],"additionalProperties":false}}}},"default":{"description":"Error / Ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteWebhook","tags":["Webhooks"],"summary":"Delete a webhook","x-summary-ru":"Удалить вебхук","x-scopes":["webhooks"],"x-rate":"default","x-paid":false,"x-public":false,"security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"deleted":{"type":"boolean"}},"required":["id","deleted"],"additionalProperties":false}},"required":["ok","data"],"additionalProperties":false}}}},"default":{"description":"Error / Ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/webhooks/{id}/test":{"post":{"operationId":"testWebhook","tags":["Webhooks"],"summary":"Send a test `ping` event","x-summary-ru":"Отправить проверочное событие `ping`","x-scopes":["webhooks"],"x-rate":"default","x-paid":false,"x-public":false,"security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"$ref":"#/components/schemas/WebhookDelivery"}},"required":["ok","data"],"additionalProperties":false}}}},"default":{"description":"Error / Ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/webhooks/{id}/deliveries":{"get":{"operationId":"listDeliveries","tags":["Webhooks"],"summary":"Last 100 deliveries","x-summary-ru":"Последние 100 доставок","x-scopes":["webhooks"],"x-rate":"default","x-paid":false,"x-public":false,"security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"data":{"type":"array","items":{"$ref":"#/components/schemas/WebhookDelivery"}}},"required":["ok","data"],"additionalProperties":false}}}},"default":{"description":"Error / Ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/openapi.json":{"get":{"operationId":"getOpenApi","tags":["Catalog"],"summary":"This specification (OpenAPI 3.1)","x-summary-ru":"Эта спецификация (OpenAPI 3.1)","x-scopes":[],"x-rate":"default","x-paid":false,"x-public":true,"security":[],"parameters":[],"responses":{"200":{"description":"OK"},"default":{"description":"Error / Ошибка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"Error":{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","properties":{"code":{"type":"string","description":"Stable snake_case error code","x-description-ru":"Стабильный код ошибки в snake_case"},"message":{"type":"string","description":"Human-readable message in the account language","x-description-ru":"Понятный текст на языке аккаунта"},"fields":{"description":"Field errors","x-description-ru":"Ошибки по полям","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"retryAfterSec":{"description":"Seconds to wait before retrying","x-description-ru":"Через сколько секунд повторить","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["code","message"],"additionalProperties":false}},"required":["ok","error"],"additionalProperties":false},"Quote":{"type":"object","properties":{"status":{"type":"string","const":"quote"},"cost":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Price in tokens; repeat the request with `confirmCost` equal to it. For an operation at cost (`atCost`) — the maximum: the actual cost is charged, never more","x-description-ru":"Цена в токенах; повторите запрос с `confirmCost`, равным ей. У операции по себестоимости (`atCost`) — предельная: спишется фактическая себестоимость, не больше"},"free":{"type":"boolean","description":"The operation is free (first video, free retry)","x-description-ru":"Операция бесплатна (первый ролик, бесплатный повтор)"},"estimate":{"description":"Operation at cost: expected price in tokens (fractional)","x-description-ru":"Операция по себестоимости: ожидаемая цена в токенах (дробно)","type":"number"},"atCost":{"description":"Priced at the AI providers’ cost, no markup: the wallet is charged the actual cost, at most `cost`","x-description-ru":"Цена — себестоимость ИИ-сервисов без наценки: списывается фактическая, не больше `cost`","type":"boolean"},"available":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Tokens available now","x-description-ru":"Сколько токенов доступно сейчас"},"enough":{"type":"boolean","description":"Enough tokens to run","x-description-ru":"Токенов хватает"},"spendLimitLeft":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"What is left of the token's monthly spend limit; `null` — no limit","x-description-ru":"Остаток месячного лимита расходов токена; `null` — без лимита"}},"required":["status","cost","free","available","enough","spendLimitLeft"],"additionalProperties":false},"Me":{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"name":{"type":["string","null"]},"language":{"type":"string","enum":["ru","en"]},"wallet":{"type":"object","properties":{"balance":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Token balance","x-description-ru":"Баланс токенов"},"held":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Reserved for running jobs","x-description-ru":"Зарезервировано под идущие работы"},"available":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Available to spend","x-description-ru":"Можно потратить"},"freeMontageAvailable":{"type":"boolean","description":"The first video is free (with a watermark)","x-description-ru":"Первый ролик бесплатно (с водяным знаком)"},"montageTokens":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Price of one montage","x-description-ru":"Цена одного монтажа"}},"required":["balance","held","available","freeMontageAvailable","montageTokens"],"additionalProperties":false},"token":{"type":"object","properties":{"kind":{"type":"string","enum":["personal","oauth"]},"scopes":{"type":"array","items":{"type":"string","enum":["account:read","projects:read","projects:write","montage:run","publish","webhooks"]}},"spendLimit":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"spentThisMonth":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["kind","scopes","spendLimit","spentThisMonth"],"additionalProperties":false}},"required":["id","name","language","wallet","token"],"additionalProperties":false},"WalletTransaction":{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"type":{"type":"string","enum":["topup","bonus","charge","refund","adjustment"]},"amount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Tokens: positive — credit, negative — charge","x-description-ru":"Токены: плюс — начисление, минус — списание"},"description":{"type":["string","null"]},"projectId":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 date-time, UTC","x-description-ru":"Дата и время ISO 8601, UTC"}},"required":["id","type","amount","description","projectId","createdAt"],"additionalProperties":false},"Styles":{"type":"object","properties":{"templates":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":{}}},"fonts":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":{}}},"colors":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":{}}},"subtitleDesigns":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":{}}},"subtitleOptions":{"description":"Caption options (word highlight, entrance, words on screen, letter case) with their values","x-description-ru":"Настройки субтитров (выделение слова, появление, слов на экране, регистр) и их значения","type":"array","items":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":{}}},"params":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":{}}},"direction":{"type":"object","properties":{},"additionalProperties":{}},"defaults":{"type":"object","properties":{},"additionalProperties":{}},"pricing":{"type":"object","properties":{},"additionalProperties":{}}},"required":["templates","fonts","colors","subtitleDesigns","params","direction","defaults","pricing"],"additionalProperties":{},"description":"Same catalog as the apps use: ids, titles (ru/en), descriptions, defaults and prices","x-description-ru":"Тот же каталог, что у приложений: id, названия (ru/en), описания, значения по умолчанию и цены"},"MontageSettingsInput":{"type":"object","properties":{"templateId":{"description":"Template: `bold`, `clean`, `pop`","x-description-ru":"Шаблон: `bold`, `clean`, `pop`","type":"string"},"fontId":{"description":"Caption font: punch, poster, block, wide, editorial, rounded, script, mono","x-description-ru":"Шрифт субтитров: punch, poster, block, wide, editorial, rounded, script, mono","type":"string"},"colorId":{"description":"Accent: amber, azure, lime, crimson, fuchsia, mint, violet, white","x-description-ru":"Акцент: amber, azure, lime, crimson, fuchsia, mint, violet, white","type":"string"},"subtitles":{"description":"Caption look; a partial change keeps the other fields. A new `design` without `highlight`/`animation`/`words` resets them to `auto`","x-description-ru":"Вид субтитров; частичная правка сохраняет остальные поля. Новое `design` без `highlight`/`animation`/`words` возвращает их к `auto`","type":"object","properties":{"enabled":{"type":"boolean"},"design":{"type":"string","enum":["dynamic","karaoke","classic","minimal","pop","box","word"]},"size":{"type":"string","enum":["small","medium","large"]},"position":{"description":"`auto` — each phrase where the frame has the most free space (off the face, hook, plaques, titles)","x-description-ru":"`auto` — каждая фраза там, где в кадре свободнее (не на лице, хуке, плашках, титрах)","type":"string","enum":["auto","top","center","bottom"]},"speakerColors":{"description":"Each speaker in its own colour","x-description-ru":"Слова каждого говорящего — своим цветом","type":"boolean"},"highlight":{"description":"The spoken word: colour, pop (grows), box, underline; `auto` — as the design intends","x-description-ru":"Слово, которое звучит: цвет, увеличение, плашка, подчёркивание; `auto` — как задумано оформлением","type":"string","enum":["auto","none","color","pop","box","underline"]},"animation":{"description":"Phrase entrance; `words` — word by word as spoken","x-description-ru":"Появление фразы; `words` — по словам, по мере речи","type":"string","enum":["auto","none","fade","pop","slide","words"]},"words":{"description":"Words on screen at once","x-description-ru":"Сколько слов на экране сразу","type":"string","enum":["auto","one","few","line","phrase"]},"letterCase":{"description":"Letter case; `auto` — as the font intends","x-description-ru":"Регистр; `auto` — как задумано шрифтом","type":"string","enum":["auto","upper","normal"]}},"additionalProperties":false},"params":{"description":"Montage parameters, see `GET /v1/styles` → `params`","x-description-ru":"Параметры монтажа, см. `GET /v1/styles` → `params`","type":"object","properties":{"emoji":{"type":"boolean"},"soundEffects":{"type":"boolean"},"mediaCards":{"type":"boolean"},"plaques":{"type":"boolean"},"cameraMotion":{"type":"boolean"},"introZoom":{"type":"boolean"},"hook":{"type":"boolean"}},"additionalProperties":false},"smartCut":{"description":"Smart cut: remove pauses and retakes","x-description-ru":"Умная нарезка: убрать паузы и повторы","type":"boolean"},"targetDurationSec":{"description":"Target length; `null` — AI decides (up to 90 s)","x-description-ru":"Длительность; `null` — решает ИИ (до 90 с)","anyOf":[{"type":"number","const":15},{"type":"number","const":30},{"type":"number","const":60},{"type":"number","const":90},{"type":"null"}]},"language":{"type":"string","enum":["auto","ru","en"]},"direction":{"type":"object","properties":{"mode":{"type":"string","enum":["auto","talking","story","product","aesthetic"]},"pace":{"type":"string","enum":["calm","balanced","dynamic"]},"effects":{"type":"string","enum":["off","light","bold"]},"narration":{"description":"AI voiceover","x-description-ru":"Закадровый голос ИИ","type":"boolean"},"voice":{"type":"string","enum":["warm","soft","confident","deep"]}},"additionalProperties":false}},"additionalProperties":{},"description":"Any subset of montage settings; missing values — defaults, unknown ids — defaults","x-description-ru":"Любая часть настроек монтажа; недостающее — по умолчанию, неизвестные id — по умолчанию"},"ExportProfile":{"type":"object","properties":{"container":{"type":"string","enum":["mp4","mov"]},"codec":{"type":"string","enum":["h264","hevc"]},"resolution":{"type":"string","enum":["720p","1080p","1440p","2160p"]},"fps":{"anyOf":[{"type":"number","const":24},{"type":"number","const":25},{"type":"number","const":30}]},"quality":{"type":"string","enum":["balanced","high","max"]},"colorDepth":{"description":"10-bit only with HEVC","x-description-ru":"10 бит — только с HEVC","anyOf":[{"type":"number","const":8},{"type":"number","const":10}]},"audioBitrate":{"anyOf":[{"type":"number","const":128},{"type":"number","const":192},{"type":"number","const":256},{"type":"number","const":320}]},"loudness":{"description":"Target loudness, LUFS","x-description-ru":"Громкость, LUFS","anyOf":[{"type":"number","const":-14},{"type":"number","const":-16},{"type":"number","const":-23}]}},"additionalProperties":false},"Upload":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"fileName":{"type":"string"},"purpose":{"type":"string","enum":["source","media","music"]},"origin":{"type":"string","enum":["client","import","server"]},"sizeBytes":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"status":{"type":"string","enum":["uploading","processing","ready","failed","aborted"]},"partSize":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Part size for `PUT …/parts/{n}`, bytes (8 MiB)","x-description-ru":"Размер части для `PUT …/parts/{n}`, байт (8 МиБ)"},"partCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"uploadedParts":{"type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"progress":{"anyOf":[{"type":"number","minimum":0,"maximum":1},{"type":"null"}],"description":"Import progress 0–1 while downloading by URL","x-description-ru":"Прогресс импорта 0–1 при загрузке по адресу"},"media":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["video","image","audio"]},"durationSec":{"type":"number"},"width":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"height":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"hasAudio":{"type":"boolean"}},"required":["kind","durationSec","width","height","hasAudio"],"additionalProperties":false},{"type":"null"}]},"error":{"type":["string","null"]},"createdAt":{"type":"string","description":"ISO 8601 date-time, UTC","x-description-ru":"Дата и время ISO 8601, UTC"}},"required":["id","fileName","purpose","origin","sizeBytes","status","partSize","partCount","uploadedParts","progress","media","error","createdAt"],"additionalProperties":false},"CreateUploadRequest":{"type":"object","properties":{"fileName":{"type":"string","minLength":1,"maxLength":255,"description":"File name with extension: the type is detected by it","x-description-ru":"Имя файла с расширением: по нему определяется вид"},"size":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"File size, bytes","x-description-ru":"Размер файла, байт"},"mimeType":{"type":"string","maxLength":128},"purpose":{"description":"`source` (default) — montage material","x-description-ru":"`source` (по умолчанию) — материал монтажа","type":"string","enum":["source","media","music"]}},"required":["fileName","size"],"additionalProperties":false},"CreatedUpload":{"type":"object","properties":{"upload":{"$ref":"#/components/schemas/Upload"},"uploadUrl":{"type":"string","format":"uri","description":"One-time URL: `PUT` the whole file without a token (≤ 1 h, write-only)","x-description-ru":"Одноразовая ссылка: `PUT` всего файла без токена (≤ 1 ч, только запись)"},"uploadUrlExpiresAt":{"type":"string","description":"ISO 8601 date-time, UTC","x-description-ru":"Дата и время ISO 8601, UTC"}},"required":["upload","uploadUrl","uploadUrlExpiresAt"],"additionalProperties":false},"ImportUploadRequest":{"type":"object","properties":{"url":{"type":"string","maxLength":2048,"format":"uri","description":"Public https URL of the file","x-description-ru":"Публичный https-адрес файла"},"fileName":{"description":"Name with extension if the URL has none","x-description-ru":"Имя с расширением, если его нет в адресе","type":"string","minLength":1,"maxLength":255},"purpose":{"type":"string","enum":["source","media","music"]}},"required":["url"],"additionalProperties":false},"ProjectVersion":{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Version id (history event)","x-description-ru":"Id версии (записи истории)"},"version":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"idea":{"description":"What makes this version different","x-description-ru":"Чем версия отличается","type":["string","null"]},"durationSec":{"type":["number","null"]},"current":{"type":"boolean"},"awaitingChoice":{"type":"boolean","description":"Offered for choice after the last montage","x-description-ru":"Предложена на выбор после последнего монтажа"},"hasFile":{"type":"boolean","description":"The file is kept (last 10 versions)","x-description-ru":"Файл хранится (последние 10 версий)"},"createdAt":{"type":"string","description":"ISO 8601 date-time, UTC","x-description-ru":"Дата и время ISO 8601, UTC"}},"required":["id","version","idea","durationSec","current","awaitingChoice","hasFile","createdAt"],"additionalProperties":false},"Project":{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"title":{"type":"string"},"status":{"type":"string","enum":["queued","processing","succeeded","failed","cancelled","draft"],"description":"`draft` — an “edit it myself” project before its first export: edit it with operations, then export","x-description-ru":"`draft` — проект «Сам в редакторе» до первого экспорта: правьте операциями и экспортируйте"},"mode":{"type":"string","enum":["ai","manual"],"description":"`ai` — edited by the AI director; `manual` — materials on the timeline as is, free (only AI operations cost)","x-description-ru":"`ai` — монтаж ИИ-режиссёром; `manual` — материалы на таймлайне как есть, бесплатно (платны только ИИ-операции)"},"stage":{"type":["string","null"]},"progress":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Progress of the current run, %","x-description-ru":"Прогресс текущего запуска, %"},"client":{"description":"Where it was created: web, mobile, api, mcp","x-description-ru":"Где создан: web, mobile, api, mcp","type":["string","null"]},"settings":{"type":"object","properties":{},"additionalProperties":{},"description":"Montage settings (see MontageSettingsInput)","x-description-ru":"Настройки монтажа (см. MontageSettingsInput)"},"brief":{"type":["string","null"]},"isFree":{"type":"boolean"},"watermark":{"type":"boolean"},"tokensCost":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"durationSec":{"type":["number","null"]},"versionChoice":{"anyOf":[{"type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},{"type":"null"}],"description":"Version ids awaiting your choice; a montage returns one version, so usually `null`","x-description-ru":"Id версий, ждущих выбора; монтаж отдаёт одну версию, поэтому обычно `null`"},"result":{"anyOf":[{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"Download with the token (Range supported)","x-description-ru":"Скачать с токеном (поддерживается Range)"},"posterUrl":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]},"container":{"type":"string"},"info":{"anyOf":[{"type":"object","properties":{},"additionalProperties":{}},{"type":"null"}]}},"required":["url","posterUrl","container","info"],"additionalProperties":false},{"type":"null"}]},"appUrl":{"type":"string","format":"uri","description":"The project in the Slicer web app","x-description-ru":"Проект в веб-приложении Slicer"},"sourcesAvailable":{"type":"boolean","description":"Sources are kept 7 days after the montage","x-description-ru":"Исходники хранятся 7 дней после монтажа"},"createdAt":{"type":"string","description":"ISO 8601 date-time, UTC","x-description-ru":"Дата и время ISO 8601, UTC"},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 date-time, UTC","x-description-ru":"Дата и время ISO 8601, UTC"},{"type":"null"}]}},"required":["id","title","status","mode","stage","progress","client","settings","brief","isFree","watermark","tokensCost","error","durationSec","versionChoice","result","appUrl","sourcesAvailable","createdAt","finishedAt"],"additionalProperties":false},"ProjectDetails":{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"title":{"type":"string"},"status":{"type":"string","enum":["queued","processing","succeeded","failed","cancelled","draft"],"description":"`draft` — an “edit it myself” project before its first export: edit it with operations, then export","x-description-ru":"`draft` — проект «Сам в редакторе» до первого экспорта: правьте операциями и экспортируйте"},"mode":{"type":"string","enum":["ai","manual"],"description":"`ai` — edited by the AI director; `manual` — materials on the timeline as is, free (only AI operations cost)","x-description-ru":"`ai` — монтаж ИИ-режиссёром; `manual` — материалы на таймлайне как есть, бесплатно (платны только ИИ-операции)"},"stage":{"type":["string","null"]},"progress":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Progress of the current run, %","x-description-ru":"Прогресс текущего запуска, %"},"client":{"description":"Where it was created: web, mobile, api, mcp","x-description-ru":"Где создан: web, mobile, api, mcp","type":["string","null"]},"settings":{"type":"object","properties":{},"additionalProperties":{},"description":"Montage settings (see MontageSettingsInput)","x-description-ru":"Настройки монтажа (см. MontageSettingsInput)"},"brief":{"type":["string","null"]},"isFree":{"type":"boolean"},"watermark":{"type":"boolean"},"tokensCost":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"durationSec":{"type":["number","null"]},"versionChoice":{"anyOf":[{"type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},{"type":"null"}],"description":"Version ids awaiting your choice; a montage returns one version, so usually `null`","x-description-ru":"Id версий, ждущих выбора; монтаж отдаёт одну версию, поэтому обычно `null`"},"result":{"anyOf":[{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"Download with the token (Range supported)","x-description-ru":"Скачать с токеном (поддерживается Range)"},"posterUrl":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]},"container":{"type":"string"},"info":{"anyOf":[{"type":"object","properties":{},"additionalProperties":{}},{"type":"null"}]}},"required":["url","posterUrl","container","info"],"additionalProperties":false},{"type":"null"}]},"appUrl":{"type":"string","format":"uri","description":"The project in the Slicer web app","x-description-ru":"Проект в веб-приложении Slicer"},"sourcesAvailable":{"type":"boolean","description":"Sources are kept 7 days after the montage","x-description-ru":"Исходники хранятся 7 дней после монтажа"},"createdAt":{"type":"string","description":"ISO 8601 date-time, UTC","x-description-ru":"Дата и время ISO 8601, UTC"},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 date-time, UTC","x-description-ru":"Дата и время ISO 8601, UTC"},{"type":"null"}]},"stages":{"type":"array","items":{"type":"object","properties":{"stage":{"type":"string"},"status":{"type":"string","enum":["pending","running","succeeded","failed","skipped"]},"inRun":{"type":"boolean","description":"Part of the current run (not reused from a previous one)","x-description-ru":"Часть текущего запуска (не взят готовым)"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 date-time, UTC","x-description-ru":"Дата и время ISO 8601, UTC"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 date-time, UTC","x-description-ru":"Дата и время ISO 8601, UTC"},{"type":"null"}]},"durationSec":{"type":["number","null"]},"progress":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"tokens":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Share of the run price","x-description-ru":"Доля цены запуска"}},"required":["stage","status","inRun","startedAt","finishedAt","durationSec","progress","tokens"],"additionalProperties":false}},"run":{"type":"object","properties":{"kind":{"type":"string"},"status":{"type":"string"},"tokens":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"tokensState":{"type":"string","enum":["free","reserved","charged","refunded"]},"queuedAt":{"type":"string","description":"ISO 8601 date-time, UTC","x-description-ru":"Дата и время ISO 8601, UTC"},"startedAt":{"anyOf":[{"type":"string","description":"ISO 8601 date-time, UTC","x-description-ru":"Дата и время ISO 8601, UTC"},{"type":"null"}]},"finishedAt":{"anyOf":[{"type":"string","description":"ISO 8601 date-time, UTC","x-description-ru":"Дата и время ISO 8601, UTC"},{"type":"null"}]}},"required":["kind","status","tokens","tokensState","queuedAt","startedAt","finishedAt"],"additionalProperties":false},"versions":{"type":"array","items":{"$ref":"#/components/schemas/ProjectVersion"}}},"required":["id","title","status","mode","stage","progress","client","settings","brief","isFree","watermark","tokensCost","error","durationSec","versionChoice","result","appUrl","sourcesAvailable","createdAt","finishedAt","stages","run","versions"],"additionalProperties":false},"CreateProjectRequest":{"type":"object","properties":{"uploadIds":{"minItems":1,"maxItems":20,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"description":"Ready `source` uploads in material order","x-description-ru":"Готовые загрузки `source` в порядке материалов"},"mode":{"description":"`ai` (default) — the AI director edits the video, paid; `manual` — materials go to the timeline in order, the project is a free `draft` you edit and export yourself","x-description-ru":"`ai` (по умолчанию) — монтаж ИИ-режиссёром, платно; `manual` — материалы ложатся на таймлайн по порядку, проект — бесплатный черновик `draft`, его правят и экспортируют сами","type":"string","enum":["ai","manual"]},"format":{"description":"Frame format of a `manual` project (default 9:16)","x-description-ru":"Формат кадра проекта `manual` (по умолчанию 9:16)","type":"string","enum":["9:16","4:5","1:1","16:9"]},"settings":{"$ref":"#/components/schemas/MontageSettingsInput"},"title":{"type":"string","maxLength":120},"brief":{"description":"Wishes for the AI director","x-description-ru":"Пожелания режиссёру","type":"string","maxLength":600},"confirmCost":{"description":"Price you agree to pay. Without it the response is a `Quote` and nothing starts","x-description-ru":"Цена, на которую вы согласны. Без неё ответ — `Quote`, ничего не запускается","type":"integer","minimum":0,"maximum":9007199254740991}},"required":["uploadIds"],"additionalProperties":false},"RemountRequest":{"type":"object","properties":{"settings":{"$ref":"#/components/schemas/MontageSettingsInput"},"brief":{"type":"string","maxLength":600},"confirmCost":{"description":"Price you agree to pay. Without it the response is a `Quote` and nothing starts","x-description-ru":"Цена, на которую вы согласны. Без неё ответ — `Quote`, ничего не запускается","type":"integer","minimum":0,"maximum":9007199254740991}},"required":["settings"],"additionalProperties":false},"RetryRequest":{"type":"object","properties":{"confirmCost":{"description":"Price you agree to pay. Without it the response is a `Quote` and nothing starts","x-description-ru":"Цена, на которую вы согласны. Без неё ответ — `Quote`, ничего не запускается","type":"integer","minimum":0,"maximum":9007199254740991}},"additionalProperties":false},"RenameRequest":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":120}},"required":["title"],"additionalProperties":false},"HistoryEvent":{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"kind":{"type":"string"},"status":{"type":"string"},"title":{"type":["string","null"]},"version":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 date-time, UTC","x-description-ru":"Дата и время ISO 8601, UTC"}},"required":["id","kind","status","title","version","createdAt"],"additionalProperties":{}},"Transcript":{"type":"object","properties":{"rev":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Document revision: pass it to edits","x-description-ru":"Ревизия документа: передайте её в правки"},"durationSec":{"type":"number"},"text":{"type":"string","description":"The video as text for an LLM: fragments with word ids `w<id>`, cut words in [brackets], graphics","x-description-ru":"Ролик текстом для LLM: фрагменты со словами `w<id>`, вырезанное — в [скобках], графика"},"blocks":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"position":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sourceIndex":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"kind":{"type":"string","enum":["words","range"]},"words":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"text":{"type":"string"},"cut":{"type":"boolean"},"accent":{"type":"boolean"}},"required":["id","text","cut","accent"],"additionalProperties":false}}},"required":["id","position","sourceIndex","kind","words"],"additionalProperties":false}},"elements":{"type":"object","properties":{"hook":{"type":["string","null"]},"plaques":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"kind":{"type":"string"},"title":{"type":"string"},"fromWordId":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Word id; `null` — the element is placed by time (`anchor`)","x-description-ru":"Id слова; `null` — элемент стоит по времени (`anchor`)"},"toWordId":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Word id; `null` — the element is placed by time (`anchor`)","x-description-ru":"Id слова; `null` — элемент стоит по времени (`anchor`)"},"start":{"description":"Where the element starts in the video, s; absent — hidden (its words were cut)","x-description-ru":"Где элемент начинается в ролике, с; нет — не показывается (его слова вырезаны)","type":"number"},"end":{"description":"Where the element ends in the video, s","x-description-ru":"Где элемент заканчивается в ролике, с","type":"number"},"anchor":{"description":"Placed by time: fragment, second of its source and duration in the video, s","x-description-ru":"Привязка ко времени: фрагмент, секунда его исходника и длительность в ролике, с","type":"object","properties":{"blockId":{"type":"string"},"at":{"type":"number"},"duration":{"type":"number"}},"required":["blockId","at","duration"],"additionalProperties":false}},"required":["id","kind","title","fromWordId","toWordId"],"additionalProperties":false}},"cards":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"caption":{"type":["string","null"]},"fromWordId":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Word id; `null` — the element is placed by time (`anchor`)","x-description-ru":"Id слова; `null` — элемент стоит по времени (`anchor`)"},"toWordId":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Word id; `null` — the element is placed by time (`anchor`)","x-description-ru":"Id слова; `null` — элемент стоит по времени (`anchor`)"},"start":{"description":"Where the element starts in the video, s; absent — hidden (its words were cut)","x-description-ru":"Где элемент начинается в ролике, с; нет — не показывается (его слова вырезаны)","type":"number"},"end":{"description":"Where the element ends in the video, s","x-description-ru":"Где элемент заканчивается в ролике, с","type":"number"},"anchor":{"description":"Placed by time: fragment, second of its source and duration in the video, s","x-description-ru":"Привязка ко времени: фрагмент, секунда его исходника и длительность в ролике, с","type":"object","properties":{"blockId":{"type":"string"},"at":{"type":"number"},"duration":{"type":"number"}},"required":["blockId","at","duration"],"additionalProperties":false}},"required":["id","caption","fromWordId","toWordId"],"additionalProperties":false}},"emoji":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"emoji":{"type":"string"},"wordId":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Word id; `null` — the element is placed by time (`anchor`)","x-description-ru":"Id слова; `null` — элемент стоит по времени (`anchor`)"},"start":{"description":"Where the element starts in the video, s; absent — hidden (its words were cut)","x-description-ru":"Где элемент начинается в ролике, с; нет — не показывается (его слова вырезаны)","type":"number"},"end":{"description":"Where the element ends in the video, s","x-description-ru":"Где элемент заканчивается в ролике, с","type":"number"},"anchor":{"description":"Placed by time: fragment, second of its source and duration in the video, s","x-description-ru":"Привязка ко времени: фрагмент, секунда его исходника и длительность в ролике, с","type":"object","properties":{"blockId":{"type":"string"},"at":{"type":"number"},"duration":{"type":"number"}},"required":["blockId","at","duration"],"additionalProperties":false}},"required":["id","emoji","wordId"],"additionalProperties":false}},"zooms":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"fromWordId":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Word id; `null` — the element is placed by time (`anchor`)","x-description-ru":"Id слова; `null` — элемент стоит по времени (`anchor`)"},"toWordId":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Word id; `null` — the element is placed by time (`anchor`)","x-description-ru":"Id слова; `null` — элемент стоит по времени (`anchor`)"},"start":{"description":"Where the element starts in the video, s; absent — hidden (its words were cut)","x-description-ru":"Где элемент начинается в ролике, с; нет — не показывается (его слова вырезаны)","type":"number"},"end":{"description":"Where the element ends in the video, s","x-description-ru":"Где элемент заканчивается в ролике, с","type":"number"},"anchor":{"description":"Placed by time: fragment, second of its source and duration in the video, s","x-description-ru":"Привязка ко времени: фрагмент, секунда его исходника и длительность в ролике, с","type":"object","properties":{"blockId":{"type":"string"},"at":{"type":"number"},"duration":{"type":"number"}},"required":["blockId","at","duration"],"additionalProperties":false}},"required":["id","fromWordId","toWordId"],"additionalProperties":false}},"titles":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"text":{"type":"string"},"font":{"type":"string"},"size":{"type":"number"},"color":{"type":"string"},"background":{"type":"string","enum":["none","box","pill"]},"backgroundColor":{"type":"string"},"outline":{"type":"boolean"},"shadow":{"type":"boolean"},"align":{"type":"string","enum":["left","center","right"]},"x":{"type":"number"},"y":{"type":"number"},"animIn":{"type":"string","enum":["fade","slide","pop","typewriter"]},"animOut":{"type":"string","enum":["fade","slide","pop"]},"fromWordId":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Word id; `null` — the element is placed by time (`anchor`)","x-description-ru":"Id слова; `null` — элемент стоит по времени (`anchor`)"},"toWordId":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Word id; `null` — the element is placed by time (`anchor`)","x-description-ru":"Id слова; `null` — элемент стоит по времени (`anchor`)"},"start":{"description":"Where the element starts in the video, s; absent — hidden (its words were cut)","x-description-ru":"Где элемент начинается в ролике, с; нет — не показывается (его слова вырезаны)","type":"number"},"end":{"description":"Where the element ends in the video, s","x-description-ru":"Где элемент заканчивается в ролике, с","type":"number"},"anchor":{"description":"Placed by time: fragment, second of its source and duration in the video, s","x-description-ru":"Привязка ко времени: фрагмент, секунда его исходника и длительность в ролике, с","type":"object","properties":{"blockId":{"type":"string"},"at":{"type":"number"},"duration":{"type":"number"}},"required":["blockId","at","duration"],"additionalProperties":false}},"required":["id","text","font","size","color","background","align","x","y","fromWordId","toWordId"],"additionalProperties":false},"description":"Free text layers (titles)","x-description-ru":"Свободные текстовые слои (титры)"},"markers":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"time":{"type":"number"},"label":{"type":["string","null"]},"color":{"type":"string","enum":["cyan","yellow","red","green","violet"]}},"required":["id","time","label","color"],"additionalProperties":false},"description":"Author markers on the timeline (not shown in the video); hidden markers are omitted","x-description-ru":"Маркеры автора на таймлайне (в ролик не попадают); отрезанные не показываются"},"sounds":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["whoosh","pop","ding","click","swipe","rise","boom","chime"]},"time":{"type":"number"}},"required":["id","kind","time"],"additionalProperties":false},"description":"Sound effects placed by the author; cut-off ones are omitted","x-description-ru":"Звуковые эффекты, которые поставил автор; отрезанные не показываются"}},"required":["hook","plaques","cards","emoji","zooms","titles","markers","sounds"],"additionalProperties":false}},"required":["rev","durationSec","text","blocks","elements"],"additionalProperties":false},"EditOperation":{"oneOf":[{"type":"object","properties":{"op":{"type":"string","const":"cut_words"},"fromWordId":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"First word id","x-description-ru":"Id первого слова"},"toWordId":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Last word id","x-description-ru":"Id последнего слова"}},"required":["op","fromWordId","toWordId"],"additionalProperties":false,"description":"Cut words out of the video","x-description-ru":"Вырезать слова из ролика"},{"type":"object","properties":{"op":{"type":"string","const":"restore_words"},"fromWordId":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"First word id","x-description-ru":"Id первого слова"},"toWordId":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Last word id","x-description-ru":"Id последнего слова"}},"required":["op","fromWordId","toWordId"],"additionalProperties":false,"description":"Bring cut words or unused source words back","x-description-ru":"Вернуть вырезанные или неиспользованные слова"},{"type":"object","properties":{"op":{"type":"string","const":"cut_fillers"}},"required":["op"],"additionalProperties":false,"description":"Cut filler words (um, uh)","x-description-ru":"Вырезать слова-паразиты"},{"type":"object","properties":{"op":{"type":"string","const":"cut_silences"},"minPause":{"description":"Pauses longer than this are cut, s (default 0.5)","x-description-ru":"Режутся паузы длиннее, с (по умолчанию 0,5)","anyOf":[{"type":"number","const":0.3},{"type":"number","const":0.5},{"type":"number","const":1}]},"blockIds":{"description":"Only these fragments (default — all fragments by time)","x-description-ru":"Только эти фрагменты (по умолчанию — все фрагменты по времени)","maxItems":400,"type":"array","items":{"type":"string","maxLength":64,"description":"Element or fragment id from the transcript","x-description-ru":"Id элемента или фрагмента из текста ролика"}}},"required":["op"],"additionalProperties":false,"description":"Cut pauses by silence (free, no AI)","x-description-ru":"Убрать паузы по тишине (бесплатно, без ИИ)"},{"type":"object","properties":{"op":{"type":"string","const":"remove_block"},"id":{"type":"string","maxLength":64,"description":"Element or fragment id from the transcript","x-description-ru":"Id элемента или фрагмента из текста ролика"}},"required":["op","id"],"additionalProperties":false,"description":"Remove a fragment","x-description-ru":"Удалить фрагмент"},{"type":"object","properties":{"op":{"type":"string","const":"add_source"},"sourceIndex":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Source index (sources of the project, including files attached in the chat)","x-description-ru":"Номер исходника (исходники проекта, в том числе приложенные в чате)"},"position":{"description":"0-based position among fragments (default — the end)","x-description-ru":"Позиция среди фрагментов, с 0 (по умолчанию — в конец)","type":"integer","minimum":0,"maximum":9007199254740991},"srcStart":{"description":"From this second of the source (with srcEnd; default — its speech or the whole source)","x-description-ru":"С этой секунды исходника (вместе с srcEnd; по умолчанию — его речь или весь исходник)","type":"number","minimum":0},"srcEnd":{"description":"To this second of the source","x-description-ru":"До этой секунды исходника","type":"number","minimum":0}},"required":["op","sourceIndex"],"additionalProperties":false,"description":"Put a source (or its part) into the video as a new fragment","x-description-ru":"Поставить исходник (или его часть) в ролик новым фрагментом"},{"type":"object","properties":{"op":{"type":"string","const":"move_block"},"id":{"type":"string","maxLength":64,"description":"Element or fragment id from the transcript","x-description-ru":"Id элемента или фрагмента из текста ролика"},"position":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"0-based position","x-description-ru":"Позиция, с 0"}},"required":["op","id","position"],"additionalProperties":false,"description":"Move a fragment to a 0-based position","x-description-ru":"Переставить фрагмент на позицию (с 0)"},{"type":"object","properties":{"op":{"type":"string","const":"tune_block"},"id":{"type":"string","maxLength":64,"description":"Element or fragment id from the transcript","x-description-ru":"Id элемента или фрагмента из текста ролика"},"speed":{"anyOf":[{"type":"number","minimum":0.25,"maximum":4},{"type":"null"}]},"volume":{"anyOf":[{"type":"number","minimum":0,"maximum":1},{"type":"null"}]},"fadeIn":{"description":"Sound fade-in at the start of the fragment, s","x-description-ru":"Нарастание звука в начале фрагмента, с","anyOf":[{"type":"number","minimum":0,"maximum":3},{"type":"null"}]},"fadeOut":{"description":"Sound fade-out at the end of the fragment, s","x-description-ru":"Затухание звука в конце фрагмента, с","anyOf":[{"type":"number","minimum":0,"maximum":3},{"type":"null"}]},"effect":{"anyOf":[{"type":"string","enum":["shake","pulse","flash","cinema","vignette","grain","blur","glitch","vhs"]},{"type":"null"}]},"transition":{"description":"Transition into this fragment","x-description-ru":"Переход в этот фрагмент","anyOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["jcut","fade","flash","zoom","dissolve","slide","slideRight","slideUp","slideDown","wipe","wipeRight","wipeUp","wipeDown","circleOpen","circleClose","zoomIn","blur","pixelize","radial","scatter"]},"duration":{"type":"number","minimum":0.15,"maximum":1.2}},"required":["kind","duration"],"additionalProperties":false},{"type":"null"}]},"filter":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","enum":["bw","warm","cool","vintage","sepia","vivid","pastel","noir","cinema"]},"strength":{"type":"number","minimum":0,"maximum":1}},"required":["id","strength"],"additionalProperties":false},{"type":"null"}]},"adjust":{"description":"Colour adjustments («Adjust»)","x-description-ru":"Ручные настройки цвета («Настроить»)","anyOf":[{"type":"object","properties":{"exposure":{"description":"Exposure, −1…1 (±1 stop)","x-description-ru":"Экспозиция, −1…1 (±1 ступень)","anyOf":[{"type":"number","minimum":-1,"maximum":1},{"type":"null"}]},"brightness":{"description":"Brightness, −1…1","x-description-ru":"Яркость, −1…1","anyOf":[{"type":"number","minimum":-1,"maximum":1},{"type":"null"}]},"contrast":{"description":"Contrast, −1…1","x-description-ru":"Контраст, −1…1","anyOf":[{"type":"number","minimum":-1,"maximum":1},{"type":"null"}]},"saturation":{"description":"Saturation, −1…1","x-description-ru":"Насыщенность, −1…1","anyOf":[{"type":"number","minimum":-1,"maximum":1},{"type":"null"}]},"temperature":{"description":"Temperature: − cooler, + warmer","x-description-ru":"Температура: − холоднее, + теплее","anyOf":[{"type":"number","minimum":-1,"maximum":1},{"type":"null"}]},"tint":{"description":"Tint: − green, + magenta","x-description-ru":"Оттенок: − зелёный, + пурпурный","anyOf":[{"type":"number","minimum":-1,"maximum":1},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]},"lut":{"anyOf":[{"type":"object","properties":{"preset":{"description":"Built-in LUT look","x-description-ru":"Встроенный LUT","anyOf":[{"type":"string","enum":["teal-orange","film","matte","bleach","golden","moody","nordic","cross","mono-film","vibrant"]},{"type":"null"}]},"uploadId":{"description":"Id of the user's own .cube LUT","x-description-ru":"Id своего LUT (.cube)","anyOf":[{"type":"string","maxLength":36},{"type":"null"}]},"strength":{"type":"number","minimum":0,"maximum":1,"description":"LUT strength 0–1","x-description-ru":"Сила LUT 0–1"}},"required":["strength"],"additionalProperties":false,"description":"LUT: a built-in look (preset) or your own .cube (uploadId)","x-description-ru":"LUT: встроенный (preset) или свой .cube (uploadId)"},{"type":"null"}]},"animIn":{"description":"Entrance animation","x-description-ru":"Анимация появления","anyOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["fade","zoomIn","zoomOut","slideLeft","slideRight","slideUp","slideDown"]},"duration":{"type":"number","minimum":0.2,"maximum":2}},"required":["kind","duration"],"additionalProperties":false},{"type":"null"}]},"animOut":{"description":"Exit animation","x-description-ru":"Анимация исчезновения","anyOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["fade","zoomIn","zoomOut","slideLeft","slideRight","slideUp","slideDown"]},"duration":{"type":"number","minimum":0.2,"maximum":2}},"required":["kind","duration"],"additionalProperties":false},{"type":"null"}]},"background":{"description":"Behind a fitted or masked picture: blur or a colour #RRGGBB","x-description-ru":"Фон за вписанным кадром или маской: blur или цвет #RRGGBB","anyOf":[{"type":"string","pattern":"^(blur|#[0-9a-fA-F]{6})$"},{"type":"null"}]}},"required":["op","id"],"additionalProperties":false,"description":"Fragment speed, volume, effect, transition, colour (filter, adjustments, LUT), animations; `null` resets","x-description-ru":"Скорость, громкость, эффект, переход, цвет (фильтр, «Настроить», LUT), анимации фрагмента; `null` сбрасывает"},{"type":"object","properties":{"op":{"type":"string","const":"set_speed_curve"},"id":{"type":"string","maxLength":64,"description":"Element or fragment id from the transcript","x-description-ru":"Id элемента или фрагмента из текста ролика"},"preset":{"description":"Ready curve: montage, hero, bullet, flash, rampUp, rampDown; null — normal speed","x-description-ru":"Готовая кривая: montage, hero, bullet, flash, rampUp, rampDown; null — обычная скорость","anyOf":[{"type":"string","enum":["montage","hero","bullet","flash","rampUp","rampDown"]},{"type":"null"}]},"speedPoints":{"description":"Own curve: t — share of the fragment (0–1), speed 0.1–8, linear in between","x-description-ru":"Своя кривая: t — доля фрагмента (0–1), скорость 0,1–8, между точками — линейно","minItems":2,"maxItems":8,"type":"array","items":{"type":"object","properties":{"t":{"type":"number","minimum":0,"maximum":1},"speed":{"type":"number","minimum":0.1,"maximum":8}},"required":["t","speed"],"additionalProperties":false}}},"required":["op","id"],"additionalProperties":false,"description":"Speed curve of a footage fragment (the sound is muted on the curve)","x-description-ru":"Кривая скорости фрагмента видеоряда (звук на кривой выключен)"},{"type":"object","properties":{"op":{"type":"string","const":"set_smooth"},"id":{"type":"string","maxLength":64,"description":"Element or fragment id from the transcript","x-description-ru":"Id элемента или фрагмента из текста ролика"},"on":{"type":"boolean","description":"Interpolate frames for a smooth slow motion (fragment slower than 1×, up to 10 s)","x-description-ru":"Плавное замедление интерполяцией кадров (фрагмент медленнее 1×, до 10 с)"}},"required":["op","id","on"],"additionalProperties":false,"description":"Smooth slow motion of a slow footage fragment (frame interpolation, free)","x-description-ru":"Сверхзамедление медленного фрагмента видеоряда (интерполяция кадров, бесплатно)"},{"type":"object","properties":{"op":{"type":"string","const":"set_chromakey"},"id":{"type":"string","maxLength":64,"description":"Element or fragment id from the transcript","x-description-ru":"Id элемента или фрагмента из текста ролика"},"keyColor":{"anyOf":[{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},{"type":"null"}],"description":"Colour of the green (blue) screen, #rrggbb; null — no chroma key","x-description-ru":"Цвет зелёного (синего) фона съёмки, #rrggbb; null — без хромакея"},"similarity":{"description":"How close to the key colour is removed (default 0.15)","x-description-ru":"Насколько близкий к ключу цвет убирается (по умолчанию 0,15)","type":"number","minimum":0.05,"maximum":0.5},"blend":{"description":"Edge softness (default 0.1)","x-description-ru":"Мягкость края (по умолчанию 0,1)","type":"number","minimum":0,"maximum":0.3},"spill":{"description":"Remove the coloured fringe (default true)","x-description-ru":"Убрать цветную кайму (по умолчанию да)","type":"boolean"},"keyBackground":{"description":"Background colour behind the person, #rrggbb","x-description-ru":"Цвет фона позади человека, #rrggbb","type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"keyImage":{"description":"Background photo: upload id of a project image (null — colour)","x-description-ru":"Фото фона: id загрузки картинки проекта (null — цвет)","anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]}},"required":["op","id","keyColor"],"additionalProperties":false,"description":"Chroma key of a fragment: remove a green or blue screen and put a colour or a photo behind","x-description-ru":"Хромакей фрагмента: убрать зелёный или синий фон и поставить позади цвет или фото"},{"type":"object","properties":{"op":{"type":"string","const":"set_keyframe"},"id":{"type":"string","maxLength":64,"description":"Element or fragment id from the transcript","x-description-ru":"Id элемента или фрагмента из текста ролика"},"t":{"type":"number","minimum":0,"maximum":180,"description":"Moment from the start of the fragment, s","x-description-ru":"Момент от начала фрагмента, с"},"x":{"description":"Frame shift to the right, share of the frame width","x-description-ru":"Сдвиг кадра вправо, доля ширины кадра","type":"number","minimum":-1,"maximum":1},"y":{"description":"Frame shift down, share of the frame height","x-description-ru":"Сдвиг кадра вниз, доля высоты кадра","type":"number","minimum":-1,"maximum":1},"scale":{"description":"Frame scale (below 1 — the background shows around)","x-description-ru":"Масштаб кадра (меньше 1 — вокруг виден фон)","type":"number","minimum":0.2,"maximum":4},"rotate":{"description":"Clockwise rotation, degrees","x-description-ru":"Поворот по часовой стрелке, градусы","type":"number","minimum":-180,"maximum":180},"opacity":{"description":"Opacity, 0–1 (below 1 — fades to black)","x-description-ru":"Непрозрачность 0–1 (меньше 1 — уход в чёрное)","type":"number","minimum":0,"maximum":1},"ease":{"description":"How to move to the next keyframe: smooth (default), linear, in (speeds up), out (slows down)","x-description-ru":"Как идти к следующему ключевому кадру: smooth (по умолчанию), linear, in (разгон), out (торможение)","type":"string","enum":["smooth","linear","in","out"]}},"required":["op","id","t"],"additionalProperties":false,"description":"Set a keyframe of a fragment: position, scale, rotation, opacity","x-description-ru":"Ключевой кадр фрагмента: положение, масштаб, поворот, непрозрачность"},{"type":"object","properties":{"op":{"type":"string","const":"remove_keyframe"},"id":{"type":"string","maxLength":64,"description":"Element or fragment id from the transcript","x-description-ru":"Id элемента или фрагмента из текста ролика"},"t":{"type":"number","minimum":0,"maximum":180,"description":"Moment of the keyframe from the start of the fragment, s","x-description-ru":"Момент ключевого кадра от начала фрагмента, с"}},"required":["op","id","t"],"additionalProperties":false,"description":"Remove a keyframe of a fragment","x-description-ru":"Убрать ключевой кадр фрагмента"},{"type":"object","properties":{"op":{"type":"string","const":"set_volume_keys"},"id":{"type":"string","maxLength":64,"description":"Element or fragment id from the transcript","x-description-ru":"Id элемента или фрагмента из текста ролика"},"volumeKeys":{"anyOf":[{"maxItems":24,"type":"array","items":{"type":"object","properties":{"t":{"type":"number","minimum":0,"maximum":180},"v":{"type":"number","minimum":0,"maximum":1}},"required":["t","v"],"additionalProperties":false}},{"type":"null"}],"description":"Volume points: t — seconds from the fragment start, v — volume 0–1 (linear in between); null — constant volume","x-description-ru":"Точки громкости: t — секунды от начала фрагмента, v — громкость 0–1 (между ними — линейно); null — постоянная громкость"}},"required":["op","id","volumeKeys"],"additionalProperties":false,"description":"Fragment volume over time (volume points)","x-description-ru":"Громкость фрагмента по времени (точки громкости)"},{"type":"object","properties":{"op":{"type":"string","const":"set_mask"},"id":{"type":"string","maxLength":64,"description":"Element or fragment id from the transcript","x-description-ru":"Id элемента или фрагмента из текста ролика"},"shape":{"type":"string","enum":["circle","rounded","heart","stripe","none"],"description":"Mask shape; none — remove the mask","x-description-ru":"Форма маски; none — убрать маску"},"size":{"description":"Shape size, share of the frame (default 0.7)","x-description-ru":"Размер формы, доля кадра (по умолчанию 0,7)","type":"number","minimum":0.2,"maximum":1},"feather":{"description":"Edge softness 0–1","x-description-ru":"Мягкость края 0–1","type":"number","minimum":0,"maximum":1},"cx":{"description":"Shape centre shift to the right, share of the frame width","x-description-ru":"Сдвиг центра формы вправо, доля ширины кадра","type":"number","minimum":-0.5,"maximum":0.5},"cy":{"description":"Shape centre shift down, share of the frame height","x-description-ru":"Сдвиг центра формы вниз, доля высоты кадра","type":"number","minimum":-0.5,"maximum":0.5},"rotate":{"type":"number","minimum":-180,"maximum":180},"invert":{"description":"Video outside the shape, background inside","x-description-ru":"Видео — снаружи формы, фон — внутри","type":"boolean"},"maskKeys":{"description":"Mask animation: where and how big the shape is at t seconds from the fragment start; null — no animation","x-description-ru":"Анимация маски: где и какого размера форма через t секунд от начала фрагмента; null — без анимации","anyOf":[{"maxItems":24,"type":"array","items":{"type":"object","properties":{"t":{"type":"number","minimum":0,"maximum":180},"cx":{"type":"number","minimum":-0.5,"maximum":0.5},"cy":{"type":"number","minimum":-0.5,"maximum":0.5},"size":{"type":"number","minimum":0.2,"maximum":1},"rotate":{"type":"number","minimum":-180,"maximum":180}},"required":["t","cx","cy","size","rotate"],"additionalProperties":false}},{"type":"null"}]}},"required":["op","id","shape"],"additionalProperties":false,"description":"Fragment mask: shape, size, position, rotation, inversion, animation","x-description-ru":"Маска фрагмента: форма, размер, положение, поворот, инверсия, анимация"},{"type":"object","properties":{"op":{"type":"string","const":"set_framing"},"id":{"type":"string","maxLength":64,"description":"Element or fragment id from the transcript","x-description-ru":"Id элемента или фрагмента из текста ролика"},"mode":{"type":"string","enum":["auto","crop","fit","track"],"description":"auto — automatic framing; crop — fill the frame; fit — whole picture with a background; track — the crop follows the face","x-description-ru":"auto — кадр автоматически; crop — заполнить кадр; fit — вписать целиком с фоном; track — кадр следит за лицом"},"cx":{"description":"crop: window centre, share of the source width","x-description-ru":"crop: центр окна, доля ширины исходника","type":"number","minimum":0,"maximum":1},"cy":{"description":"crop: window centre, share of the source height","x-description-ru":"crop: центр окна, доля высоты исходника","type":"number","minimum":0,"maximum":1},"zoom":{"description":"Zoom on top of the framing, 1–3","x-description-ru":"Приближение поверх кадра, 1–3","type":"number","minimum":1,"maximum":3}},"required":["op","id","mode"],"additionalProperties":false,"description":"Fragment framing: fill, fit, follow the face","x-description-ru":"Кадр фрагмента: заполнить, вписать, следить за лицом"},{"type":"object","properties":{"op":{"type":"string","const":"set_text"},"wordId":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Word id","x-description-ru":"Id слова"},"text":{"type":"string","maxLength":200}},"required":["op","wordId","text"],"additionalProperties":false,"description":"Fix a caption word","x-description-ru":"Исправить слово субтитров"},{"type":"object","properties":{"op":{"type":"string","const":"set_accent"},"wordId":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Word id","x-description-ru":"Id слова"}},"required":["op","wordId"],"additionalProperties":false,"description":"Highlight a word","x-description-ru":"Выделить слово акцентом"},{"type":"object","properties":{"op":{"type":"string","const":"clear_accent"},"wordId":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Word id","x-description-ru":"Id слова"}},"required":["op","wordId"],"additionalProperties":false,"description":"Remove a word highlight","x-description-ru":"Снять акцент со слова"},{"type":"object","properties":{"op":{"type":"string","const":"set_emoji"},"wordId":{"description":"Word id (or `start` in a video without speech)","x-description-ru":"Id слова (или `start` в ролике без речи)","type":"integer","minimum":0,"maximum":9007199254740991},"start":{"description":"Start in the video, s — the element sticks to the fragment under it","x-description-ru":"Начало в ролике, с — элемент держится за фрагмент под ним","type":"number","minimum":0,"maximum":180},"duration":{"description":"Duration in the video, s (with `start`)","x-description-ru":"Длительность в ролике, с (вместе с `start`)","type":"number","minimum":0.3,"maximum":60},"emoji":{"type":"string","maxLength":16,"description":"One of the allowed emoji (GET /v1/styles → emoji)","x-description-ru":"Один из разрешённых эмодзи (GET /v1/styles → emoji)"}},"required":["op","emoji"],"additionalProperties":false,"description":"Emoji over the video: on a word or at a moment","x-description-ru":"Эмодзи поверх ролика: на слове или в момент времени"},{"type":"object","properties":{"op":{"type":"string","const":"remove_emoji"},"id":{"type":"string","maxLength":64,"description":"Element or fragment id from the transcript","x-description-ru":"Id элемента или фрагмента из текста ролика"},"wordId":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["op"],"additionalProperties":false,"description":"Remove an emoji","x-description-ru":"Убрать эмодзи"},{"type":"object","properties":{"op":{"type":"string","const":"add_plaque"},"fromWordId":{"description":"First word id (or `start` in a video without speech)","x-description-ru":"Id первого слова (или `start` в ролике без речи)","type":"integer","minimum":0,"maximum":9007199254740991},"toWordId":{"description":"Last word id","x-description-ru":"Id последнего слова","type":"integer","minimum":0,"maximum":9007199254740991},"start":{"description":"Start in the video, s — the element sticks to the fragment under it","x-description-ru":"Начало в ролике, с — элемент держится за фрагмент под ним","type":"number","minimum":0,"maximum":180},"duration":{"description":"Duration in the video, s (with `start`)","x-description-ru":"Длительность в ролике, с (вместе с `start`)","type":"number","minimum":0.3,"maximum":60},"kind":{"type":"string","enum":["title","number","list","quote","name"]},"text":{"type":"string","maxLength":60,"description":"Title","x-description-ru":"Заголовок"},"caption":{"description":"Optional lines separated by \\n","x-description-ru":"Строки через \\n, если нужны","type":"string","maxLength":300}},"required":["op","text"],"additionalProperties":false,"description":"On-screen plaque: title and optional lines separated by \\n","x-description-ru":"Плашка: заголовок и строки через \\n"},{"type":"object","properties":{"op":{"type":"string","const":"remove_plaque"},"id":{"type":"string","maxLength":64,"description":"Element or fragment id from the transcript","x-description-ru":"Id элемента или фрагмента из текста ролика"}},"required":["op","id"],"additionalProperties":false,"description":"Remove a plaque","x-description-ru":"Убрать плашку"},{"type":"object","properties":{"op":{"type":"string","const":"add_zoom"},"fromWordId":{"description":"First word id (or `start` in a video without speech)","x-description-ru":"Id первого слова (или `start` в ролике без речи)","type":"integer","minimum":0,"maximum":9007199254740991},"toWordId":{"description":"Last word id","x-description-ru":"Id последнего слова","type":"integer","minimum":0,"maximum":9007199254740991},"start":{"description":"Start in the video, s — the element sticks to the fragment under it","x-description-ru":"Начало в ролике, с — элемент держится за фрагмент под ним","type":"number","minimum":0,"maximum":180},"duration":{"description":"Duration in the video, s (with `start`)","x-description-ru":"Длительность в ролике, с (вместе с `start`)","type":"number","minimum":0.3,"maximum":60},"scale":{"description":"Zoom, 1.05–1.6 (default 1.3)","x-description-ru":"Масштаб, 1,05–1,6 (по умолчанию 1,3)","type":"number","minimum":1.05,"maximum":1.6},"motion":{"description":"push — smooth push-in, pull — pull-out, punch — sharp jump","x-description-ru":"push — плавный наезд, pull — отъезд, punch — резкий скачок","type":"string","enum":["push","pull","punch"]}},"required":["op"],"additionalProperties":false,"description":"Camera zoom on a phrase or a moment","x-description-ru":"Наезд камеры на фразе или в момент времени"},{"type":"object","properties":{"op":{"type":"string","const":"remove_zoom"},"id":{"type":"string","maxLength":64,"description":"Element or fragment id from the transcript","x-description-ru":"Id элемента или фрагмента из текста ролика"}},"required":["op","id"],"additionalProperties":false,"description":"Remove a zoom","x-description-ru":"Убрать наезд"},{"type":"object","properties":{"op":{"type":"string","const":"set_hook"},"text":{"type":"string","maxLength":120}},"required":["op","text"],"additionalProperties":false,"description":"Catchy title for the first seconds","x-description-ru":"Цепляющий заголовок в начале"},{"type":"object","properties":{"op":{"type":"string","const":"remove_hook"}},"required":["op"],"additionalProperties":false,"description":"Remove the hook title","x-description-ru":"Убрать заголовок-хук"},{"type":"object","properties":{"op":{"type":"string","const":"add_title"},"fromWordId":{"description":"First word id (or `start` in a video without speech)","x-description-ru":"Id первого слова (или `start` в ролике без речи)","type":"integer","minimum":0,"maximum":9007199254740991},"toWordId":{"description":"Last word id","x-description-ru":"Id последнего слова","type":"integer","minimum":0,"maximum":9007199254740991},"start":{"description":"Start in the video, s — the element sticks to the fragment under it","x-description-ru":"Начало в ролике, с — элемент держится за фрагмент под ним","type":"number","minimum":0,"maximum":180},"duration":{"description":"Duration in the video, s (with `start`)","x-description-ru":"Длительность в ролике, с (вместе с `start`)","type":"number","minimum":0.3,"maximum":60},"text":{"type":"string","maxLength":200,"description":"Text, up to 3 lines separated by \\n","x-description-ru":"Текст, до 3 строк через \\n"},"titleFont":{"description":"Font (GET /v1/styles → fonts)","x-description-ru":"Шрифт (GET /v1/styles → fonts)","anyOf":[{"type":"string","enum":["punch","poster","block","wide","editorial","rounded","script","mono"]},{"type":"null"}]},"titleSize":{"description":"Font size, px on a 1080×1920 frame","x-description-ru":"Кегль, px кадра 1080×1920","anyOf":[{"type":"number","minimum":24,"maximum":200},{"type":"null"}]},"titleColor":{"description":"Text colour #RRGGBB","x-description-ru":"Цвет текста #RRGGBB","anyOf":[{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},{"type":"null"}]},"titleBackground":{"description":"none, box (per line) or pill (rounded)","x-description-ru":"none, box (по строкам) или pill (скруглённая)","anyOf":[{"type":"string","enum":["none","box","pill"]},{"type":"null"}]},"titleBackgroundColor":{"description":"Background colour #RRGGBB","x-description-ru":"Цвет подложки #RRGGBB","anyOf":[{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},{"type":"null"}]},"titleOutline":{"description":"Dark outline around letters","x-description-ru":"Тёмная обводка букв","type":["boolean","null"]},"titleShadow":{"description":"Drop shadow","x-description-ru":"Тень","type":["boolean","null"]},"titleAlign":{"anyOf":[{"type":"string","enum":["left","center","right"]},{"type":"null"}]},"titleX":{"description":"Anchor x on 1080×1920: left edge, centre or right edge by align","x-description-ru":"Точка привязки x на 1080×1920: левый край, центр или правый край по выравниванию","anyOf":[{"type":"number","minimum":0,"maximum":1080},{"type":"null"}]},"titleY":{"description":"Vertical centre on 1080×1920","x-description-ru":"Середина по вертикали на 1080×1920","anyOf":[{"type":"number","minimum":0,"maximum":1920},{"type":"null"}]},"titleIn":{"description":"Entrance: fade, slide, pop, typewriter","x-description-ru":"Появление: fade, slide, pop, typewriter","anyOf":[{"type":"string","enum":["fade","slide","pop","typewriter"]},{"type":"null"}]},"titleOut":{"description":"Exit: fade, slide, pop","x-description-ru":"Исчезновение: fade, slide, pop","anyOf":[{"type":"string","enum":["fade","slide","pop"]},{"type":"null"}]}},"required":["op","text"],"additionalProperties":false,"description":"Free text layer (title) with font, colour, background, position and animation","x-description-ru":"Свободный текстовый слой (титр): шрифт, цвет, подложка, место и анимация"},{"type":"object","properties":{"op":{"type":"string","const":"update_title"},"id":{"type":"string","maxLength":64,"description":"Element or fragment id from the transcript","x-description-ru":"Id элемента или фрагмента из текста ролика"},"text":{"type":"string","maxLength":200},"titleFont":{"description":"Font (GET /v1/styles → fonts)","x-description-ru":"Шрифт (GET /v1/styles → fonts)","anyOf":[{"type":"string","enum":["punch","poster","block","wide","editorial","rounded","script","mono"]},{"type":"null"}]},"titleSize":{"description":"Font size, px on a 1080×1920 frame","x-description-ru":"Кегль, px кадра 1080×1920","anyOf":[{"type":"number","minimum":24,"maximum":200},{"type":"null"}]},"titleColor":{"description":"Text colour #RRGGBB","x-description-ru":"Цвет текста #RRGGBB","anyOf":[{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},{"type":"null"}]},"titleBackground":{"description":"none, box (per line) or pill (rounded)","x-description-ru":"none, box (по строкам) или pill (скруглённая)","anyOf":[{"type":"string","enum":["none","box","pill"]},{"type":"null"}]},"titleBackgroundColor":{"description":"Background colour #RRGGBB","x-description-ru":"Цвет подложки #RRGGBB","anyOf":[{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},{"type":"null"}]},"titleOutline":{"description":"Dark outline around letters","x-description-ru":"Тёмная обводка букв","type":["boolean","null"]},"titleShadow":{"description":"Drop shadow","x-description-ru":"Тень","type":["boolean","null"]},"titleAlign":{"anyOf":[{"type":"string","enum":["left","center","right"]},{"type":"null"}]},"titleX":{"description":"Anchor x on 1080×1920: left edge, centre or right edge by align","x-description-ru":"Точка привязки x на 1080×1920: левый край, центр или правый край по выравниванию","anyOf":[{"type":"number","minimum":0,"maximum":1080},{"type":"null"}]},"titleY":{"description":"Vertical centre on 1080×1920","x-description-ru":"Середина по вертикали на 1080×1920","anyOf":[{"type":"number","minimum":0,"maximum":1920},{"type":"null"}]},"titleIn":{"description":"Entrance: fade, slide, pop, typewriter","x-description-ru":"Появление: fade, slide, pop, typewriter","anyOf":[{"type":"string","enum":["fade","slide","pop","typewriter"]},{"type":"null"}]},"titleOut":{"description":"Exit: fade, slide, pop","x-description-ru":"Исчезновение: fade, slide, pop","anyOf":[{"type":"string","enum":["fade","slide","pop"]},{"type":"null"}]}},"required":["op","id"],"additionalProperties":false,"description":"Change a title: text and look; `null` resets a field","x-description-ru":"Изменить титр: текст и оформление; `null` сбрасывает поле"},{"type":"object","properties":{"op":{"type":"string","const":"remove_title"},"id":{"type":"string","maxLength":64,"description":"Element or fragment id from the transcript","x-description-ru":"Id элемента или фрагмента из текста ролика"}},"required":["op","id"],"additionalProperties":false,"description":"Remove a title","x-description-ru":"Убрать титр"},{"type":"object","properties":{"op":{"type":"string","const":"add_marker"},"wordId":{"description":"Word id the marker stands on (or `start`)","x-description-ru":"Id слова, на котором маркер (или `start`)","type":"integer","minimum":0,"maximum":9007199254740991},"start":{"description":"Moment in the video, s","x-description-ru":"Момент в ролике, с","type":"number","minimum":0,"maximum":180},"label":{"description":"Short note for the author","x-description-ru":"Короткая пометка для автора","type":"string","maxLength":40},"color":{"type":"string","enum":["cyan","yellow","red","green","violet"]}},"required":["op"],"additionalProperties":false,"description":"Marker: a note on the timeline for the author (not shown in the video)","x-description-ru":"Маркер: пометка автору на таймлайне (в ролик не попадает)"},{"type":"object","properties":{"op":{"type":"string","const":"update_marker"},"id":{"type":"string","maxLength":64,"description":"Element or fragment id from the transcript","x-description-ru":"Id элемента или фрагмента из текста ролика"},"label":{"type":"string","maxLength":40},"color":{"type":"string","enum":["cyan","yellow","red","green","violet"]}},"required":["op","id"],"additionalProperties":false,"description":"Change a marker: note and colour","x-description-ru":"Изменить маркер: пометку и цвет"},{"type":"object","properties":{"op":{"type":"string","const":"remove_marker"},"id":{"type":"string","maxLength":64,"description":"Element or fragment id from the transcript","x-description-ru":"Id элемента или фрагмента из текста ролика"}},"required":["op","id"],"additionalProperties":false,"description":"Remove a marker","x-description-ru":"Убрать маркер"},{"type":"object","properties":{"op":{"type":"string","const":"add_sound"},"kind":{"type":"string","enum":["whoosh","pop","ding","click","swipe","rise","boom","chime"],"description":"Sound: whoosh, pop, ding, click, swipe, rise, boom, chime","x-description-ru":"Звук: вжух, поп, дзынь, щелчок, свайп, нарастание, бум, колокольчик"},"wordId":{"description":"Word id where the sound plays (or `start`)","x-description-ru":"Id слова, где звучит звук (или `start`)","type":"integer","minimum":0,"maximum":9007199254740991},"start":{"description":"Moment in the video, s","x-description-ru":"Момент в ролике, с","type":"number","minimum":0,"maximum":180}},"required":["op","kind"],"additionalProperties":false,"description":"Sound effect at a moment of the video","x-description-ru":"Звуковой эффект в момент ролика"},{"type":"object","properties":{"op":{"type":"string","const":"update_sound"},"id":{"type":"string","maxLength":64,"description":"Element or fragment id from the transcript","x-description-ru":"Id элемента или фрагмента из текста ролика"},"kind":{"type":"string","enum":["whoosh","pop","ding","click","swipe","rise","boom","chime"]}},"required":["op","id","kind"],"additionalProperties":false,"description":"Change a sound effect","x-description-ru":"Заменить звуковой эффект"},{"type":"object","properties":{"op":{"type":"string","const":"remove_sound"},"id":{"type":"string","maxLength":64,"description":"Element or fragment id from the transcript","x-description-ru":"Id элемента или фрагмента из текста ролика"}},"required":["op","id"],"additionalProperties":false,"description":"Remove a sound effect","x-description-ru":"Убрать звуковой эффект"},{"type":"object","properties":{"op":{"type":"string","const":"add_card"},"fromWordId":{"description":"First word id (or `start` in a video without speech)","x-description-ru":"Id первого слова (или `start` в ролике без речи)","type":"integer","minimum":0,"maximum":9007199254740991},"toWordId":{"description":"Last word id","x-description-ru":"Id последнего слова","type":"integer","minimum":0,"maximum":9007199254740991},"start":{"description":"Start in the video, s — the element sticks to the fragment under it","x-description-ru":"Начало в ролике, с — элемент держится за фрагмент под ним","type":"number","minimum":0,"maximum":180},"duration":{"description":"Duration in the video, s (with `start`)","x-description-ru":"Длительность в ролике, с (вместе с `start`)","type":"number","minimum":0.3,"maximum":60},"text":{"type":"string","maxLength":300,"description":"English image prompt","x-description-ru":"Промпт картинки на английском"},"caption":{"type":"string","maxLength":80}},"required":["op","text"],"additionalProperties":false,"description":"Media card: an illustration generated from a prompt","x-description-ru":"Медиа-карточка: картинка по описанию"},{"type":"object","properties":{"op":{"type":"string","const":"remove_card"},"id":{"type":"string","maxLength":64,"description":"Element or fragment id from the transcript","x-description-ru":"Id элемента или фрагмента из текста ролика"}},"required":["op","id"],"additionalProperties":false,"description":"Remove a media card","x-description-ru":"Убрать медиа-карточку"},{"type":"object","properties":{"op":{"type":"string","const":"move_element"},"element":{"type":"string","enum":["plaque","card","zoom","emoji","insert","title","sound","marker"]},"id":{"type":"string","maxLength":64,"description":"Element or fragment id from the transcript","x-description-ru":"Id элемента или фрагмента из текста ролика"},"start":{"type":"number","minimum":0,"maximum":180,"description":"New start in the video, s","x-description-ru":"Новое начало в ролике, с"},"duration":{"description":"Duration in the video, s (with `start`)","x-description-ru":"Длительность в ролике, с (вместе с `start`)","type":"number","minimum":0.3,"maximum":60}},"required":["op","element","id","start"],"additionalProperties":false,"description":"Move a plaque, card, zoom, emoji, insert, title, sound or marker to another moment","x-description-ru":"Перенести плашку, карточку, наезд, эмодзи, вставку, титр, звук или маркер на другой момент"},{"type":"object","properties":{"op":{"type":"string","const":"set_caption_position"},"placement":{"type":"string","enum":["top","center","bottom"]}},"required":["op","placement"],"additionalProperties":false,"description":"Move captions to the top, center or bottom","x-description-ru":"Субтитры — сверху, по центру или снизу"},{"type":"object","properties":{"op":{"type":"string","const":"set_all_transitions"},"transition":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["jcut","fade","flash","zoom","dissolve","slide","slideRight","slideUp","slideDown","wipe","wipeRight","wipeUp","wipeDown","circleOpen","circleClose","zoomIn","blur","pixelize","radial","scatter"]},"duration":{"type":"number","minimum":0.15,"maximum":1.2}},"required":["kind","duration"],"additionalProperties":false},{"type":"null"}]}},"required":["op","transition"],"additionalProperties":false,"description":"One transition on every cut; `null` removes all","x-description-ru":"Один переход на всех стыках; `null` — убрать все"},{"type":"object","properties":{"op":{"type":"string","const":"set_all_effects"},"effect":{"anyOf":[{"type":"string","enum":["shake","pulse","flash","cinema","vignette","grain","blur","glitch","vhs"]},{"type":"null"}]}},"required":["op","effect"],"additionalProperties":false,"description":"One effect on every fragment; `null` removes all","x-description-ru":"Один эффект на всех фрагментах; `null` — убрать все"},{"type":"object","properties":{"op":{"type":"string","const":"set_all_color"},"filter":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","enum":["bw","warm","cool","vintage","sepia","vivid","pastel","noir","cinema"]},"strength":{"type":"number","minimum":0,"maximum":1}},"required":["id","strength"],"additionalProperties":false},{"type":"null"}]},"adjust":{"anyOf":[{"type":"object","properties":{"exposure":{"description":"Exposure, −1…1 (±1 stop)","x-description-ru":"Экспозиция, −1…1 (±1 ступень)","anyOf":[{"type":"number","minimum":-1,"maximum":1},{"type":"null"}]},"brightness":{"description":"Brightness, −1…1","x-description-ru":"Яркость, −1…1","anyOf":[{"type":"number","minimum":-1,"maximum":1},{"type":"null"}]},"contrast":{"description":"Contrast, −1…1","x-description-ru":"Контраст, −1…1","anyOf":[{"type":"number","minimum":-1,"maximum":1},{"type":"null"}]},"saturation":{"description":"Saturation, −1…1","x-description-ru":"Насыщенность, −1…1","anyOf":[{"type":"number","minimum":-1,"maximum":1},{"type":"null"}]},"temperature":{"description":"Temperature: − cooler, + warmer","x-description-ru":"Температура: − холоднее, + теплее","anyOf":[{"type":"number","minimum":-1,"maximum":1},{"type":"null"}]},"tint":{"description":"Tint: − green, + magenta","x-description-ru":"Оттенок: − зелёный, + пурпурный","anyOf":[{"type":"number","minimum":-1,"maximum":1},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]},"lut":{"anyOf":[{"type":"object","properties":{"preset":{"description":"Built-in LUT look","x-description-ru":"Встроенный LUT","anyOf":[{"type":"string","enum":["teal-orange","film","matte","bleach","golden","moody","nordic","cross","mono-film","vibrant"]},{"type":"null"}]},"uploadId":{"description":"Id of the user's own .cube LUT","x-description-ru":"Id своего LUT (.cube)","anyOf":[{"type":"string","maxLength":36},{"type":"null"}]},"strength":{"type":"number","minimum":0,"maximum":1,"description":"LUT strength 0–1","x-description-ru":"Сила LUT 0–1"}},"required":["strength"],"additionalProperties":false,"description":"LUT: a built-in look (preset) or your own .cube (uploadId)","x-description-ru":"LUT: встроенный (preset) или свой .cube (uploadId)"},{"type":"null"}]}},"required":["op","filter"],"additionalProperties":false,"description":"One colour look (filter, adjustments, LUT) on every fragment; `null` removes","x-description-ru":"Один цвет (фильтр, «Настроить», LUT) на всех фрагментах; `null` — убрать"},{"type":"object","properties":{"op":{"type":"string","const":"set_cover"},"start":{"description":"Cover frame: moment in the video, s","x-description-ru":"Кадр обложки: момент в ролике, с","type":"number","minimum":0,"maximum":180},"coverTitle":{"description":"Title on the cover (≤ 60 chars); null — no title","x-description-ru":"Заголовок на обложке (до 60 знаков); null — без заголовка","anyOf":[{"type":"string","maxLength":60},{"type":"null"}]},"coverStyle":{"description":"Title look: hook or plaque","x-description-ru":"Вид заголовка: хук или плашка","type":"string","enum":["hook","plaque"]},"coverIntro":{"description":"Show the cover as the first frame (0.1 s)","x-description-ru":"Показывать обложку первым кадром (0,1 с)","type":"boolean"}},"required":["op"],"additionalProperties":false,"description":"Cover: frame, title on it, cover as the first frame","x-description-ru":"Обложка: кадр, заголовок на ней, обложка первым кадром"},{"type":"object","properties":{"op":{"type":"string","const":"slip_block"},"id":{"type":"string","maxLength":64,"description":"Element or fragment id from the transcript","x-description-ru":"Id элемента или фрагмента из текста ролика"},"delta":{"type":"number","minimum":-180,"maximum":180,"description":"Shift of the source piece, s (+ — later footage)","x-description-ru":"Сдвиг куска исходника, с (+ — более поздние кадры)"}},"required":["op","id","delta"],"additionalProperties":false,"description":"Slip a footage fragment: other frames of the source, same length and place","x-description-ru":"Сдвиг кадра у фрагмента видеоряда: другие кадры исходника, та же длина и место"},{"type":"object","properties":{"op":{"type":"string","const":"set_pip"},"id":{"type":"string","maxLength":64,"description":"Insert (own photo or video over the video)","x-description-ru":"Вставка (своё фото или видео поверх ролика)"},"mode":{"description":"pip — window over the video, full — full frame (default pip)","x-description-ru":"pip — окном поверх ролика, full — во весь кадр (по умолчанию pip)","type":"string","enum":["pip","full"]},"x":{"description":"Window centre, x in the 1080×1920 frame","x-description-ru":"Центр окна, x в кадре 1080×1920","type":"number","minimum":-540,"maximum":1620},"y":{"description":"Window centre, y in the 1080×1920 frame","x-description-ru":"Центр окна, y в кадре 1080×1920","type":"number","minimum":-960,"maximum":2880},"scale":{"description":"Window width, share of the frame width (0.1–1)","x-description-ru":"Ширина окна, доля ширины кадра (0,1–1)","type":"number","minimum":0.1,"maximum":1},"rotate":{"description":"Rotation clockwise, degrees","x-description-ru":"Поворот по часовой стрелке, градусы","type":"number","minimum":-180,"maximum":180},"opacity":{"description":"Opacity 0–1","x-description-ru":"Непрозрачность 0–1","type":"number","minimum":0,"maximum":1},"shape":{"description":"rect or circle","x-description-ru":"Прямоугольник или круг","type":"string","enum":["rect","circle"]},"radius":{"description":"Corner rounding, share of the shorter side (0–0.5)","x-description-ru":"Скругление углов, доля меньшей стороны (0–0,5)","type":"number","minimum":0,"maximum":0.5},"borderColor":{"description":"Border colour #rrggbb; null — no border","x-description-ru":"Цвет рамки #rrggbb; null — без рамки","anyOf":[{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},{"type":"null"}]},"borderWidth":{"description":"Border width, share of the shorter side (0–0.1)","x-description-ru":"Толщина рамки, доля меньшей стороны (0–0,1)","type":"number","minimum":0,"maximum":0.1},"volume":{"description":"Sound of the video in the window 0–1 (default 0)","x-description-ru":"Звук видео в окне 0–1 (по умолчанию 0)","type":"number","minimum":0,"maximum":1}},"required":["op","id"],"additionalProperties":false,"description":"Picture-in-picture: an insert as a window over the video or back to full frame","x-description-ru":"Картинка в картинке: вставка окном поверх ролика или снова во весь кадр"},{"type":"object","properties":{"op":{"type":"string","const":"apply_look"},"id":{"type":"string","maxLength":64,"description":"Fragment whose look is copied","x-description-ru":"Фрагмент, чьё оформление копируется"},"blockIds":{"description":"Fragments to change (default — all other fragments)","x-description-ru":"Какие фрагменты изменить (по умолчанию — все остальные)","maxItems":400,"type":"array","items":{"type":"string","maxLength":64,"description":"Element or fragment id from the transcript","x-description-ru":"Id элемента или фрагмента из текста ролика"}},"parts":{"description":"What to copy (default — everything except framing)","x-description-ru":"Что переносить (по умолчанию — всё, кроме кадра)","maxItems":9,"type":"array","items":{"type":"string","enum":["speed","audio","color","effect","transition","animations","mask","background","framing"]}}},"required":["op","id"],"additionalProperties":false,"description":"Copy one fragment’s look to others: speed, sound, colour, effect, transition, animations, mask, background, framing","x-description-ru":"Оформление фрагмента — на другие: скорость, звук, цвет, эффект, переход, анимации, маска, фон, кадр"},{"type":"object","properties":{"op":{"type":"string","const":"set_format"},"format":{"type":"string","enum":["9:16","4:5","1:1","16:9"]}},"required":["op","format"],"additionalProperties":false,"description":"Frame format","x-description-ru":"Формат кадра"},{"type":"object","properties":{"op":{"type":"string","const":"split_block"},"id":{"type":"string","maxLength":64,"description":"Element or fragment id from the transcript","x-description-ru":"Id элемента или фрагмента из текста ролика"},"at":{"type":"number","minimum":0,"maximum":180,"description":"Moment in the video where the fragment is cut, s","x-description-ru":"Момент ролика, где резать фрагмент, с"}},"required":["op","id","at"],"additionalProperties":false,"description":"Split a fragment in two at a moment of the video","x-description-ru":"Разделить фрагмент на два в момент ролика"},{"type":"object","properties":{"op":{"type":"string","const":"trim_block"},"id":{"type":"string","maxLength":64,"description":"Element or fragment id from the transcript","x-description-ru":"Id элемента или фрагмента из текста ролика"},"edge":{"type":"string","enum":["start","end"],"description":"Which edge of the fragment","x-description-ru":"Какой край фрагмента"},"delta":{"type":"number","minimum":-60,"maximum":60,"description":"Move the edge, s of the video: + later, − earlier","x-description-ru":"Сдвиг края, с ролика: + позже, − раньше"}},"required":["op","id","edge","delta"],"additionalProperties":false,"description":"Trim or extend a fragment at its start or end","x-description-ru":"Подрезать или удлинить фрагмент с начала или конца"},{"type":"object","properties":{"op":{"type":"string","const":"duplicate_block"},"id":{"type":"string","maxLength":64,"description":"Element or fragment id from the transcript","x-description-ru":"Id элемента или фрагмента из текста ролика"}},"required":["op","id"],"additionalProperties":false,"description":"Duplicate a fragment (the copy goes right after it)","x-description-ru":"Дублировать фрагмент (копия — сразу после него)"},{"type":"object","properties":{"op":{"type":"string","const":"freeze_frame"},"id":{"type":"string","maxLength":64,"description":"Element or fragment id from the transcript","x-description-ru":"Id элемента или фрагмента из текста ролика"},"at":{"description":"Frame to freeze: moment in the video inside the fragment (default — its last frame)","x-description-ru":"Какой кадр остановить: момент ролика внутри фрагмента (по умолчанию — последний кадр)","type":"number","minimum":0,"maximum":180},"duration":{"description":"Freeze length, s (default 2)","x-description-ru":"Длина стоп-кадра, с (по умолчанию 2)","type":"number","minimum":0.3,"maximum":10}},"required":["op","id"],"additionalProperties":false,"description":"Freeze frame: hold a frame of a fragment","x-description-ru":"Стоп-кадр: остановить кадр фрагмента"},{"type":"object","properties":{"op":{"type":"string","const":"set_hold"},"id":{"type":"string","maxLength":64,"description":"Element or fragment id from the transcript","x-description-ru":"Id элемента или фрагмента из текста ролика"},"duration":{"type":"number","minimum":0.3,"maximum":10}},"required":["op","id","duration"],"additionalProperties":false,"description":"Length of a freeze frame","x-description-ru":"Длина стоп-кадра"},{"type":"object","properties":{"op":{"type":"string","const":"replace_source"},"id":{"type":"string","maxLength":64,"description":"Element or fragment id from the transcript","x-description-ru":"Id элемента или фрагмента из текста ролика"},"sourceIndex":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Source to show instead","x-description-ru":"Какой исходник показать вместо"},"srcStart":{"description":"From this second of the source (default 0)","x-description-ru":"С этой секунды исходника (по умолчанию 0)","type":"number","minimum":0}},"required":["op","id","sourceIndex"],"additionalProperties":false,"description":"Replace the picture of a fragment with another source","x-description-ru":"Заменить картинку фрагмента другим исходником"},{"type":"object","properties":{"op":{"type":"string","const":"set_process"},"id":{"type":"string","maxLength":64,"description":"Element or fragment id from the transcript","x-description-ru":"Id элемента или фрагмента из текста ролика"},"process":{"maxItems":4,"type":"array","items":{"type":"string","enum":["reverse","stabilize","denoise","enhance"]},"description":"Free processing of the fragment: reverse, stabilize, denoise, enhance (empty — none)","x-description-ru":"Бесплатная обработка фрагмента: reverse, stabilize, denoise, enhance (пусто — без неё)"}},"required":["op","id","process"],"additionalProperties":false,"description":"Reverse, stabilize, denoise or enhance the sound of a fragment (free)","x-description-ru":"Реверс, стабилизация, шумоподавление или улучшение звука фрагмента (бесплатно)"},{"type":"object","properties":{"op":{"type":"string","const":"apply_keyframe_preset"},"id":{"type":"string","maxLength":64,"description":"Element or fragment id from the transcript","x-description-ru":"Id элемента или фрагмента из текста ролика"},"preset":{"type":"string","enum":["zoomIn","zoomOut","panLeft","panRight","panUp","panDown"],"description":"zoomIn, zoomOut, panLeft, panRight, panUp, panDown","x-description-ru":"Наезд, отъезд, панорама влево, вправо, вверх, вниз"}},"required":["op","id","preset"],"additionalProperties":false,"description":"Camera move over a whole fragment by keyframes","x-description-ru":"Движение камеры на весь фрагмент ключевыми кадрами"},{"type":"object","properties":{"op":{"type":"string","const":"set_music"},"sourceIndex":{"description":"Audio source to use as music (or uploadId; none — change the current music)","x-description-ru":"Аудио-исходник для музыки (или uploadId; без них — правка текущей музыки)","type":"integer","minimum":0,"maximum":9007199254740991},"uploadId":{"type":"string","maxLength":36,"description":"Upload id of a project media file (list \"Project media\")","x-description-ru":"Id загрузки медиа проекта (список «Медиа проекта»)"},"volume":{"description":"Music volume 0–1","x-description-ru":"Громкость музыки 0–1","type":"number","minimum":0,"maximum":1},"sourceVolume":{"description":"Volume of the fragments while music plays, 0–1","x-description-ru":"Громкость звука фрагментов под музыкой, 0–1","type":"number","minimum":0,"maximum":1},"ducking":{"description":"Music gets quieter under speech","x-description-ru":"Музыка тише под речью","type":"boolean"},"offset":{"description":"Start from this second of the track","x-description-ru":"Начать с этой секунды трека","type":"number","minimum":0,"maximum":3600},"fadeIn":{"type":"number","minimum":0,"maximum":5},"fadeOut":{"type":"number","minimum":0,"maximum":5}},"required":["op"],"additionalProperties":false,"description":"Background music: track, volume, ducking under speech, start, fades","x-description-ru":"Фоновая музыка: трек, громкость, приглушение под речью, начало, нарастание и затухание"},{"type":"object","properties":{"op":{"type":"string","const":"remove_music"}},"required":["op"],"additionalProperties":false,"description":"Remove the background music","x-description-ru":"Убрать фоновую музыку"},{"type":"object","properties":{"op":{"type":"string","const":"fit_music"},"on":{"type":"boolean","description":"true — fit the track to the video length, false — play it as is","x-description-ru":"true — подогнать трек под длину ролика, false — играть как есть"}},"required":["op","on"],"additionalProperties":false,"description":"Fit the music to the video length (ends on a bar line)","x-description-ru":"Подогнать музыку под длину ролика (кончается на границе такта)"},{"type":"object","properties":{"op":{"type":"string","const":"fit_to_beats"},"every":{"description":"Every beat, every 2nd or every 4th (default 1)","x-description-ru":"Каждая доля, каждая 2-я или 4-я (по умолчанию 1)","anyOf":[{"type":"number","const":1},{"type":"number","const":2},{"type":"number","const":4}]}},"required":["op"],"additionalProperties":false,"description":"Snap footage cuts to the music beats","x-description-ru":"Склейки видеоряда — под биты музыки"},{"type":"object","properties":{"op":{"type":"string","const":"add_voice"},"sourceIndex":{"description":"Voice recording or audio source (or uploadId)","x-description-ru":"Запись голоса или аудио-исходник (или uploadId)","type":"integer","minimum":0,"maximum":9007199254740991},"uploadId":{"type":"string","maxLength":36,"description":"Upload id of a project media file (list \"Project media\")","x-description-ru":"Id загрузки медиа проекта (список «Медиа проекта»)"},"start":{"type":"number","minimum":0,"maximum":180,"description":"Where the recording starts in the video, s","x-description-ru":"С какого момента ролика звучит запись, с"},"volume":{"description":"Voice volume 0–2 (default 1)","x-description-ru":"Громкость голоса 0–2 (по умолчанию 1)","type":"number","minimum":0,"maximum":2}},"required":["op","start"],"additionalProperties":false,"description":"Put a voice recording on the voice track","x-description-ru":"Поставить запись голоса на дорожку голоса"},{"type":"object","properties":{"op":{"type":"string","const":"move_voice"},"id":{"type":"string","maxLength":64,"description":"Element or fragment id from the transcript","x-description-ru":"Id элемента или фрагмента из текста ролика"},"start":{"type":"number","minimum":0,"maximum":180}},"required":["op","id","start"],"additionalProperties":false,"description":"Move a voice recording to another moment","x-description-ru":"Перенести запись голоса на другой момент"},{"type":"object","properties":{"op":{"type":"string","const":"trim_voice"},"id":{"type":"string","maxLength":64,"description":"Element or fragment id from the transcript","x-description-ru":"Id элемента или фрагмента из текста ролика"},"edge":{"type":"string","enum":["start","end"]},"at":{"type":"number","minimum":0,"maximum":180,"description":"New time of this edge in the video, s","x-description-ru":"Новое время этого края в ролике, с"}},"required":["op","id","edge","at"],"additionalProperties":false,"description":"Trim a voice recording at its start or end","x-description-ru":"Подрезать запись голоса с начала или конца"},{"type":"object","properties":{"op":{"type":"string","const":"set_voice_volume"},"id":{"type":"string","maxLength":64,"description":"Element or fragment id from the transcript","x-description-ru":"Id элемента или фрагмента из текста ролика"},"volume":{"type":"number","minimum":0,"maximum":2}},"required":["op","id","volume"],"additionalProperties":false,"description":"Volume of a voice recording (0–2)","x-description-ru":"Громкость записи голоса (0–2)"},{"type":"object","properties":{"op":{"type":"string","const":"remove_voice"},"id":{"type":"string","maxLength":64,"description":"Element or fragment id from the transcript","x-description-ru":"Id элемента или фрагмента из текста ролика"}},"required":["op","id"],"additionalProperties":false,"description":"Remove a voice recording from the track","x-description-ru":"Убрать запись голоса с дорожки"},{"type":"object","properties":{"op":{"type":"string","const":"add_insert"},"fromWordId":{"description":"First word id (or `start` in a video without speech)","x-description-ru":"Id первого слова (или `start` в ролике без речи)","type":"integer","minimum":0,"maximum":9007199254740991},"toWordId":{"description":"Last word id","x-description-ru":"Id последнего слова","type":"integer","minimum":0,"maximum":9007199254740991},"start":{"description":"Start in the video, s — the element sticks to the fragment under it","x-description-ru":"Начало в ролике, с — элемент держится за фрагмент под ним","type":"number","minimum":0,"maximum":180},"duration":{"description":"Duration in the video, s (with `start`)","x-description-ru":"Длительность в ролике, с (вместе с `start`)","type":"number","minimum":0.3,"maximum":60},"sourceIndex":{"description":"Photo or video source (or uploadId of project media)","x-description-ru":"Фото или видео из исходников (или uploadId медиа проекта)","type":"integer","minimum":0,"maximum":9007199254740991},"uploadId":{"type":"string","maxLength":36,"description":"Upload id of a project media file (list \"Project media\")","x-description-ru":"Id загрузки медиа проекта (список «Медиа проекта»)"},"fit":{"description":"cover — fill the frame, contain — whole picture","x-description-ru":"cover — на весь кадр, contain — картинка целиком","type":"string","enum":["cover","contain"]},"srcStart":{"description":"Video: from this second of it","x-description-ru":"Видео: с этой секунды","type":"number","minimum":0},"mode":{"description":"pip — window over the video, full — full frame (default)","x-description-ru":"pip — окном поверх ролика, full — во весь кадр (по умолчанию)","type":"string","enum":["pip","full"]}},"required":["op"],"additionalProperties":false,"description":"Own photo or video over the video: full frame or a window","x-description-ru":"Своё фото или видео поверх ролика: во весь кадр или окном"},{"type":"object","properties":{"op":{"type":"string","const":"update_insert"},"id":{"type":"string","maxLength":64,"description":"Element or fragment id from the transcript","x-description-ru":"Id элемента или фрагмента из текста ролика"},"fit":{"type":"string","enum":["cover","contain"]},"srcStart":{"type":"number","minimum":0}},"required":["op","id"],"additionalProperties":false,"description":"Insert: fit and start of its video","x-description-ru":"Вставка: вписывание и начало её видео"},{"type":"object","properties":{"op":{"type":"string","const":"remove_insert"},"id":{"type":"string","maxLength":64,"description":"Element or fragment id from the transcript","x-description-ru":"Id элемента или фрагмента из текста ролика"}},"required":["op","id"],"additionalProperties":false,"description":"Remove an insert","x-description-ru":"Убрать вставку"},{"type":"object","properties":{"op":{"type":"string","const":"update_plaque"},"id":{"type":"string","maxLength":64,"description":"Element or fragment id from the transcript","x-description-ru":"Id элемента или фрагмента из текста ролика"},"text":{"description":"New title","x-description-ru":"Новый заголовок","type":"string","maxLength":60},"caption":{"description":"New lines separated by \\n","x-description-ru":"Новые строки через \\n","type":"string","maxLength":300},"kind":{"type":"string","enum":["title","number","list","quote","name"]}},"required":["op","id"],"additionalProperties":false,"description":"Change the text or kind of a plaque","x-description-ru":"Изменить текст или вид плашки"},{"type":"object","properties":{"op":{"type":"string","const":"update_card"},"id":{"type":"string","maxLength":64,"description":"Element or fragment id from the transcript","x-description-ru":"Id элемента или фрагмента из текста ролика"},"caption":{"description":"Caption under the picture (\"\" — none)","x-description-ru":"Подпись под картинкой (\"\" — без неё)","type":"string","maxLength":80},"uploadId":{"description":"Photo from the project media or sources instead of a generated picture; null — back to the description","x-description-ru":"Фото из медиа проекта или исходников вместо картинки по описанию; null — снова по описанию","anyOf":[{"type":"string","maxLength":36,"description":"Upload id of a project media file (list \"Project media\")","x-description-ru":"Id загрузки медиа проекта (список «Медиа проекта»)"},{"type":"null"}]}},"required":["op","id"],"additionalProperties":false,"description":"Media card: caption and own photo","x-description-ru":"Медиа-карточка: подпись и своё фото"},{"type":"object","properties":{"op":{"type":"string","const":"update_zoom"},"id":{"type":"string","maxLength":64,"description":"Element or fragment id from the transcript","x-description-ru":"Id элемента или фрагмента из текста ролика"},"scale":{"type":"number","minimum":1.05,"maximum":1.6},"motion":{"type":"string","enum":["push","pull","punch"]}},"required":["op","id"],"additionalProperties":false,"description":"Zoom: scale and kind of move","x-description-ru":"Наезд: масштаб и вид движения"},{"type":"object","properties":{"op":{"type":"string","const":"set_element_position"},"element":{"type":"string","enum":["emoji","card","plaque"]},"id":{"type":"string","maxLength":64,"description":"Element or fragment id from the transcript","x-description-ru":"Id элемента или фрагмента из текста ролика"},"x":{"description":"Centre x on the 1080×1920 frame","x-description-ru":"Центр по x на кадре 1080×1920","anyOf":[{"type":"number","minimum":0,"maximum":1080},{"type":"null"}]},"y":{"description":"Centre y on the 1080×1920 frame","x-description-ru":"Центр по y на кадре 1080×1920","anyOf":[{"type":"number","minimum":0,"maximum":1920},{"type":"null"}]}},"required":["op","element","id"],"additionalProperties":false,"description":"Move an emoji, card or plaque on the frame; `null` — default place","x-description-ru":"Сдвинуть эмодзи, карточку или плашку по кадру; `null` — на место по умолчанию"},{"type":"object","properties":{"op":{"type":"string","const":"set_phrase_text"},"fromWordId":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"First word id","x-description-ru":"Id первого слова"},"toWordId":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Last word id","x-description-ru":"Id последнего слова"},"text":{"type":"string","maxLength":400,"description":"New text of these words in the captions","x-description-ru":"Новый текст этих слов в субтитрах"}},"required":["op","fromWordId","toWordId","text"],"additionalProperties":false,"description":"Rewrite the caption text of a phrase (the speech stays)","x-description-ru":"Переписать текст фразы в субтитрах (речь не меняется)"},{"type":"object","properties":{"op":{"type":"string","const":"reset_phrase_text"},"fromWordId":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"First word id","x-description-ru":"Id первого слова"},"toWordId":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Last word id","x-description-ru":"Id последнего слова"}},"required":["op","fromWordId","toWordId"],"additionalProperties":false,"description":"Caption text of a phrase back to the recognised speech","x-description-ru":"Текст фразы в субтитрах — снова как в речи"}]},"EditsRequest":{"type":"object","properties":{"rev":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Revision from GET …/transcript or …/document","x-description-ru":"Ревизия из GET …/transcript или …/document"},"operations":{"minItems":1,"maxItems":80,"type":"array","items":{"$ref":"#/components/schemas/EditOperation"}}},"required":["rev","operations"],"additionalProperties":false},"EditsResult":{"type":"object","properties":{"rev":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"applied":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"skipped":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"op":{"type":"string"},"reason":{"type":"string"}},"required":["index","op","reason"],"additionalProperties":false}},"durationSec":{"type":"number"}},"required":["rev","applied","skipped","durationSec"],"additionalProperties":false},"AutoColorRequest":{"type":"object","properties":{"rev":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Revision from GET …/transcript or …/document","x-description-ru":"Ревизия из GET …/transcript или …/document"},"blockId":{"type":"string","maxLength":64,"description":"Fragment id: the one to correct (`auto`) or the sample (`match`)","x-description-ru":"Id фрагмента: который поправить (`auto`) или образец (`match`)"},"mode":{"type":"string","enum":["auto","match"],"description":"`auto` — balance this fragment; `match` — make all other fragments look like it (with its filter and LUT)","x-description-ru":"`auto` — выровнять этот фрагмент; `match` — сделать остальные похожими на него (с его фильтром и LUT)"}},"required":["rev","blockId","mode"],"additionalProperties":false},"AutoColorResult":{"type":"object","properties":{"rev":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"mode":{"type":"string","enum":["auto","match"]},"adjust":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"exposure":{"type":"number"},"brightness":{"type":"number"},"contrast":{"type":"number"},"saturation":{"type":"number"},"temperature":{"type":"number"},"tint":{"type":"number"}},"additionalProperties":false,"description":"«Adjust» values, each −1…1; missing — 0","x-description-ru":"Значения «Настроить», каждое −1…1; нет — 0"},"description":"New «Adjust» values by fragment id","x-description-ru":"Новые значения «Настроить» по id фрагмента"},"applied":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"durationSec":{"type":"number"}},"required":["rev","mode","adjust","applied","durationSec"],"additionalProperties":false},"DocumentState":{"type":"object","properties":{"rev":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"durationSec":{"type":"number"},"document":{"type":"object","properties":{},"additionalProperties":{},"description":"Edit document (EditDocument v1). Fields are only added within v1","x-description-ru":"Документ монтажа (EditDocument v1). Внутри v1 поля только добавляются"}},"required":["rev","durationSec","document"],"additionalProperties":false},"PutDocumentRequest":{"type":"object","properties":{"rev":{"type":"integer","minimum":0,"maximum":9007199254740991},"document":{"type":"object","properties":{},"additionalProperties":{}}},"required":["rev","document"],"additionalProperties":false},"AssistantRequest":{"type":"object","properties":{"command":{"type":"string","minLength":2,"maxLength":500,"description":"What to change, in any language","x-description-ru":"Что поменять, на любом языке"},"rev":{"type":"integer","minimum":0,"maximum":9007199254740991},"confirmCost":{"description":"Price you agree to pay. Without it the response is a `Quote` and nothing starts","x-description-ru":"Цена, на которую вы согласны. Без неё ответ — `Quote`, ничего не запускается","type":"integer","minimum":0,"maximum":9007199254740991}},"required":["command","rev"],"additionalProperties":false},"AssistantResult":{"type":"object","properties":{"rev":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"summary":{"type":"string"},"applied":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"charged":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Tokens charged from the wallet (whole)","x-description-ru":"Списано токенов с кошелька (целые)"},"costTokens":{"description":"Actual cost of the command in tokens (fractional); the remainder accumulates with the project","x-description-ru":"Фактическая себестоимость команды в токенах (дробно); остаток копится у проекта","type":"number"},"durationSec":{"type":"number"}},"required":["rev","summary","applied","charged","durationSec"],"additionalProperties":false},"TranslateRequest":{"type":"object","properties":{"language":{"type":"string","enum":["en","es","pt","de","fr","it","pl","tr","id","uk","ru"]},"rev":{"type":"integer","minimum":0,"maximum":9007199254740991},"confirmCost":{"description":"Price you agree to pay. Without it the response is a `Quote` and nothing starts","x-description-ru":"Цена, на которую вы согласны. Без неё ответ — `Quote`, ничего не запускается","type":"integer","minimum":0,"maximum":9007199254740991}},"required":["language","rev"],"additionalProperties":false},"TranslateResult":{"type":"object","properties":{"rev":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"phrases":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"charged":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Tokens charged from the wallet (whole)","x-description-ru":"Списано токенов с кошелька (целые)"},"costTokens":{"description":"Actual cost of the translation in tokens (fractional)","x-description-ru":"Фактическая себестоимость перевода в токенах (дробно)","type":"number"}},"required":["rev","phrases","charged"],"additionalProperties":false},"TranscribeRequest":{"type":"object","properties":{"sources":{"description":"Source indexes (default — every source with sound whose speech is not recognised yet)","x-description-ru":"Номера исходников (по умолчанию — все со звуком, где речь ещё не распознана)","minItems":1,"maxItems":40,"type":"array","items":{"type":"integer","minimum":0,"maximum":9007199254740991}},"language":{"description":"Speech language: auto or a two-letter code","x-description-ru":"Язык речи: auto или двухбуквенный код","type":"string","pattern":"^(auto|[a-z]{2})$"},"confirmCost":{"description":"Price you agree to pay. Without it the response is a `Quote` and nothing starts","x-description-ru":"Цена, на которую вы согласны. Без неё ответ — `Quote`, ничего не запускается","type":"integer","minimum":0,"maximum":9007199254740991}},"additionalProperties":false},"TranscribeJob":{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string","enum":["processing","ready","failed"]},"sources":{"type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"createdAt":{"type":"string"},"error":{"type":"string"}},"required":["id","status","sources","createdAt"],"additionalProperties":false},"DirectorBriefRequest":{"type":"object","properties":{"mode":{"description":"Video type","x-description-ru":"Тип ролика","type":"string","enum":["auto","talking","story","product","aesthetic"]},"pace":{"type":"string","enum":["calm","balanced","dynamic"]},"effects":{"type":"string","enum":["off","light","bold"]},"targetDurationSec":{"description":"Target length, s; null — the director decides (up to 90 s)","x-description-ru":"Длина ролика, с; null — решает режиссёр (до 90 с)","anyOf":[{"type":"integer","minimum":10,"maximum":180},{"type":"null"}]},"hook":{"description":"Open with a hook and an on-screen title","x-description-ru":"Хук и заголовок в начале","type":"boolean"},"plaques":{"type":"boolean"},"emoji":{"type":"boolean"},"cameraMotion":{"description":"Zooms and camera moves","x-description-ru":"Наезды и движение камеры","type":"boolean"}},"additionalProperties":false},"DirectorBrief":{"type":"object","properties":{"projectId":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"rev":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"settings":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"sources":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"kind":{"type":"string"},"durationSec":{"type":"number"},"fileName":{"type":["string","null"]},"words":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["index","kind","durationSec","fileName","words"],"additionalProperties":false}},"speechRecognized":{"type":"boolean"},"material":{"type":"string","description":"The material: sources, speech by word ids, pauses, retakes, wishes","x-description-ru":"Материал: исходники, речь по id слов, паузы, дубли, пожелания"},"guide":{"type":"array","items":{"type":"string"},"description":"General tips (the Slicer director rules run on the server when you submit the plan)","x-description-ru":"Общие советы (правила режиссёра Slicer работают на сервере при приёме плана)"},"planSchema":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"JSON schema of the plan for submitDirectorPlan","x-description-ru":"JSON-схема плана для submitDirectorPlan"},"scenesSchema":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"JSON schema of what you saw in the frames","x-description-ru":"JSON-схема того, что вы увидели в кадрах"},"next":{"type":"array","items":{"type":"string"}}},"required":["projectId","rev","settings","sources","speechRecognized","material","guide","planSchema","scenesSchema","next"],"additionalProperties":false},"FramesQuery":{"type":"object","properties":{"times":{"description":"Seconds of the source, comma-separated (up to 16)","x-description-ru":"Секунды исходника через запятую (до 16)","type":"string","pattern":"^\\d+(\\.\\d+)?(,\\d+(\\.\\d+)?){0,15}$"},"from":{"type":"number","minimum":0},"to":{"type":"number","minimum":0},"count":{"description":"Frames evenly over from…to (default 8)","x-description-ru":"Кадров равномерно по from…to (по умолчанию 8)","type":"integer","minimum":1,"maximum":16}},"additionalProperties":false},"SourceFrames":{"type":"object","properties":{"sourceIndex":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"durationSec":{"type":"number"},"frames":{"type":"array","items":{"type":"object","properties":{"time":{"type":"number"},"mimeType":{"type":"string","const":"image/jpeg"},"data":{"type":"string","description":"JPEG, base64, 512 px on the longer side","x-description-ru":"JPEG, base64, 512 px по большей стороне"}},"required":["time","mimeType","data"],"additionalProperties":false}}},"required":["sourceIndex","durationSec","frames"],"additionalProperties":false},"DirectorPlanRequest":{"type":"object","properties":{"rev":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"rev from directorBrief / transcript","x-description-ru":"rev из directorBrief или текста ролика"},"plan":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"The plan in DirectorBrief.planSchema","x-description-ru":"План в схеме DirectorBrief.planSchema"},"scenes":{"description":"What you saw in the frames, in DirectorBrief.scenesSchema","x-description-ru":"Что вы увидели в кадрах, в схеме DirectorBrief.scenesSchema","maxItems":400,"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}}},"required":["rev","plan"],"additionalProperties":false},"DirectorPlanResult":{"type":"object","properties":{"rev":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"durationSec":{"type":"number"},"planSegments":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"fragments":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"fixes":{"type":"array","items":{"type":"string"},"description":"What Slicer corrected by its director rules","x-description-ru":"Что Slicer поправил по своим правилам режиссёра"},"issues":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"segment":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},"description":"What you should fix and submit again","x-description-ru":"Что поправить и прислать план снова"},"video":{"type":"string","description":"The resulting video as text (fragments, words, elements) — check it against the plan","x-description-ru":"Получившийся ролик текстом (фрагменты, слова, элементы) — сверьте с замыслом"}},"required":["rev","durationSec","planSegments","fragments","fixes","issues","video"],"additionalProperties":false},"StyleRequest":{"type":"object","properties":{"templateId":{"type":"string"},"fontId":{"type":"string"},"colorId":{"type":"string"},"subtitles":{"description":"Caption look; a partial change keeps the other fields. A new `design` without `highlight`/`animation`/`words` resets them to `auto`","x-description-ru":"Вид субтитров; частичная правка сохраняет остальные поля. Новое `design` без `highlight`/`animation`/`words` возвращает их к `auto`","type":"object","properties":{"enabled":{"type":"boolean"},"design":{"type":"string","enum":["dynamic","karaoke","classic","minimal","pop","box","word"]},"size":{"type":"string","enum":["small","medium","large"]},"position":{"description":"`auto` — each phrase where the frame has the most free space (off the face, hook, plaques, titles)","x-description-ru":"`auto` — каждая фраза там, где в кадре свободнее (не на лице, хуке, плашках, титрах)","type":"string","enum":["auto","top","center","bottom"]},"speakerColors":{"description":"Each speaker in its own colour","x-description-ru":"Слова каждого говорящего — своим цветом","type":"boolean"},"highlight":{"description":"The spoken word: colour, pop (grows), box, underline; `auto` — as the design intends","x-description-ru":"Слово, которое звучит: цвет, увеличение, плашка, подчёркивание; `auto` — как задумано оформлением","type":"string","enum":["auto","none","color","pop","box","underline"]},"animation":{"description":"Phrase entrance; `words` — word by word as spoken","x-description-ru":"Появление фразы; `words` — по словам, по мере речи","type":"string","enum":["auto","none","fade","pop","slide","words"]},"words":{"description":"Words on screen at once","x-description-ru":"Сколько слов на экране сразу","type":"string","enum":["auto","one","few","line","phrase"]},"letterCase":{"description":"Letter case; `auto` — as the font intends","x-description-ru":"Регистр; `auto` — как задумано шрифтом","type":"string","enum":["auto","upper","normal"]}},"additionalProperties":false},"params":{"type":"object","properties":{"soundEffects":{"type":"boolean"},"introZoom":{"type":"boolean"}},"additionalProperties":false}},"additionalProperties":false},"PublishRequestItem":{"type":"object","properties":{"accountId":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Connected account from GET /v1/social/accounts","x-description-ru":"Подключённый аккаунт из GET /v1/social/accounts"},"title":{"type":"string","maxLength":150},"caption":{"type":"string","maxLength":5000},"options":{"description":"Platform options: `{ youtube: { privacy, madeForKids } }`, `{ instagram: { shareToFeed } }`, `{ vk: { privacy, wallpost, groupId } }`, `aiGenerated`","x-description-ru":"Настройки платформы: `{ youtube: { privacy, madeForKids } }`, `{ instagram: { shareToFeed } }`, `{ vk: { privacy, wallpost, groupId } }`, `aiGenerated`","type":"object","properties":{},"additionalProperties":{}}},"required":["accountId"],"additionalProperties":false},"ExportRequest":{"type":"object","properties":{"profile":{"$ref":"#/components/schemas/ExportProfile"},"publish":{"maxItems":8,"type":"array","items":{"$ref":"#/components/schemas/PublishRequestItem"}}},"additionalProperties":false},"Publication":{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"platform":{"type":"string"},"accountName":{"type":["string","null"]},"status":{"type":"string"},"url":{"type":["string","null"]},"errorCode":{"type":["string","null"]},"createdAt":{"type":"string","description":"ISO 8601 date-time, UTC","x-description-ru":"Дата и время ISO 8601, UTC"}},"required":["id","platform","accountName","status","url","errorCode","createdAt"],"additionalProperties":{}},"SocialAccount":{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"platform":{"type":"string","enum":["youtube","instagram","tiktok","vk"]},"name":{"type":["string","null"]},"status":{"type":"string"},"apiPublishing":{"type":"boolean","description":"Can publish through the API (TikTok — only from the app)","x-description-ru":"Можно публиковать через API (TikTok — только из приложения)"}},"required":["id","platform","name","status","apiPublishing"],"additionalProperties":false},"EstimateRequest":{"type":"object","properties":{"kind":{"type":"string","enum":["montage","remount","retry","assistant","translate","transcribe"]},"projectId":{"description":"For retry and transcribe","x-description-ru":"Для повтора и распознавания речи","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["kind"],"additionalProperties":false},"Webhook":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"url":{"type":"string","format":"uri"},"events":{"type":"array","items":{"type":"string","enum":["upload.ready","upload.failed","project.succeeded","project.failed","project.cancelled","project.version_ready","export.succeeded","export.failed","publication.published","publication.failed"]}},"description":{"type":["string","null"]},"enabled":{"type":"boolean"},"disabledReason":{"type":["string","null"]},"failures":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Failed deliveries in a row","x-description-ru":"Неудачных доставок подряд"},"lastDeliveryAt":{"anyOf":[{"type":"string","description":"ISO 8601 date-time, UTC","x-description-ru":"Дата и время ISO 8601, UTC"},{"type":"null"}]},"createdAt":{"type":"string","description":"ISO 8601 date-time, UTC","x-description-ru":"Дата и время ISO 8601, UTC"}},"required":["id","url","events","description","enabled","disabledReason","failures","lastDeliveryAt","createdAt"],"additionalProperties":false},"CreateWebhookRequest":{"type":"object","properties":{"url":{"type":"string","maxLength":2048,"format":"uri"},"events":{"minItems":1,"type":"array","items":{"type":"string","enum":["upload.ready","upload.failed","project.succeeded","project.failed","project.cancelled","project.version_ready","export.succeeded","export.failed","publication.published","publication.failed"]}},"description":{"type":"string","maxLength":200}},"required":["url","events"],"additionalProperties":false},"UpdateWebhookRequest":{"type":"object","properties":{"url":{"type":"string","maxLength":2048,"format":"uri"},"events":{"minItems":1,"type":"array","items":{"type":"string","enum":["upload.ready","upload.failed","project.succeeded","project.failed","project.cancelled","project.version_ready","export.succeeded","export.failed","publication.published","publication.failed"]}},"description":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"enabled":{"type":"boolean"}},"additionalProperties":false},"CreatedWebhook":{"type":"object","properties":{"webhook":{"$ref":"#/components/schemas/Webhook"},"secret":{"type":"string","description":"Signing secret `whsec_…` — shown once","x-description-ru":"Секрет подписи `whsec_…` — показывается один раз"}},"required":["webhook","secret"],"additionalProperties":false},"WebhookDelivery":{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"eventId":{"type":"string"},"type":{"type":"string"},"status":{"type":"string","enum":["pending","succeeded","failed"]},"attempts":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"responseStatus":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"error":{"type":["string","null"]},"createdAt":{"type":"string","description":"ISO 8601 date-time, UTC","x-description-ru":"Дата и время ISO 8601, UTC"},"deliveredAt":{"anyOf":[{"type":"string","description":"ISO 8601 date-time, UTC","x-description-ru":"Дата и время ISO 8601, UTC"},{"type":"null"}]}},"required":["id","eventId","type","status","attempts","responseStatus","error","createdAt","deliveredAt"],"additionalProperties":false}},"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"slc_… API token or OAuth access token","description":"API token from the Slicer profile («For developers») or an OAuth access token"}}}}