Аутентификация
Используйте ключ FECINE как Bearer-токен. Для чтения документации аккаунт не нужен.
От сценария до готового видео — объедините производство с FECINE API.
Используйте ключ FECINE как Bearer-токен. Для чтения документации аккаунт не нужен.
Создайте произведение, загрузите сценарии и материалы, добавьте персонажей, локации, реквизит и сетки. Создайте эпизоды и сцены, прикрепите референсы и сгенерируйте видео сцен. Выберите дубль каждой сцены и экспортируйте итоговый монтаж. Дождитесь завершения генерации; при редактировании передавайте актуальную revision. Для построения структуры по загруженным сценариям отдельно запустите сборку.
Проверяйте статус или получайте Webhook. По ID файлов можно получить подписанные ссылки для скачивания.
curl -X GET 'https://YOUR_FECINE_HOST/api/v1/capabilities' \
-H 'Authorization: Bearer YOUR_FECINE_API_KEY'GET /api/v1/capabilitiesЭндпоинты не найдены
Ошибка FECINE. Передайте request_id службе поддержки.
Скопируйте JSON и замените ID, URL и содержимое своими значениями.
/api/v1/capabilitiesПосмотреть, что доступно сейчасВозвращает доступные функции, модели, форматы загрузки и ограничения производства в текущем окружении API.
Необходимое разрешение: projects:read
Нет параметров
HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"items": [
{
"studio_workflow": {
"equivalent": false,
"stages": [
"script"
],
"project_access": "read_only",
"gaps": [
"example"
]
},
"template_id": "example",
"template_version": 1,
"enabled": false,
"stages": [
"example"
],
"output_profiles": [
"example"
],
"unsupported_reasons": [
"example"
],
"max_shots": 1,
"max_episode_seconds": 1,
"upload_mime_types": [
"example"
],
"max_upload_bytes": 1
}
],
"next_cursor": "example"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/worksПосмотреть список проектовВозвращает доступные проекты. Фильтруйте по state, используйте cursor и limit для пагинации.
Необходимое разрешение: projects:read
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
cursorquery | string | — |
|
limitquery | integer | — |
|
statequery | string | — |
|
HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"items": [
{
"id": "11111111-1111-4111-8111-111111111111",
"name": "example",
"revision": 1,
"state": "active",
"created_at": "2026-09-20T00:00:00Z",
"client_reference": "example"
}
],
"next_cursor": "example"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/worksСоздать новый проектСоздаёт проект с указанным name. Используйте полученный ID для добавления материалов и запуска производства.
Необходимое разрешение: projects:write
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
Idempotency-Keyheader | string | * | Повторяйте запрос с теми же Idempotency-Key и телом.
|
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
name | string | * |
|
client_reference | string | — |
|
{
"name": "example"
}HTTP 201 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"id": "11111111-1111-4111-8111-111111111111",
"name": "example",
"revision": 1,
"state": "active",
"created_at": "2026-09-20T00:00:00Z",
"client_reference": "example"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/works/{project_id}Посмотреть данные проектаВозвращает имя, состояние и текущую revision проекта для проверки перед изменением или запуском производства.
Необходимое разрешение: projects:read
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
project_idpath | string | * |
|
HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"id": "11111111-1111-4111-8111-111111111111",
"name": "example",
"revision": 1,
"state": "active",
"created_at": "2026-09-20T00:00:00Z",
"client_reference": "example"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/works/{project_id}Изменить данные проектаМеняет имя или состояние active/archived проекта. Передайте последний ETag в If-Match.
Необходимое разрешение: projects:write
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
project_idpath | string | * |
|
If-Matchheader | string | * | Укажите последний ETag вместе с кавычками. |
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
name | string | — |
|
state | string | — |
|
{}HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"id": "11111111-1111-4111-8111-111111111111",
"name": "example",
"revision": 1,
"state": "active",
"created_at": "2026-09-20T00:00:00Z",
"client_reference": "example"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/works/{project_id}/resourcesПосмотреть загруженные материалыВозвращает сценарии, персонажей, сцены, реквизит, эпизоды и кадры проекта. Тип выбирается через kind.
Необходимое разрешение: projects:read
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
project_idpath | string | * |
|
cursorquery | string | — |
|
limitquery | integer | — |
|
kindquery | string | — |
|
HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"items": [
{
"id": "11111111-1111-4111-8111-111111111111",
"work_id": "11111111-1111-4111-8111-111111111111",
"revision": 1,
"content": {
"kind": "script",
"name": "example",
"data": {
"language": "example"
}
},
"created_at": "2026-09-20T00:00:00Z"
}
],
"next_cursor": "example"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/works/{project_id}/resourcesДобавить материалы: сценарий, изображенияДобавляет структурированный материал через kind и data, например текст сценария или описание кадра. Файлы загружаются через /uploads.
Необходимое разрешение: projects:write
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
project_idpath | string | * |
|
Idempotency-Keyheader | string | * | Повторяйте запрос с теми же Idempotency-Key и телом.
|
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
kind | string | * | kind = script
|
name | string | * | kind = script
|
data | object | * | kind = scriptУкажите только text или source_asset_id. |
data.text | string | — | kind = script
|
data.source_asset_id | string | — | kind = script
|
data.language | string | * | kind = script
|
kind | string | * | kind = character
|
name | string | * | kind = character
|
data | object | * | kind = character |
data.description | string | * | kind = character
|
data.reference_asset_ids | array | — | kind = character
|
kind | string | * | kind = scene
|
name | string | * | kind = scene
|
data | object | * | kind = scene |
data.description | string | * | kind = scene
|
data.reference_asset_ids | array | — | kind = scene
|
kind | string | * | kind = prop
|
name | string | * | kind = prop
|
data | object | * | kind = prop |
data.description | string | * | kind = prop
|
data.reference_asset_ids | array | — | kind = prop
|
kind | string | * | kind = episode
|
name | string | * | kind = episode
|
data | object | * | kind = episode |
data.script_resource_id | string | * | kind = episode
|
data.sequence | integer | * | kind = episode
|
data.raw_content | string | — | kind = episode
|
data.description | string | — | kind = episode
|
kind | string | * | kind = shot
|
name | string | * | kind = shot
|
data | object | * | kind = shot |
data.episode_id | string | * | kind = shot
|
data.scene_id | string | — | kind = shot
|
data.character_ids | array | — | kind = shot
|
data.prop_ids | array | — | kind = shot
|
data.description | string | * | kind = shot
|
data.video_prompt | oneOf | — | kind = shot |
data.sequence | integer | — | kind = shot
|
data.duration_seconds | integer | * | kind = shot
|
data.selected_image_asset_id | string | — | kind = shot
|
data.selected_video_asset_id | string | — | kind = shot
|
{
"kind": "script",
"name": "example",
"data": {
"language": "example"
}
}HTTP 201 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"id": "11111111-1111-4111-8111-111111111111",
"work_id": "11111111-1111-4111-8111-111111111111",
"revision": 1,
"content": {
"kind": "script",
"name": "example",
"data": {
"language": "example"
}
},
"created_at": "2026-09-20T00:00:00Z"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/works/{project_id}/resources/{resource_id}Посмотреть один материалВозвращает тип, содержимое и revision материала с указанным resource_id в проекте.
Необходимое разрешение: projects:read
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
project_idpath | string | * |
|
resource_idpath | string | * |
|
HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"id": "11111111-1111-4111-8111-111111111111",
"work_id": "11111111-1111-4111-8111-111111111111",
"revision": 1,
"content": {
"kind": "script",
"name": "example",
"data": {
"language": "example"
}
},
"created_at": "2026-09-20T00:00:00Z"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/works/{project_id}/resources/{resource_id}Изменить материалОбновляет kind и data материала. Передайте последний ETag в If-Match для защиты от конфликтующих правок.
Необходимое разрешение: projects:write
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
project_idpath | string | * |
|
resource_idpath | string | * |
|
If-Matchheader | string | * | Укажите последний ETag вместе с кавычками. |
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
kind | string | * | kind = script
|
name | string | * | kind = script
|
data | object | * | kind = scriptУкажите только text или source_asset_id. |
data.text | string | — | kind = script
|
data.source_asset_id | string | — | kind = script
|
data.language | string | * | kind = script
|
kind | string | * | kind = character
|
name | string | * | kind = character
|
data | object | * | kind = character |
data.description | string | * | kind = character
|
data.reference_asset_ids | array | — | kind = character
|
kind | string | * | kind = scene
|
name | string | * | kind = scene
|
data | object | * | kind = scene |
data.description | string | * | kind = scene
|
data.reference_asset_ids | array | — | kind = scene
|
kind | string | * | kind = prop
|
name | string | * | kind = prop
|
data | object | * | kind = prop |
data.description | string | * | kind = prop
|
data.reference_asset_ids | array | — | kind = prop
|
kind | string | * | kind = episode
|
name | string | * | kind = episode
|
data | object | * | kind = episode |
data.script_resource_id | string | * | kind = episode
|
data.sequence | integer | * | kind = episode
|
data.raw_content | string | — | kind = episode
|
data.description | string | — | kind = episode
|
kind | string | * | kind = shot
|
name | string | * | kind = shot
|
data | object | * | kind = shot |
data.episode_id | string | * | kind = shot
|
data.scene_id | string | — | kind = shot
|
data.character_ids | array | — | kind = shot
|
data.prop_ids | array | — | kind = shot
|
data.description | string | * | kind = shot
|
data.video_prompt | oneOf | — | kind = shot |
data.sequence | integer | — | kind = shot
|
data.duration_seconds | integer | * | kind = shot
|
data.selected_image_asset_id | string | — | kind = shot
|
data.selected_video_asset_id | string | — | kind = shot
|
{
"kind": "script",
"name": "example",
"data": {
"language": "example"
}
}HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"id": "11111111-1111-4111-8111-111111111111",
"work_id": "11111111-1111-4111-8111-111111111111",
"revision": 1,
"content": {
"kind": "script",
"name": "example",
"data": {
"language": "example"
}
},
"created_at": "2026-09-20T00:00:00Z"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/works/{project_id}/workflowДанные производства StudioВозвращает сценарий, эпизоды, дизайны, сцены, ресурсы, дубли, выбор монтажа и текущую revision проекта.
Необходимое разрешение: projects:read
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
project_idpath | string | * |
|
HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"api_runs": [
{
"id": "11111111-1111-4111-8111-111111111111",
"state": "example",
"created_at": "example",
"completed_at": "example",
"total_steps": 0,
"completed_steps": 0,
"error_code": "example"
}
],
"work_id": "11111111-1111-4111-8111-111111111111",
"revision": 1,
"studio_url": "example",
"trash": [
{
"id": "11111111-1111-4111-8111-111111111111",
"entity_type": "asset",
"name": "example",
"deleted_at": "example"
}
],
"assets": [
{
"id": "11111111-1111-4111-8111-111111111111",
"name": "example",
"kind": "example",
"media_type": "example",
"status": "example",
"mime": "example",
"lineage_id": "11111111-1111-4111-8111-111111111111",
"version": 1,
"is_current_version": false
}
],
"settings": {
"title": "example",
"tags": [
"example"
],
"cover": "example",
"aspect": "example",
"resolution": "example",
"style": "example",
"style_prompt": "example",
"state": "example"
},
"script": {
"text": "example",
"logline": "example",
"synopsis": "example"
},
"episodes": [
{
"id": "11111111-1111-4111-8111-111111111111",
"number": 1,
"title": "example",
"raw_content": "example",
"description": "example"
}
],
"designs": [
{
"id": "11111111-1111-4111-8111-111111111111",
"kind": "character",
"name": "example",
"description": "example",
"tags": [
"example"
],
"primary_asset_id": "11111111-1111-4111-8111-111111111111"
}
],
"scenes": [
{
"id": "11111111-1111-4111-8111-111111111111",
"episode_id": "11111111-1111-4111-8111-111111111111",
"number": 1,
"heading": "example",
"description": "example",
"video_prompt": "example"
}
],
"scene_designs": [
{
"scene_id": "11111111-1111-4111-8111-111111111111",
"design_id": "11111111-1111-4111-8111-111111111111",
"kind": "example",
"position": 1
}
],
"takes": [
{
"scene_id": "11111111-1111-4111-8111-111111111111",
"asset_id": "11111111-1111-4111-8111-111111111111",
"position": 1
}
],
"cut_selections": [
{
"scene_id": "11111111-1111-4111-8111-111111111111",
"asset_id": "11111111-1111-4111-8111-111111111111"
}
],
"design_assets": [
{
"design_id": "11111111-1111-4111-8111-111111111111",
"asset_id": "11111111-1111-4111-8111-111111111111",
"kind": "example",
"name": "example",
"position": 1
}
]
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/works/{project_id}/script/analysesАнализ сценария StudioАнализирует сценарий и извлекает структуру производства. Передайте script_text для обновления либо пропустите для анализа сохранённого текста. Отслеживайте через getJob.
Необходимое разрешение: jobs:create
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
project_idpath | string | * |
|
Idempotency-Keyheader | string | * | Повторяйте запрос с теми же Idempotency-Key и телом.
|
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
revision | integer | * | |
model | string | — |
|
script_text | string | — |
|
{
"revision": 1
}HTTP 202 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"id": "11111111-1111-4111-8111-111111111111",
"work_id": "11111111-1111-4111-8111-111111111111",
"run_id": "11111111-1111-4111-8111-111111111111",
"state": "queued",
"output_asset_ids": [
"11111111-1111-4111-8111-111111111111"
],
"error_code": "example"
}
}Заголовки ответа: X-Request-Id · ETag · Retry-After
/api/v1/works/{project_id}/script/buildsСоздать структуру производства из сценарияПередайте проверенные script_asset_ids и revision для создания сценария, референсов и раскадровки. full_rebuild заменяет структуру. Изображения и видео создаются отдельно. Фактические входные и выходные токены оплачиваются по тарифам Studio. Бюджет кредитов для запроса не требуется. GET /jobs/{job_id} → output_asset_ids.
Необходимое разрешение: jobs:create
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
project_idpath | string | * |
|
Idempotency-Keyheader | string | * | Повторяйте запрос с теми же Idempotency-Key и телом.
|
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
revision | integer | * | |
model | string | — |
|
script_asset_ids | array | — |
|
material_scope | string | — |
|
preprocess | object | — | |
preprocess.ignoreAttachments | boolean | — |
|
preprocess.discardKeywords | array | — |
|
preprocess.keepLabels | array | — |
|
rebuild_policy | string | * |
|
{
"revision": 1,
"rebuild_policy": "full_rebuild"
}HTTP 202 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"id": "11111111-1111-4111-8111-111111111111",
"work_id": "11111111-1111-4111-8111-111111111111",
"run_id": "11111111-1111-4111-8111-111111111111",
"state": "queued",
"output_asset_ids": [
"11111111-1111-4111-8111-111111111111"
],
"error_code": "example"
}
}Заголовки ответа: X-Request-Id · ETag · Retry-After
/api/v1/works/{project_id}/libraryМатериалы общей библиотекиВозвращает материалы для импорта. scope=personal выбирает личную библиотеку, scope=studio по умолчанию — общую.
Необходимое разрешение: assets:read
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
project_idpath | string | * |
|
limit | integer | — |
|
cursor | string | — | |
scope | string | — |
|
HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"items": [
{
"id": "11111111-1111-4111-8111-111111111111",
"name": "example",
"kind": "example",
"media_type": "example",
"mime": "example",
"version": 1,
"is_current_version": false
}
],
"next_cursor": "example"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/works/{project_id}/importsИмпорт материала в проектКопирует материал по asset_id из личной или общей библиотеки в проект. Последующие изменения или удаление оригинала не влияют на копию.
Необходимое разрешение: assets:write, assets:read, projects:write
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
project_idpath | string | * |
|
Idempotency-Keyheader | string | * | Повторяйте запрос с теми же Idempotency-Key и телом.
|
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
revision | integer | * | |
asset_id | string | * |
|
{
"revision": 1,
"asset_id": "11111111-1111-4111-8111-111111111111"
}HTTP 201 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"id": "11111111-1111-4111-8111-111111111111",
"work_id": "11111111-1111-4111-8111-111111111111",
"state": "pending",
"mime_type": "example",
"size_bytes": 0,
"download_url": "example",
"expires_at": "2026-09-20T00:00:00Z"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/works/{project_id}/script/draftsСоздать черновик сценарияПередайте instructions, необязательный source_text, revision и max_output_tokens. Сохраняет новый сценарий без замены существующего. Фактические входные и выходные токены оплачиваются по тарифам Studio. Бюджет кредитов для запроса не требуется. GET /jobs/{job_id} → output_asset_ids.
Необходимое разрешение: jobs:create
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
project_idpath | string | * |
|
Idempotency-Keyheader | string | * | Повторяйте запрос с теми же Idempotency-Key и телом.
|
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
revision | integer | * | |
model | string | — |
|
instructions | string | * |
|
source_text | string | — |
|
max_output_tokens | integer | — |
|
{
"revision": 1,
"instructions": "example"
}HTTP 202 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"id": "11111111-1111-4111-8111-111111111111",
"work_id": "11111111-1111-4111-8111-111111111111",
"run_id": "11111111-1111-4111-8111-111111111111",
"state": "queued",
"output_asset_ids": [
"11111111-1111-4111-8111-111111111111"
],
"error_code": "example"
}
}Заголовки ответа: X-Request-Id · ETag · Retry-After
/api/v1/works/{work_id}/charactersПерсонаж · Просмотр (list)Персонаж · Просмотр (list). GET /api/v1/works/{work_id}/characters. GET
Необходимое разрешение: projects:read
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
work_idpath | string | * |
|
cursorquery | string | — |
|
limitquery | integer | — |
|
HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"work_id": "11111111-1111-4111-8111-111111111111",
"revision": 1,
"items": [
{
"id": "11111111-1111-4111-8111-111111111111",
"kind": "character",
"name": "example",
"description": "example",
"tags": [
"example"
],
"primary_asset_id": "11111111-1111-4111-8111-111111111111"
}
],
"next_cursor": "example"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/works/{work_id}/charactersПерсонаж · СоздатьПерсонаж · Создать. POST /api/v1/works/{work_id}/characters. revision + Idempotency-Key
Необходимое разрешение: projects:write
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
work_idpath | string | * |
|
Idempotency-Keyheader | string | * | Повторяйте запрос с теми же Idempotency-Key и телом.
|
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
name | string | * |
|
description | string | — |
|
tags | array | — |
|
revision | integer | * |
{
"name": "example",
"revision": 1
}HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"work_id": "11111111-1111-4111-8111-111111111111",
"changed_id": "11111111-1111-4111-8111-111111111111",
"revision": 1,
"studio_url": "example"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/works/{work_id}/characters/{reference_id}Персонаж · ПросмотрПерсонаж · Просмотр. GET /api/v1/works/{work_id}/characters/{reference_id}. GET
Необходимое разрешение: projects:read
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
work_idpath | string | * |
|
reference_idpath | string | * |
|
cursorquery | string | — |
|
limitquery | integer | — |
|
HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"id": "11111111-1111-4111-8111-111111111111",
"kind": "character",
"name": "example",
"description": "example",
"tags": [
"example"
],
"primary_asset_id": "11111111-1111-4111-8111-111111111111"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/works/{work_id}/characters/{reference_id}Персонаж · ИзменитьПерсонаж · Изменить. PATCH /api/v1/works/{work_id}/characters/{reference_id}. revision + Idempotency-Key
Необходимое разрешение: projects:write
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
work_idpath | string | * |
|
reference_idpath | string | * |
|
Idempotency-Keyheader | string | * | Повторяйте запрос с теми же Idempotency-Key и телом.
|
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
name | string | * |
|
description | string | — |
|
tags | array | — |
|
revision | integer | * |
{
"name": "example",
"revision": 1
}HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"work_id": "11111111-1111-4111-8111-111111111111",
"changed_id": "11111111-1111-4111-8111-111111111111",
"revision": 1,
"studio_url": "example"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/works/{work_id}/characters/{reference_id}Персонаж · УдалитьПерсонаж · Удалить. DELETE /api/v1/works/{work_id}/characters/{reference_id}. revision + Idempotency-Key
Необходимое разрешение: projects:write
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
work_idpath | string | * |
|
reference_idpath | string | * |
|
Idempotency-Keyheader | string | * | Повторяйте запрос с теми же Idempotency-Key и телом.
|
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
revision | integer | * |
{
"revision": 1
}HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"work_id": "11111111-1111-4111-8111-111111111111",
"changed_id": "11111111-1111-4111-8111-111111111111",
"revision": 1,
"studio_url": "example"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/works/{work_id}/characters/{reference_id}/primary-imageПерсонаж · Задать референсПерсонаж · Задать референс. PUT /api/v1/works/{work_id}/characters/{reference_id}/primary-image. revision + Idempotency-Key
Необходимое разрешение: projects:write
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
work_idpath | string | * |
|
reference_idpath | string | * |
|
Idempotency-Keyheader | string | * | Повторяйте запрос с теми же Idempotency-Key и телом.
|
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
asset_id | string | * |
|
current_asset_id | oneOf | * | |
revision | integer | * |
{
"asset_id": "11111111-1111-4111-8111-111111111111",
"current_asset_id": "11111111-1111-4111-8111-111111111111",
"revision": 1
}HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"work_id": "11111111-1111-4111-8111-111111111111",
"changed_id": "11111111-1111-4111-8111-111111111111",
"revision": 1,
"studio_url": "example"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/works/{work_id}/characters/{reference_id}/image-generationsПерсонаж · Создать референсПерсонаж · Создать референс. POST /api/v1/works/{work_id}/characters/{reference_id}/image-generations. revision + Idempotency-Key → GET /api/v1/jobs/{job_id}
Необходимое разрешение: jobs:create
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
work_idpath | string | * |
|
reference_idpath | string | * |
|
Idempotency-Keyheader | string | * | Повторяйте запрос с теми же Idempotency-Key и телом.
|
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
revision | integer | * | |
variants | integer | — |
|
model | string | — |
|
prompt | string | — |
|
aspect_ratio | string | — | |
image_size | string | — |
|
quality | string | — |
|
background | string | — |
|
output_format | string | — |
|
reference_asset_ids | array | — |
|
slot | string | — |
|
variant_name | string | — |
|
current_asset_id | string | — |
|
{
"revision": 1
}HTTP 202 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"id": "11111111-1111-4111-8111-111111111111",
"work_id": "11111111-1111-4111-8111-111111111111",
"run_id": "11111111-1111-4111-8111-111111111111",
"state": "queued",
"output_asset_ids": [
"11111111-1111-4111-8111-111111111111"
],
"error_code": "example"
}
}Заголовки ответа: X-Request-Id · ETag · Retry-After
/api/v1/works/{work_id}/scenes/{scene_id}/references/characters/{reference_id}Персонаж · Привязать к сценеПерсонаж · Привязать к сцене. PUT /api/v1/works/{work_id}/scenes/{scene_id}/references/characters/{reference_id}. revision + Idempotency-Key
Необходимое разрешение: projects:write
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
work_idpath | string | * |
|
scene_idpath | string | * |
|
reference_idpath | string | * |
|
Idempotency-Keyheader | string | * | Повторяйте запрос с теми же Idempotency-Key и телом.
|
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
revision | integer | * |
{
"revision": 1
}HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"work_id": "11111111-1111-4111-8111-111111111111",
"changed_id": "11111111-1111-4111-8111-111111111111",
"revision": 1,
"studio_url": "example"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/works/{work_id}/scenes/{scene_id}/references/characters/{reference_id}Персонаж · Отвязать от сценыПерсонаж · Отвязать от сцены. DELETE /api/v1/works/{work_id}/scenes/{scene_id}/references/characters/{reference_id}. revision + Idempotency-Key
Необходимое разрешение: projects:write
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
work_idpath | string | * |
|
scene_idpath | string | * |
|
reference_idpath | string | * |
|
Idempotency-Keyheader | string | * | Повторяйте запрос с теми же Idempotency-Key и телом.
|
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
revision | integer | * |
{
"revision": 1
}HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"work_id": "11111111-1111-4111-8111-111111111111",
"changed_id": "11111111-1111-4111-8111-111111111111",
"revision": 1,
"studio_url": "example"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/works/{work_id}/background-scenesФон сцены · Просмотр (list)Фон сцены · Просмотр (list). GET /api/v1/works/{work_id}/background-scenes. GET
Необходимое разрешение: projects:read
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
work_idpath | string | * |
|
cursorquery | string | — |
|
limitquery | integer | — |
|
HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"work_id": "11111111-1111-4111-8111-111111111111",
"revision": 1,
"items": [
{
"id": "11111111-1111-4111-8111-111111111111",
"kind": "character",
"name": "example",
"description": "example",
"tags": [
"example"
],
"primary_asset_id": "11111111-1111-4111-8111-111111111111"
}
],
"next_cursor": "example"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/works/{work_id}/background-scenesФон сцены · СоздатьФон сцены · Создать. POST /api/v1/works/{work_id}/background-scenes. revision + Idempotency-Key
Необходимое разрешение: projects:write
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
work_idpath | string | * |
|
Idempotency-Keyheader | string | * | Повторяйте запрос с теми же Idempotency-Key и телом.
|
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
name | string | * |
|
description | string | — |
|
tags | array | — |
|
revision | integer | * |
{
"name": "example",
"revision": 1
}HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"work_id": "11111111-1111-4111-8111-111111111111",
"changed_id": "11111111-1111-4111-8111-111111111111",
"revision": 1,
"studio_url": "example"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/works/{work_id}/background-scenes/{reference_id}Фон сцены · ПросмотрФон сцены · Просмотр. GET /api/v1/works/{work_id}/background-scenes/{reference_id}. GET
Необходимое разрешение: projects:read
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
work_idpath | string | * |
|
reference_idpath | string | * |
|
cursorquery | string | — |
|
limitquery | integer | — |
|
HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"id": "11111111-1111-4111-8111-111111111111",
"kind": "character",
"name": "example",
"description": "example",
"tags": [
"example"
],
"primary_asset_id": "11111111-1111-4111-8111-111111111111"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/works/{work_id}/background-scenes/{reference_id}Фон сцены · ИзменитьФон сцены · Изменить. PATCH /api/v1/works/{work_id}/background-scenes/{reference_id}. revision + Idempotency-Key
Необходимое разрешение: projects:write
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
work_idpath | string | * |
|
reference_idpath | string | * |
|
Idempotency-Keyheader | string | * | Повторяйте запрос с теми же Idempotency-Key и телом.
|
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
name | string | * |
|
description | string | — |
|
tags | array | — |
|
revision | integer | * |
{
"name": "example",
"revision": 1
}HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"work_id": "11111111-1111-4111-8111-111111111111",
"changed_id": "11111111-1111-4111-8111-111111111111",
"revision": 1,
"studio_url": "example"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/works/{work_id}/background-scenes/{reference_id}Фон сцены · УдалитьФон сцены · Удалить. DELETE /api/v1/works/{work_id}/background-scenes/{reference_id}. revision + Idempotency-Key
Необходимое разрешение: projects:write
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
work_idpath | string | * |
|
reference_idpath | string | * |
|
Idempotency-Keyheader | string | * | Повторяйте запрос с теми же Idempotency-Key и телом.
|
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
revision | integer | * |
{
"revision": 1
}HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"work_id": "11111111-1111-4111-8111-111111111111",
"changed_id": "11111111-1111-4111-8111-111111111111",
"revision": 1,
"studio_url": "example"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/works/{work_id}/background-scenes/{reference_id}/primary-imageФон сцены · Задать референсФон сцены · Задать референс. PUT /api/v1/works/{work_id}/background-scenes/{reference_id}/primary-image. revision + Idempotency-Key
Необходимое разрешение: projects:write
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
work_idpath | string | * |
|
reference_idpath | string | * |
|
Idempotency-Keyheader | string | * | Повторяйте запрос с теми же Idempotency-Key и телом.
|
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
asset_id | string | * |
|
current_asset_id | oneOf | * | |
revision | integer | * |
{
"asset_id": "11111111-1111-4111-8111-111111111111",
"current_asset_id": "11111111-1111-4111-8111-111111111111",
"revision": 1
}HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"work_id": "11111111-1111-4111-8111-111111111111",
"changed_id": "11111111-1111-4111-8111-111111111111",
"revision": 1,
"studio_url": "example"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/works/{work_id}/background-scenes/{reference_id}/image-generationsФон сцены · Создать референсФон сцены · Создать референс. POST /api/v1/works/{work_id}/background-scenes/{reference_id}/image-generations. revision + Idempotency-Key → GET /api/v1/jobs/{job_id}
Необходимое разрешение: jobs:create
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
work_idpath | string | * |
|
reference_idpath | string | * |
|
Idempotency-Keyheader | string | * | Повторяйте запрос с теми же Idempotency-Key и телом.
|
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
revision | integer | * | |
variants | integer | — |
|
model | string | — |
|
prompt | string | — |
|
aspect_ratio | string | — | |
image_size | string | — |
|
quality | string | — |
|
background | string | — |
|
output_format | string | — |
|
reference_asset_ids | array | — |
|
slot | string | — |
|
variant_name | string | — |
|
current_asset_id | string | — |
|
{
"revision": 1
}HTTP 202 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"id": "11111111-1111-4111-8111-111111111111",
"work_id": "11111111-1111-4111-8111-111111111111",
"run_id": "11111111-1111-4111-8111-111111111111",
"state": "queued",
"output_asset_ids": [
"11111111-1111-4111-8111-111111111111"
],
"error_code": "example"
}
}Заголовки ответа: X-Request-Id · ETag · Retry-After
/api/v1/works/{work_id}/scenes/{scene_id}/references/background-scenes/{reference_id}Фон сцены · Привязать к сценеФон сцены · Привязать к сцене. PUT /api/v1/works/{work_id}/scenes/{scene_id}/references/background-scenes/{reference_id}. revision + Idempotency-Key
Необходимое разрешение: projects:write
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
work_idpath | string | * |
|
scene_idpath | string | * |
|
reference_idpath | string | * |
|
Idempotency-Keyheader | string | * | Повторяйте запрос с теми же Idempotency-Key и телом.
|
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
revision | integer | * |
{
"revision": 1
}HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"work_id": "11111111-1111-4111-8111-111111111111",
"changed_id": "11111111-1111-4111-8111-111111111111",
"revision": 1,
"studio_url": "example"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/works/{work_id}/scenes/{scene_id}/references/background-scenes/{reference_id}Фон сцены · Отвязать от сценыФон сцены · Отвязать от сцены. DELETE /api/v1/works/{work_id}/scenes/{scene_id}/references/background-scenes/{reference_id}. revision + Idempotency-Key
Необходимое разрешение: projects:write
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
work_idpath | string | * |
|
scene_idpath | string | * |
|
reference_idpath | string | * |
|
Idempotency-Keyheader | string | * | Повторяйте запрос с теми же Idempotency-Key и телом.
|
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
revision | integer | * |
{
"revision": 1
}HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"work_id": "11111111-1111-4111-8111-111111111111",
"changed_id": "11111111-1111-4111-8111-111111111111",
"revision": 1,
"studio_url": "example"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/works/{work_id}/propsРеквизит · Просмотр (list)Реквизит · Просмотр (list). GET /api/v1/works/{work_id}/props. GET
Необходимое разрешение: projects:read
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
work_idpath | string | * |
|
cursorquery | string | — |
|
limitquery | integer | — |
|
HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"work_id": "11111111-1111-4111-8111-111111111111",
"revision": 1,
"items": [
{
"id": "11111111-1111-4111-8111-111111111111",
"kind": "character",
"name": "example",
"description": "example",
"tags": [
"example"
],
"primary_asset_id": "11111111-1111-4111-8111-111111111111"
}
],
"next_cursor": "example"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/works/{work_id}/propsРеквизит · СоздатьРеквизит · Создать. POST /api/v1/works/{work_id}/props. revision + Idempotency-Key
Необходимое разрешение: projects:write
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
work_idpath | string | * |
|
Idempotency-Keyheader | string | * | Повторяйте запрос с теми же Idempotency-Key и телом.
|
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
name | string | * |
|
description | string | — |
|
tags | array | — |
|
revision | integer | * |
{
"name": "example",
"revision": 1
}HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"work_id": "11111111-1111-4111-8111-111111111111",
"changed_id": "11111111-1111-4111-8111-111111111111",
"revision": 1,
"studio_url": "example"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/works/{work_id}/props/{reference_id}Реквизит · ПросмотрРеквизит · Просмотр. GET /api/v1/works/{work_id}/props/{reference_id}. GET
Необходимое разрешение: projects:read
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
work_idpath | string | * |
|
reference_idpath | string | * |
|
cursorquery | string | — |
|
limitquery | integer | — |
|
HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"id": "11111111-1111-4111-8111-111111111111",
"kind": "character",
"name": "example",
"description": "example",
"tags": [
"example"
],
"primary_asset_id": "11111111-1111-4111-8111-111111111111"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/works/{work_id}/props/{reference_id}Реквизит · ИзменитьРеквизит · Изменить. PATCH /api/v1/works/{work_id}/props/{reference_id}. revision + Idempotency-Key
Необходимое разрешение: projects:write
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
work_idpath | string | * |
|
reference_idpath | string | * |
|
Idempotency-Keyheader | string | * | Повторяйте запрос с теми же Idempotency-Key и телом.
|
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
name | string | * |
|
description | string | — |
|
tags | array | — |
|
revision | integer | * |
{
"name": "example",
"revision": 1
}HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"work_id": "11111111-1111-4111-8111-111111111111",
"changed_id": "11111111-1111-4111-8111-111111111111",
"revision": 1,
"studio_url": "example"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/works/{work_id}/props/{reference_id}Реквизит · УдалитьРеквизит · Удалить. DELETE /api/v1/works/{work_id}/props/{reference_id}. revision + Idempotency-Key
Необходимое разрешение: projects:write
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
work_idpath | string | * |
|
reference_idpath | string | * |
|
Idempotency-Keyheader | string | * | Повторяйте запрос с теми же Idempotency-Key и телом.
|
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
revision | integer | * |
{
"revision": 1
}HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"work_id": "11111111-1111-4111-8111-111111111111",
"changed_id": "11111111-1111-4111-8111-111111111111",
"revision": 1,
"studio_url": "example"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/works/{work_id}/props/{reference_id}/primary-imageРеквизит · Задать референсРеквизит · Задать референс. PUT /api/v1/works/{work_id}/props/{reference_id}/primary-image. revision + Idempotency-Key
Необходимое разрешение: projects:write
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
work_idpath | string | * |
|
reference_idpath | string | * |
|
Idempotency-Keyheader | string | * | Повторяйте запрос с теми же Idempotency-Key и телом.
|
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
asset_id | string | * |
|
current_asset_id | oneOf | * | |
revision | integer | * |
{
"asset_id": "11111111-1111-4111-8111-111111111111",
"current_asset_id": "11111111-1111-4111-8111-111111111111",
"revision": 1
}HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"work_id": "11111111-1111-4111-8111-111111111111",
"changed_id": "11111111-1111-4111-8111-111111111111",
"revision": 1,
"studio_url": "example"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/works/{work_id}/props/{reference_id}/image-generationsРеквизит · Создать референсРеквизит · Создать референс. POST /api/v1/works/{work_id}/props/{reference_id}/image-generations. revision + Idempotency-Key → GET /api/v1/jobs/{job_id}
Необходимое разрешение: jobs:create
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
work_idpath | string | * |
|
reference_idpath | string | * |
|
Idempotency-Keyheader | string | * | Повторяйте запрос с теми же Idempotency-Key и телом.
|
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
revision | integer | * | |
variants | integer | — |
|
model | string | — |
|
prompt | string | — |
|
aspect_ratio | string | — | |
image_size | string | — |
|
quality | string | — |
|
background | string | — |
|
output_format | string | — |
|
reference_asset_ids | array | — |
|
slot | string | — |
|
variant_name | string | — |
|
current_asset_id | string | — |
|
{
"revision": 1
}HTTP 202 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"id": "11111111-1111-4111-8111-111111111111",
"work_id": "11111111-1111-4111-8111-111111111111",
"run_id": "11111111-1111-4111-8111-111111111111",
"state": "queued",
"output_asset_ids": [
"11111111-1111-4111-8111-111111111111"
],
"error_code": "example"
}
}Заголовки ответа: X-Request-Id · ETag · Retry-After
/api/v1/works/{work_id}/scenes/{scene_id}/references/props/{reference_id}Реквизит · Привязать к сценеРеквизит · Привязать к сцене. PUT /api/v1/works/{work_id}/scenes/{scene_id}/references/props/{reference_id}. revision + Idempotency-Key
Необходимое разрешение: projects:write
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
work_idpath | string | * |
|
scene_idpath | string | * |
|
reference_idpath | string | * |
|
Idempotency-Keyheader | string | * | Повторяйте запрос с теми же Idempotency-Key и телом.
|
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
revision | integer | * |
{
"revision": 1
}HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"work_id": "11111111-1111-4111-8111-111111111111",
"changed_id": "11111111-1111-4111-8111-111111111111",
"revision": 1,
"studio_url": "example"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/works/{work_id}/scenes/{scene_id}/references/props/{reference_id}Реквизит · Отвязать от сценыРеквизит · Отвязать от сцены. DELETE /api/v1/works/{work_id}/scenes/{scene_id}/references/props/{reference_id}. revision + Idempotency-Key
Необходимое разрешение: projects:write
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
work_idpath | string | * |
|
scene_idpath | string | * |
|
reference_idpath | string | * |
|
Idempotency-Keyheader | string | * | Повторяйте запрос с теми же Idempotency-Key и телом.
|
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
revision | integer | * |
{
"revision": 1
}HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"work_id": "11111111-1111-4111-8111-111111111111",
"changed_id": "11111111-1111-4111-8111-111111111111",
"revision": 1,
"studio_url": "example"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/works/{work_id}/gridsСетка · Просмотр (list)Сетка · Просмотр (list). GET /api/v1/works/{work_id}/grids. GET
Необходимое разрешение: projects:read
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
work_idpath | string | * |
|
cursorquery | string | — |
|
limitquery | integer | — |
|
HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"work_id": "11111111-1111-4111-8111-111111111111",
"revision": 1,
"items": [
{
"id": "11111111-1111-4111-8111-111111111111",
"kind": "character",
"name": "example",
"description": "example",
"tags": [
"example"
],
"primary_asset_id": "11111111-1111-4111-8111-111111111111"
}
],
"next_cursor": "example"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/works/{work_id}/gridsСетка · СоздатьСетка · Создать. POST /api/v1/works/{work_id}/grids. revision + Idempotency-Key
Необходимое разрешение: projects:write
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
work_idpath | string | * |
|
Idempotency-Keyheader | string | * | Повторяйте запрос с теми же Idempotency-Key и телом.
|
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
name | string | * |
|
description | string | — |
|
tags | array | — |
|
revision | integer | * |
{
"name": "example",
"revision": 1
}HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"work_id": "11111111-1111-4111-8111-111111111111",
"changed_id": "11111111-1111-4111-8111-111111111111",
"revision": 1,
"studio_url": "example"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/works/{work_id}/grids/{reference_id}Сетка · ПросмотрСетка · Просмотр. GET /api/v1/works/{work_id}/grids/{reference_id}. GET
Необходимое разрешение: projects:read
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
work_idpath | string | * |
|
reference_idpath | string | * |
|
cursorquery | string | — |
|
limitquery | integer | — |
|
HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"id": "11111111-1111-4111-8111-111111111111",
"kind": "character",
"name": "example",
"description": "example",
"tags": [
"example"
],
"primary_asset_id": "11111111-1111-4111-8111-111111111111"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/works/{work_id}/grids/{reference_id}Сетка · ИзменитьСетка · Изменить. PATCH /api/v1/works/{work_id}/grids/{reference_id}. revision + Idempotency-Key
Необходимое разрешение: projects:write
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
work_idpath | string | * |
|
reference_idpath | string | * |
|
Idempotency-Keyheader | string | * | Повторяйте запрос с теми же Idempotency-Key и телом.
|
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
name | string | * |
|
description | string | — |
|
tags | array | — |
|
revision | integer | * |
{
"name": "example",
"revision": 1
}HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"work_id": "11111111-1111-4111-8111-111111111111",
"changed_id": "11111111-1111-4111-8111-111111111111",
"revision": 1,
"studio_url": "example"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/works/{work_id}/grids/{reference_id}Сетка · УдалитьСетка · Удалить. DELETE /api/v1/works/{work_id}/grids/{reference_id}. revision + Idempotency-Key
Необходимое разрешение: projects:write
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
work_idpath | string | * |
|
reference_idpath | string | * |
|
Idempotency-Keyheader | string | * | Повторяйте запрос с теми же Idempotency-Key и телом.
|
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
revision | integer | * |
{
"revision": 1
}HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"work_id": "11111111-1111-4111-8111-111111111111",
"changed_id": "11111111-1111-4111-8111-111111111111",
"revision": 1,
"studio_url": "example"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/works/{work_id}/grids/{reference_id}/primary-imageСетка · Задать референсСетка · Задать референс. PUT /api/v1/works/{work_id}/grids/{reference_id}/primary-image. revision + Idempotency-Key
Необходимое разрешение: projects:write
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
work_idpath | string | * |
|
reference_idpath | string | * |
|
Idempotency-Keyheader | string | * | Повторяйте запрос с теми же Idempotency-Key и телом.
|
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
asset_id | string | * |
|
current_asset_id | oneOf | * | |
revision | integer | * |
{
"asset_id": "11111111-1111-4111-8111-111111111111",
"current_asset_id": "11111111-1111-4111-8111-111111111111",
"revision": 1
}HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"work_id": "11111111-1111-4111-8111-111111111111",
"changed_id": "11111111-1111-4111-8111-111111111111",
"revision": 1,
"studio_url": "example"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/works/{work_id}/grids/{reference_id}/image-generationsСетка · Создать референсСетка · Создать референс. POST /api/v1/works/{work_id}/grids/{reference_id}/image-generations. revision + Idempotency-Key → GET /api/v1/jobs/{job_id}
Необходимое разрешение: jobs:create
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
work_idpath | string | * |
|
reference_idpath | string | * |
|
Idempotency-Keyheader | string | * | Повторяйте запрос с теми же Idempotency-Key и телом.
|
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
revision | integer | * | |
variants | integer | — |
|
model | string | — |
|
prompt | string | — |
|
aspect_ratio | string | — | |
image_size | string | — |
|
quality | string | — |
|
background | string | — |
|
output_format | string | — |
|
reference_asset_ids | array | — |
|
slot | string | — |
|
variant_name | string | — |
|
current_asset_id | string | — |
|
{
"revision": 1
}HTTP 202 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"id": "11111111-1111-4111-8111-111111111111",
"work_id": "11111111-1111-4111-8111-111111111111",
"run_id": "11111111-1111-4111-8111-111111111111",
"state": "queued",
"output_asset_ids": [
"11111111-1111-4111-8111-111111111111"
],
"error_code": "example"
}
}Заголовки ответа: X-Request-Id · ETag · Retry-After
/api/v1/works/{work_id}/scenes/{scene_id}/references/grids/{reference_id}Сетка · Привязать к сценеСетка · Привязать к сцене. PUT /api/v1/works/{work_id}/scenes/{scene_id}/references/grids/{reference_id}. revision + Idempotency-Key
Необходимое разрешение: projects:write
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
work_idpath | string | * |
|
scene_idpath | string | * |
|
reference_idpath | string | * |
|
Idempotency-Keyheader | string | * | Повторяйте запрос с теми же Idempotency-Key и телом.
|
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
revision | integer | * |
{
"revision": 1
}HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"work_id": "11111111-1111-4111-8111-111111111111",
"changed_id": "11111111-1111-4111-8111-111111111111",
"revision": 1,
"studio_url": "example"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/works/{work_id}/scenes/{scene_id}/references/grids/{reference_id}Сетка · Отвязать от сценыСетка · Отвязать от сцены. DELETE /api/v1/works/{work_id}/scenes/{scene_id}/references/grids/{reference_id}. revision + Idempotency-Key
Необходимое разрешение: projects:write
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
work_idpath | string | * |
|
scene_idpath | string | * |
|
reference_idpath | string | * |
|
Idempotency-Keyheader | string | * | Повторяйте запрос с теми же Idempotency-Key и телом.
|
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
revision | integer | * |
{
"revision": 1
}HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"work_id": "11111111-1111-4111-8111-111111111111",
"changed_id": "11111111-1111-4111-8111-111111111111",
"revision": 1,
"studio_url": "example"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/works/{work_id}/episodesЭпизод · Просмотр (list)Эпизод · Просмотр (list). GET /api/v1/works/{work_id}/episodes. GET
Необходимое разрешение: projects:read
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
work_idpath | string | * |
|
cursorquery | string | — |
|
limitquery | integer | — |
|
HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"work_id": "11111111-1111-4111-8111-111111111111",
"revision": 1,
"items": [
{
"id": "11111111-1111-4111-8111-111111111111",
"number": 1,
"title": "example",
"raw_content": "example",
"description": "example"
}
],
"next_cursor": "example"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/works/{work_id}/episodesСоздать эпизодСоздать эпизод. POST /api/v1/works/{work_id}/episodes. revision + Idempotency-Key
Необходимое разрешение: projects:write
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
work_idpath | string | * |
|
Idempotency-Keyheader | string | * | Повторяйте запрос с теми же Idempotency-Key и телом.
|
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
title | string | * |
|
number | integer | — | |
raw_content | string | — |
|
description | string | — |
|
revision | integer | * |
{
"title": "example",
"revision": 1
}HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"work_id": "11111111-1111-4111-8111-111111111111",
"changed_id": "11111111-1111-4111-8111-111111111111",
"revision": 1,
"studio_url": "example"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/works/{work_id}/episodes/{episode_id}Эпизод · ПросмотрЭпизод · Просмотр. GET /api/v1/works/{work_id}/episodes/{episode_id}. GET
Необходимое разрешение: projects:read
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
work_idpath | string | * |
|
episode_idpath | string | * |
|
cursorquery | string | — |
|
limitquery | integer | — |
|
HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"id": "11111111-1111-4111-8111-111111111111",
"number": 1,
"title": "example",
"raw_content": "example",
"description": "example"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/works/{work_id}/episodes/{episode_id}Эпизод · ИзменитьЭпизод · Изменить. PATCH /api/v1/works/{work_id}/episodes/{episode_id}. revision + Idempotency-Key
Необходимое разрешение: projects:write
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
work_idpath | string | * |
|
episode_idpath | string | * |
|
Idempotency-Keyheader | string | * | Повторяйте запрос с теми же Idempotency-Key и телом.
|
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
title | string | * |
|
number | integer | — | |
raw_content | string | — |
|
description | string | — |
|
revision | integer | * |
{
"title": "example",
"revision": 1
}HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"work_id": "11111111-1111-4111-8111-111111111111",
"changed_id": "11111111-1111-4111-8111-111111111111",
"revision": 1,
"studio_url": "example"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/works/{work_id}/episodes/{episode_id}Эпизод · УдалитьЭпизод · Удалить. DELETE /api/v1/works/{work_id}/episodes/{episode_id}. revision + Idempotency-Key
Необходимое разрешение: projects:write
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
work_idpath | string | * |
|
episode_idpath | string | * |
|
Idempotency-Keyheader | string | * | Повторяйте запрос с теми же Idempotency-Key и телом.
|
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
revision | integer | * |
{
"revision": 1
}HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"work_id": "11111111-1111-4111-8111-111111111111",
"changed_id": "11111111-1111-4111-8111-111111111111",
"revision": 1,
"studio_url": "example"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/works/{work_id}/episodes/{episode_id}/scenesСцена · Просмотр (list)Сцена · Просмотр (list). GET /api/v1/works/{work_id}/episodes/{episode_id}/scenes. GET
Необходимое разрешение: projects:read
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
work_idpath | string | * |
|
episode_idpath | string | * |
|
cursorquery | string | — |
|
limitquery | integer | — |
|
HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"work_id": "11111111-1111-4111-8111-111111111111",
"revision": 1,
"items": [
{
"id": "11111111-1111-4111-8111-111111111111",
"episode_id": "11111111-1111-4111-8111-111111111111",
"number": 1,
"heading": "example",
"description": "example",
"video_prompt": "example"
}
],
"next_cursor": "example"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/works/{work_id}/episodes/{episode_id}/scenesСоздать сценуСоздать сцену. POST /api/v1/works/{work_id}/episodes/{episode_id}/scenes. revision + Idempotency-Key
Необходимое разрешение: projects:write
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
work_idpath | string | * |
|
episode_idpath | string | * |
|
Idempotency-Keyheader | string | * | Повторяйте запрос с теми же Idempotency-Key и телом.
|
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
heading | string | * |
|
number | integer | — | |
description | string | — |
|
video_prompt | oneOf | — | |
revision | integer | * |
{
"heading": "example",
"revision": 1
}HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"work_id": "11111111-1111-4111-8111-111111111111",
"changed_id": "11111111-1111-4111-8111-111111111111",
"revision": 1,
"studio_url": "example"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/works/{work_id}/episodes/{episode_id}/scenes/{scene_id}Сцена · ПросмотрСцена · Просмотр. GET /api/v1/works/{work_id}/episodes/{episode_id}/scenes/{scene_id}. GET
Необходимое разрешение: projects:read
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
work_idpath | string | * |
|
episode_idpath | string | * |
|
scene_idpath | string | * |
|
cursorquery | string | — |
|
limitquery | integer | — |
|
HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"id": "11111111-1111-4111-8111-111111111111",
"episode_id": "11111111-1111-4111-8111-111111111111",
"number": 1,
"heading": "example",
"description": "example",
"video_prompt": "example"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/works/{work_id}/episodes/{episode_id}/scenes/{scene_id}Сцена · ИзменитьСцена · Изменить. PATCH /api/v1/works/{work_id}/episodes/{episode_id}/scenes/{scene_id}. revision + Idempotency-Key
Необходимое разрешение: projects:write
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
work_idpath | string | * |
|
episode_idpath | string | * |
|
scene_idpath | string | * |
|
Idempotency-Keyheader | string | * | Повторяйте запрос с теми же Idempotency-Key и телом.
|
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
heading | string | * |
|
number | integer | — | |
description | string | — |
|
video_prompt | oneOf | — | |
revision | integer | * |
{
"heading": "example",
"revision": 1
}HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"work_id": "11111111-1111-4111-8111-111111111111",
"changed_id": "11111111-1111-4111-8111-111111111111",
"revision": 1,
"studio_url": "example"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/works/{work_id}/archive-importsИмпорт ZIPИмпорт ZIP. POST /api/v1/works/{work_id}/archive-imports. Use a verified ZIP asset_id and current revision. Preserves the archive and uses the same name-based material update rules as Studio. Check imported, failed and asset_ids on completion. Creation requires jobs:create, assets:read, assets:write and projects:write. Idempotency-Key; GET /api/v1/works/{work_id}/archive-imports/{import_id}
Необходимое разрешение: jobs:create
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
work_idpath | string | * |
|
Idempotency-Keyheader | string | * | Повторяйте запрос с теми же Idempotency-Key и телом.
|
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
revision | integer | * | |
asset_id | string | * |
|
{
"revision": 1,
"asset_id": "11111111-1111-4111-8111-111111111111"
}HTTP 202 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"id": "11111111-1111-4111-8111-111111111111",
"work_id": "11111111-1111-4111-8111-111111111111",
"state": "queued",
"progress": {
"phase": "extracting",
"current": 0,
"total": 0
},
"imported": 0,
"failed": 0,
"asset_ids": [
"11111111-1111-4111-8111-111111111111"
],
"error_code": "example"
}
}Заголовки ответа: X-Request-Id · ETag · Retry-After
/api/v1/works/{work_id}/archive-imports/{import_id}Статус импорта ZIPСтатус импорта ZIP. GET /api/v1/works/{work_id}/archive-imports/{import_id}. Use a verified ZIP asset_id and current revision. Preserves the archive and uses the same name-based material update rules as Studio. Check imported, failed and asset_ids on completion. Creation requires jobs:create, assets:read, assets:write and projects:write. jobs:read
Необходимое разрешение: jobs:read
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
work_idpath | string | * |
|
import_idpath | string | * |
|
HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"id": "11111111-1111-4111-8111-111111111111",
"work_id": "11111111-1111-4111-8111-111111111111",
"state": "queued",
"progress": {
"phase": "extracting",
"current": 0,
"total": 0
},
"imported": 0,
"failed": 0,
"asset_ids": [
"11111111-1111-4111-8111-111111111111"
],
"error_code": "example"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/works/{work_id}/uploadsПодготовить пакет файловПодготовить пакет файлов. POST /api/v1/works/{work_id}/uploads. Idempotency-Key + files (1–20) → PUT upload_url → POST /api/v1/uploads/{upload_id}/complete
Необходимое разрешение: assets:write
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
work_idpath | string | * |
|
Idempotency-Keyheader | string | * | Повторяйте запрос с теми же Idempotency-Key и телом.
|
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
files | array | * |
|
files[].filename | string | * |
|
files[].mime_type | string | * |
|
files[].size_bytes | integer | * |
|
files[].sha256 | string | * |
{
"files": [
{
"filename": "example",
"mime_type": "text/plain",
"size_bytes": 1,
"sha256": "example"
}
]
}HTTP 201 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"work_id": "11111111-1111-4111-8111-111111111111",
"items": [
{
"filename": "example",
"ticket": {
"id": "11111111-1111-4111-8111-111111111111",
"asset_id": "11111111-1111-4111-8111-111111111111",
"upload_url": "example",
"method": "PUT",
"content_type": "example",
"expires_at": "2026-09-20T00:00:00Z"
}
}
]
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/works/{work_id}/scenes/{scene_id}Сцена · УдалитьСцена · Удалить. DELETE /api/v1/works/{work_id}/scenes/{scene_id}. revision + Idempotency-Key
Необходимое разрешение: projects:write
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
work_idpath | string | * |
|
scene_idpath | string | * |
|
Idempotency-Keyheader | string | * | Повторяйте запрос с теми же Idempotency-Key и телом.
|
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
revision | integer | * |
{
"revision": 1
}HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"work_id": "11111111-1111-4111-8111-111111111111",
"changed_id": "11111111-1111-4111-8111-111111111111",
"revision": 1,
"studio_url": "example"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/works/{work_id}/episodes/{episode_id}/scene-orderИзменить порядок сценИзменить порядок сцен. PUT /api/v1/works/{work_id}/episodes/{episode_id}/scene-order. revision + Idempotency-Key
Необходимое разрешение: projects:write
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
work_idpath | string | * |
|
episode_idpath | string | * |
|
Idempotency-Keyheader | string | * | Повторяйте запрос с теми же Idempotency-Key и телом.
|
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
scene_ids | array | * |
|
revision | integer | * |
{
"scene_ids": [
"11111111-1111-4111-8111-111111111111"
],
"revision": 1
}HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"work_id": "11111111-1111-4111-8111-111111111111",
"changed_id": "11111111-1111-4111-8111-111111111111",
"revision": 1,
"studio_url": "example"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/works/{work_id}/scriptСохранить сценарийСохранить сценарий. PUT /api/v1/works/{work_id}/script. revision + Idempotency-Key
Необходимое разрешение: projects:write
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
work_idpath | string | * |
|
Idempotency-Keyheader | string | * | Повторяйте запрос с теми же Idempotency-Key и телом.
|
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
text | string | * |
|
revision | integer | * |
{
"text": "example",
"revision": 1
}HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"work_id": "11111111-1111-4111-8111-111111111111",
"changed_id": "11111111-1111-4111-8111-111111111111",
"revision": 1,
"studio_url": "example"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/works/{work_id}/scenes/{scene_id}/video-generationsСоздать видео сценыСоздать видео сцены. POST /api/v1/works/{work_id}/scenes/{scene_id}/video-generations. revision + Idempotency-Key → GET /api/v1/jobs/{job_id}
Необходимое разрешение: jobs:create
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
work_idpath | string | * |
|
scene_idpath | string | * |
|
Idempotency-Keyheader | string | * | Повторяйте запрос с теми же Idempotency-Key и телом.
|
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
revision | integer | * | |
anchor_asset_id | string | — |
|
reference_asset_ids | array | — |
|
model | string | — |
|
prompt | string | — |
|
duration_seconds | integer | * |
|
resolution | string | * |
|
aspect_ratio | string | * |
|
generate_audio | boolean | — |
{
"revision": 1,
"duration_seconds": 1,
"resolution": "example",
"aspect_ratio": "example"
}HTTP 202 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"id": "11111111-1111-4111-8111-111111111111",
"work_id": "11111111-1111-4111-8111-111111111111",
"run_id": "11111111-1111-4111-8111-111111111111",
"state": "queued",
"output_asset_ids": [
"11111111-1111-4111-8111-111111111111"
],
"error_code": "example"
}
}Заголовки ответа: X-Request-Id · ETag · Retry-After
/api/v1/works/{work_id}/scenes/{scene_id}/selected-takeВыбрать финальный дубльВыбрать финальный дубль. PUT /api/v1/works/{work_id}/scenes/{scene_id}/selected-take. revision + Idempotency-Key
Необходимое разрешение: projects:write
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
work_idpath | string | * |
|
scene_idpath | string | * |
|
Idempotency-Keyheader | string | * | Повторяйте запрос с теми же Idempotency-Key и телом.
|
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
revision | integer | * | |
take_id | oneOf | * |
{
"revision": 1,
"take_id": "11111111-1111-4111-8111-111111111111"
}HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"work_id": "11111111-1111-4111-8111-111111111111",
"changed_id": "11111111-1111-4111-8111-111111111111",
"revision": 1,
"studio_url": "example"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/works/{work_id}/exportsЭкспортировать итоговое видеоЭкспортировать итоговое видео. POST /api/v1/works/{work_id}/exports. revision + Idempotency-Key → GET /api/v1/jobs/{job_id}
Необходимое разрешение: jobs:create
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
work_idpath | string | * |
|
Idempotency-Keyheader | string | * | Повторяйте запрос с теми же Idempotency-Key и телом.
|
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
revision | integer | * | |
allow_partial | boolean | — |
|
selections | array | — |
|
selections[].scene_id | string | * |
|
selections[].asset_id | string | * |
|
{
"revision": 1
}HTTP 202 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"id": "11111111-1111-4111-8111-111111111111",
"work_id": "11111111-1111-4111-8111-111111111111",
"run_id": "11111111-1111-4111-8111-111111111111",
"state": "queued",
"output_asset_ids": [
"11111111-1111-4111-8111-111111111111"
],
"error_code": "example"
}
}Заголовки ответа: X-Request-Id · ETag · Retry-After
/api/v1/works/{project_id}/plansПосмотреть план и нужные кредитыПосмотрите, что будет создано и сколько кредитов потребуется, не запуская само производство.
Необходимое разрешение: runs:write
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
project_idpath | string | * |
|
Idempotency-Keyheader | string | * | Повторяйте запрос с теми же Idempotency-Key и телом.
|
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
template_id | string | * |
|
template_version | number | * |
|
project_revision | integer | * | |
episode_ids | array | * | ID эпизодов должны быть уникальными.
|
mode | string | * |
|
output_profile | string | * |
|
{
"template_id": "episode-production",
"template_version": 1,
"project_revision": 1,
"episode_ids": [
"11111111-1111-4111-8111-111111111111"
],
"mode": "reviewed",
"output_profile": "sandbox-episode-v1"
}HTTP 201 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"id": "11111111-1111-4111-8111-111111111111",
"work_id": "11111111-1111-4111-8111-111111111111",
"project_revision": 1,
"template_id": "example",
"template_version": 1,
"executable": false,
"expires_at": "2026-09-20T00:00:00Z",
"budget_ceiling": {
"currency": "example",
"micro_units": "example"
},
"steps": [
{
"stage_key": "example",
"target_ids": [
"11111111-1111-4111-8111-111111111111"
],
"depends_on": [
"example"
],
"requires_review": false,
"max_cost": {
"currency": "example",
"micro_units": "example"
}
}
],
"unsupported_reasons": [
"example"
]
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/works/{project_id}/runsЗапустить производствоЗапускает производство по готовому plan_id и возвращает ID запуска. Проверяйте состояние и результат через getRun.
Необходимое разрешение: runs:write
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
project_idpath | string | * |
|
Idempotency-Keyheader | string | * | Повторяйте запрос с теми же Idempotency-Key и телом.
|
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
plan_id | string | * |
|
client_reference | string | — |
|
{
"plan_id": "11111111-1111-4111-8111-111111111111"
}HTTP 202 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"id": "11111111-1111-4111-8111-111111111111",
"work_id": "11111111-1111-4111-8111-111111111111",
"plan_id": "11111111-1111-4111-8111-111111111111",
"version": 1,
"state": "queued",
"client_reference": "example",
"created_at": "2026-09-20T00:00:00Z",
"completed_at": "2026-09-20T00:00:00Z",
"budget_remaining": {
"currency": "example",
"micro_units": "example"
},
"committed_cost": {
"currency": "example",
"micro_units": "example"
},
"unresolved_cost": {
"currency": "example",
"micro_units": "example"
},
"output_asset_ids": [
"11111111-1111-4111-8111-111111111111"
]
}
}Заголовки ответа: X-Request-Id · ETag · Retry-After
/api/v1/works/{project_id}/workflow/commandsРедактирование производства StudioРедактирует сценарий, сцены, дизайны или выбранные дубли. Выберите operation и передайте input с текущей revision.
Необходимое разрешение: projects:write
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
project_idpath | string | * |
|
Idempotency-Keyheader | string | * | Повторяйте запрос с теми же Idempotency-Key и телом.
|
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
revision | integer | * | operation = design.asset.set |
operation | string | * | operation = design.asset.set
|
input | object | * | operation = design.asset.set |
input.id | string | * | operation = design.asset.set
|
input.asset_id | string | * | operation = design.asset.set
|
input.kind | string | * | operation = design.asset.set
|
input.current_asset_id | oneOf | * | operation = design.asset.set |
input.name | string | — | operation = design.asset.set
|
revision | integer | * | operation = asset.delete |
operation | string | * | operation = asset.delete
|
input | object | * | operation = asset.delete |
input.id | string | * | operation = asset.delete
|
revision | integer | * | operation = trash.restore |
operation | string | * | operation = trash.restore
|
input | object | * | operation = trash.restore |
input.id | string | * | operation = trash.restore
|
input.entity_type | string | * | operation = trash.restore
|
revision | integer | * | operation = scene.duplicate |
operation | string | * | operation = scene.duplicate
|
input | object | * | operation = scene.duplicate |
input.id | string | * | operation = scene.duplicate
|
revision | integer | * | operation = project.settings.update |
operation | string | * | operation = project.settings.update
|
input | object | * | operation = project.settings.update |
input.title | string | * | operation = project.settings.update
|
input.tags | array | * | operation = project.settings.update
|
input.cover | string | * | operation = project.settings.update
|
input.aspect | string | * | operation = project.settings.update
|
input.resolution | string | * | operation = project.settings.update
|
input.style | string | * | operation = project.settings.update
|
input.style_prompt | string | * | operation = project.settings.update
|
revision | integer | * | operation = project.rename |
operation | string | * | operation = project.rename
|
input | object | * | operation = project.rename |
input.title | string | * | operation = project.rename
|
revision | integer | * | operation = project.state.set |
operation | string | * | operation = project.state.set
|
input | object | * | operation = project.state.set |
input.state | string | * | operation = project.state.set
|
revision | integer | * | operation = script.update |
operation | string | * | operation = script.update
|
input | object | * | operation = script.update |
input.text | string | * | operation = script.update
|
revision | integer | * | operation = script.bible.update |
operation | string | * | operation = script.bible.update
|
input | object | * | operation = script.bible.update |
input.logline | string | * | operation = script.bible.update
|
input.synopsis | string | * | operation = script.bible.update
|
revision | integer | * | operation = episode.save |
operation | string | * | operation = episode.save
|
input | object | * | operation = episode.save |
input.id | string | — | operation = episode.save
|
input.title | string | * | operation = episode.save
|
input.number | integer | — | operation = episode.save |
input.raw_content | string | — | operation = episode.save
|
input.description | string | — | operation = episode.save
|
revision | integer | * | operation = episode.delete |
operation | string | * | operation = episode.delete
|
input | object | * | operation = episode.delete |
input.id | string | * | operation = episode.delete
|
revision | integer | * | operation = scene.save |
operation | string | * | operation = scene.save
|
input | object | * | operation = scene.save |
input.id | string | — | operation = scene.save
|
input.episode_id | string | * | operation = scene.save
|
input.heading | string | * | operation = scene.save
|
input.number | integer | — | operation = scene.save |
input.description | string | — | operation = scene.save
|
input.video_prompt | oneOf | — | operation = scene.save |
revision | integer | * | operation = scene.delete |
operation | string | * | operation = scene.delete
|
input | object | * | operation = scene.delete |
input.id | string | * | operation = scene.delete
|
revision | integer | * | operation = scene.reorder |
operation | string | * | operation = scene.reorder
|
input | object | * | operation = scene.reorder |
input.episode_id | string | * | operation = scene.reorder
|
input.scene_ids | array | * | operation = scene.reorder
|
revision | integer | * | operation = design.save |
operation | string | * | operation = design.save
|
input | object | * | operation = design.save |
input.id | string | — | operation = design.save
|
input.kind | string | * | operation = design.save
|
input.name | string | * | operation = design.save
|
input.description | string | — | operation = design.save
|
input.tags | array | — | operation = design.save
|
revision | integer | * | operation = design.delete |
operation | string | * | operation = design.delete
|
input | object | * | operation = design.delete |
input.id | string | * | operation = design.delete
|
revision | integer | * | operation = design.voice.set |
operation | string | * | operation = design.voice.set
|
input | object | * | operation = design.voice.set |
input.id | string | * | operation = design.voice.set
|
input.asset_id | oneOf | * | operation = design.voice.set |
revision | integer | * | operation = design.asset.detach |
operation | string | * | operation = design.asset.detach
|
input | object | * | operation = design.asset.detach |
input.id | string | * | operation = design.asset.detach
|
input.asset_id | string | * | operation = design.asset.detach
|
input.kind | string | * | operation = design.asset.detach
|
revision | integer | * | operation = design.asset.restore |
operation | string | * | operation = design.asset.restore
|
input | object | * | operation = design.asset.restore |
input.id | string | * | operation = design.asset.restore
|
input.current_asset_id | string | * | operation = design.asset.restore
|
input.restore_asset_id | string | * | operation = design.asset.restore
|
input.kind | string | * | operation = design.asset.restore
|
revision | integer | * | operation = design.variant.rename |
operation | string | * | operation = design.variant.rename
|
input | object | * | operation = design.variant.rename |
input.id | string | * | operation = design.variant.rename
|
input.asset_id | string | * | operation = design.variant.rename
|
input.name | string | * | operation = design.variant.rename
|
revision | integer | * | operation = scene.design.attach |
operation | string | * | operation = scene.design.attach
|
input | object | * | operation = scene.design.attach |
input.scene_id | string | * | operation = scene.design.attach
|
input.design_id | string | * | operation = scene.design.attach
|
revision | integer | * | operation = scene.design.detach |
operation | string | * | operation = scene.design.detach
|
input | object | * | operation = scene.design.detach |
input.scene_id | string | * | operation = scene.design.detach
|
input.design_id | string | * | operation = scene.design.detach
|
revision | integer | * | operation = cut.take.select |
operation | string | * | operation = cut.take.select
|
input | object | * | operation = cut.take.select |
input.scene_id | string | * | operation = cut.take.select
|
input.asset_id | oneOf | * | operation = cut.take.select |
revision | integer | * | operation = take.delete |
operation | string | * | operation = take.delete
|
input | object | * | operation = take.delete |
input.scene_id | string | * | operation = take.delete
|
input.asset_id | string | * | operation = take.delete
|
{
"revision": 1,
"operation": "design.asset.set",
"input": {
"id": "11111111-1111-4111-8111-111111111111",
"asset_id": "11111111-1111-4111-8111-111111111111",
"kind": "primary",
"current_asset_id": "11111111-1111-4111-8111-111111111111"
}
}HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"work_id": "11111111-1111-4111-8111-111111111111",
"changed_id": "11111111-1111-4111-8111-111111111111",
"revision": 1,
"studio_url": "example"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/works/{project_id}/cut/exportsЭкспорт монтажа StudioОбъединяет видео в порядке эпизодов и сцен. selections задаёт дубли, allow_partial разрешает пропуск отсутствующих сцен. Следите через getJob.
Необходимое разрешение: jobs:create
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
project_idpath | string | * |
|
Idempotency-Keyheader | string | * | Повторяйте запрос с теми же Idempotency-Key и телом.
|
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
revision | integer | * | |
allow_partial | boolean | — |
|
selections | array | — |
|
selections[].scene_id | string | * |
|
selections[].asset_id | string | * |
|
{
"revision": 1
}HTTP 202 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"id": "11111111-1111-4111-8111-111111111111",
"work_id": "11111111-1111-4111-8111-111111111111",
"run_id": "11111111-1111-4111-8111-111111111111",
"state": "queued",
"output_asset_ids": [
"11111111-1111-4111-8111-111111111111"
],
"error_code": "example"
}
}Заголовки ответа: X-Request-Id · ETag · Retry-After
/api/v1/works/{project_id}/storyboard/videosСоздать видео сцены раскадровкиСоздаёт видео для scene_id с выбранными моделью, длительностью и разрешением. anchor_asset_id задаёт начальное изображение. Следите через getJob.
Необходимое разрешение: jobs:create
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
project_idpath | string | * |
|
Idempotency-Keyheader | string | * | Повторяйте запрос с теми же Idempotency-Key и телом.
|
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
revision | integer | * | |
scene_id | string | * |
|
anchor_asset_id | string | — |
|
reference_asset_ids | array | — |
|
model | string | — |
|
prompt | string | — |
|
duration_seconds | integer | * |
|
resolution | string | * |
|
aspect_ratio | string | * |
|
generate_audio | boolean | — |
{
"revision": 1,
"scene_id": "11111111-1111-4111-8111-111111111111",
"duration_seconds": 1,
"resolution": "example",
"aspect_ratio": "example"
}HTTP 202 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"id": "11111111-1111-4111-8111-111111111111",
"work_id": "11111111-1111-4111-8111-111111111111",
"run_id": "11111111-1111-4111-8111-111111111111",
"state": "queued",
"output_asset_ids": [
"11111111-1111-4111-8111-111111111111"
],
"error_code": "example"
}
}Заголовки ответа: X-Request-Id · ETag · Retry-After
/api/v1/works/{project_id}/designs/imagesСоздать изображение персонажа, локации, реквизита или сеткиСоздаёт от одного до четырёх изображений для design_id по промпту и необязательным референсам. Выберите основной слот или вариант и следите через getJob.
Необходимое разрешение: jobs:create
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
project_idpath | string | * |
|
Idempotency-Keyheader | string | * | Повторяйте запрос с теми же Idempotency-Key и телом.
|
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
revision | integer | * | |
design_id | string | * |
|
variants | integer | — |
|
model | string | — |
|
prompt | string | — |
|
aspect_ratio | string | — | |
image_size | string | — |
|
quality | string | — |
|
background | string | — |
|
output_format | string | — |
|
reference_asset_ids | array | — |
|
slot | string | — |
|
variant_name | string | — |
|
current_asset_id | string | — |
|
{
"revision": 1,
"design_id": "11111111-1111-4111-8111-111111111111"
}HTTP 202 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"id": "11111111-1111-4111-8111-111111111111",
"work_id": "11111111-1111-4111-8111-111111111111",
"run_id": "11111111-1111-4111-8111-111111111111",
"state": "queued",
"output_asset_ids": [
"11111111-1111-4111-8111-111111111111"
],
"error_code": "example"
}
}Заголовки ответа: X-Request-Id · ETag · Retry-After
/api/v1/uploadsПолучить адрес для загрузки файлаРегистрирует метаданные и возвращает upload_url. Отправьте файл методом PUT, затем вызовите завершение загрузки. Поддерживаются TXT, Markdown, DOCX, PNG, JPEG, WebP, AVIF, WAV и ZIP. Ограничения размера общие со Studio: см. upload_limits в GET /capabilities. Сценарии: до 5 000 000 символов. Имя без разделителей пути. WAV — PCM или IEEE float.
Необходимое разрешение: assets:write
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
Idempotency-Keyheader | string | * | Повторяйте запрос с теми же Idempotency-Key и телом.
|
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
project_id | string | * |
|
filename | string | * |
|
mime_type | string | * |
|
size_bytes | integer | * |
|
sha256 | string | * |
{
"project_id": "11111111-1111-4111-8111-111111111111",
"filename": "example",
"mime_type": "text/plain",
"size_bytes": 1,
"sha256": "example"
}HTTP 201 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"id": "11111111-1111-4111-8111-111111111111",
"asset_id": "11111111-1111-4111-8111-111111111111",
"upload_url": "example",
"method": "PUT",
"content_type": "example",
"expires_at": "2026-09-20T00:00:00Z"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/uploads/{upload_id}/completeСообщить, что файл загружен полностьюПроверяет загруженный файл по заявленным метаданным и возвращает ресурс для использования в производстве.
Необходимое разрешение: assets:write
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
upload_idpath | string | * |
|
Idempotency-Keyheader | string | * | Повторяйте запрос с теми же Idempotency-Key и телом.
|
{}HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"id": "11111111-1111-4111-8111-111111111111",
"work_id": "11111111-1111-4111-8111-111111111111",
"state": "pending",
"mime_type": "example",
"size_bytes": 0,
"download_url": "example",
"expires_at": "2026-09-20T00:00:00Z"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/uploads/{upload_id}/contentЗагрузить содержимое файлаПередаёт байты файла как application/octet-stream по выданному адресу загрузки. После успеха вызовите completeUpload.
Необходимое разрешение: assets:write
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
upload_idpath | string | * |
|
HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"uploaded": true
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/assets/{asset_id}Посмотреть готовый файл и ссылку на скачиваниеВозвращает метаданные и подписанный download_url, если он доступен. Скачайте файл до истечения ссылки.
Необходимое разрешение: assets:read
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
asset_idpath | string | * |
|
HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"id": "11111111-1111-4111-8111-111111111111",
"work_id": "11111111-1111-4111-8111-111111111111",
"state": "pending",
"mime_type": "example",
"size_bytes": 0,
"download_url": "example",
"expires_at": "2026-09-20T00:00:00Z"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/downloads/{asset_id}Скачать готовый файлСкачивает файл по полному подписанному download_url из getAsset. Ссылка действует пять минут.
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
asset_idpath | string | * |
|
expiresquery | string | * | |
signaturequery | string | * |
HTTP 200 Байты файла
application/octet-stream · Байты файла
/api/v1/runsПосмотреть список запусковВозвращает запуски производства с фильтрами по проекту, состоянию, client_reference и периоду.
Необходимое разрешение: runs:read
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
cursorquery | string | — |
|
limitquery | integer | — |
|
project_idquery | string | — |
|
statequery | string | — |
|
client_referencequery | string | — |
|
fromquery | string | — |
|
toquery | string | — |
|
HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"items": [
{
"id": "11111111-1111-4111-8111-111111111111",
"work_id": "11111111-1111-4111-8111-111111111111",
"plan_id": "11111111-1111-4111-8111-111111111111",
"version": 1,
"state": "queued",
"client_reference": "example",
"created_at": "2026-09-20T00:00:00Z",
"completed_at": "2026-09-20T00:00:00Z",
"budget_remaining": {
"currency": "example",
"micro_units": "example"
},
"committed_cost": {
"currency": "example",
"micro_units": "example"
},
"unresolved_cost": {
"currency": "example",
"micro_units": "example"
},
"output_asset_ids": [
"11111111-1111-4111-8111-111111111111"
]
}
],
"next_cursor": "example"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/runs/{run_id}Посмотреть, как идёт производствоВозвращает состояние, версию и доступные результаты запуска. Используйте эту версию при отправке решения.
Необходимое разрешение: runs:read
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
run_idpath | string | * |
|
HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"id": "11111111-1111-4111-8111-111111111111",
"work_id": "11111111-1111-4111-8111-111111111111",
"plan_id": "11111111-1111-4111-8111-111111111111",
"version": 1,
"state": "queued",
"client_reference": "example",
"created_at": "2026-09-20T00:00:00Z",
"completed_at": "2026-09-20T00:00:00Z",
"budget_remaining": {
"currency": "example",
"micro_units": "example"
},
"committed_cost": {
"currency": "example",
"micro_units": "example"
},
"unresolved_cost": {
"currency": "example",
"micro_units": "example"
},
"output_asset_ids": [
"11111111-1111-4111-8111-111111111111"
]
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/runs/{run_id}/stepsПосмотреть ход работы по шагамВозвращает шаги запуска и их состояния: ожидание, выполнение или завершение.
Необходимое разрешение: runs:read
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
run_idpath | string | * |
|
cursorquery | string | — |
|
limitquery | integer | — |
|
HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"items": [
{
"id": "11111111-1111-4111-8111-111111111111",
"run_id": "11111111-1111-4111-8111-111111111111",
"stage_key": "example",
"target_id": "11111111-1111-4111-8111-111111111111",
"job_id": "11111111-1111-4111-8111-111111111111",
"state": "blocked",
"output_asset_ids": [
"11111111-1111-4111-8111-111111111111"
],
"error_code": "example",
"ordinal": 1
}
],
"next_cursor": "example"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/runs/{run_id}/eventsПосмотреть записи о ходе производстваВозвращает события запуска, включая смену состояния и запросы проверки, для отслеживания хода производства.
Необходимое разрешение: runs:read
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
run_idpath | string | * |
|
cursorquery | string | — |
|
limitquery | integer | — |
|
HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"items": [
{
"event_id": "11111111-1111-4111-8111-111111111111",
"run_id": "11111111-1111-4111-8111-111111111111",
"sequence": 1,
"type": "run.state_changed",
"state": "queued",
"step_id": "11111111-1111-4111-8111-111111111111",
"created_at": "2026-09-20T00:00:00Z"
}
],
"next_cursor": "example"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/runs/{run_id}/decisionsПодтвердить продолжение или остановитьПередаёт решение approve, stop, resume, cancel_remaining или retry_result. Укажите текущую версию в expected_version. retry_result возобновляет только проверку сохранённой видеозадачи. Передайте актуальный expected_version и step_id. Задача и резерв кредитов сохраняются без повторной генерации. Доступно в течение 24 часов после приёма. Другие неопределённые результаты или расходы требуют проверки оператором.
Необходимое разрешение: runs:write
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
run_idpath | string | * |
|
Idempotency-Keyheader | string | * | Повторяйте запрос с теми же Idempotency-Key и телом.
|
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
action | string | * | retry_result resumes result polling for an accepted Studio video on the original reservation; requires step_id and expected_version. It never resubmits generation. Unconfirmed usage without a saved video task requires operator review.
|
expected_version | integer | * | |
step_id | string | — |
|
selected_asset_ids | array | — |
|
{
"action": "approve",
"expected_version": 1
}HTTP 202 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"id": "11111111-1111-4111-8111-111111111111",
"work_id": "11111111-1111-4111-8111-111111111111",
"plan_id": "11111111-1111-4111-8111-111111111111",
"version": 1,
"state": "queued",
"client_reference": "example",
"created_at": "2026-09-20T00:00:00Z",
"completed_at": "2026-09-20T00:00:00Z",
"budget_remaining": {
"currency": "example",
"micro_units": "example"
},
"committed_cost": {
"currency": "example",
"micro_units": "example"
},
"unresolved_cost": {
"currency": "example",
"micro_units": "example"
},
"output_asset_ids": [
"11111111-1111-4111-8111-111111111111"
]
}
}Заголовки ответа: X-Request-Id · ETag · Retry-After
/api/v1/jobs/{job_id}Посмотреть состояние и результат задачиВозвращает состояние задания и ID выходных ресурсов. После завершения получите файлы через getAsset.
Необходимое разрешение: jobs:read
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
job_idpath | string | * |
|
HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"id": "11111111-1111-4111-8111-111111111111",
"work_id": "11111111-1111-4111-8111-111111111111",
"run_id": "11111111-1111-4111-8111-111111111111",
"state": "queued",
"output_asset_ids": [
"11111111-1111-4111-8111-111111111111"
],
"error_code": "example"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/jobs/{job_id}/buildПолучить прогресс и исходные материалыВозвращает этап, сообщения прогресса и исходные документы построения сценария, включая подготовленный для обработки текст.
Необходимое разрешение: jobs:read, assets:read
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
job_idpath | string | * |
|
HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"id": "11111111-1111-4111-8111-111111111111",
"state": "example",
"stage": "example",
"messages": [
{
"id": "11111111-1111-4111-8111-111111111111",
"role": "assistant",
"stage": "example",
"content": "example",
"status": "streaming",
"seq": 1,
"created_at": "example",
"updated_at": "example"
}
],
"sources": [
{
"id": "11111111-1111-4111-8111-111111111111",
"name": "example",
"filterMode": "prompt_index",
"sourceText": "example",
"llmText": "example",
"originalChars": 1,
"preparedChars": 1
}
]
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/jobsВыполнить сразу одну функциюМожно выполнить только одну функцию, не запуская всё производство. analyze_script читает сценарий и создаёт кадры, generate_image создаёт изображения персонажей, сцен, реквизита и кадров, generate_video создаёт видео для кадра с выбранным изображением, а assemble_video собирает эпизод, у которого все кадры уже с видео. Всегда отправляйте последнюю revision проекта. Запросы Live заранее резервируют кредиты.
Необходимое разрешение: jobs:create
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
Idempotency-Keyheader | string | * | Повторяйте запрос с теми же Idempotency-Key и телом.
|
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
project_id | string | * |
|
project_revision | integer | * | |
target_id | string | * |
|
type | string | * |
|
profile_id | string | * |
|
client_reference | string | — |
|
{
"project_id": "11111111-1111-4111-8111-111111111111",
"project_revision": 1,
"target_id": "11111111-1111-4111-8111-111111111111",
"type": "analyze_script",
"profile_id": "example"
}HTTP 202 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"id": "11111111-1111-4111-8111-111111111111",
"work_id": "11111111-1111-4111-8111-111111111111",
"run_id": "11111111-1111-4111-8111-111111111111",
"state": "queued",
"output_asset_ids": [
"11111111-1111-4111-8111-111111111111"
],
"error_code": "example"
}
}Заголовки ответа: X-Request-Id · ETag · Retry-After
/api/v1/requestsПосмотреть отправленные запросыВозвращает журнал API-запросов с HTTP-статусом и длительностью. Доступны фильтры по проекту и периоду.
Необходимое разрешение: requests:read
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
cursorquery | string | — |
|
limitquery | integer | — |
|
fromquery | string | — |
|
toquery | string | — |
|
project_idquery | string | — |
|
run_idquery | string | — |
|
job_idquery | string | — |
|
key_idquery | string | — |
|
status_codequery | integer | — |
|
methodquery | string | — |
|
route_templatequery | string | — |
|
HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"items": [
{
"request_id": "11111111-1111-4111-8111-111111111111",
"created_at": "2026-09-20T00:00:00Z",
"method": "GET",
"route_template": "example",
"status_code": 100,
"duration_ms": 0,
"actor_kind": "api_key",
"work_id": "11111111-1111-4111-8111-111111111111",
"run_id": "11111111-1111-4111-8111-111111111111",
"job_id": "11111111-1111-4111-8111-111111111111",
"replayed": false,
"error_code": "example"
}
],
"next_cursor": "example"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/requests/{request_id}Посмотреть один отправленный запросНаходит вызов по request_id и возвращает HTTP-статус, длительность и связанный запуск или задание.
Необходимое разрешение: requests:read
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
request_idpath | string | * |
|
HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"request_id": "11111111-1111-4111-8111-111111111111",
"created_at": "2026-09-20T00:00:00Z",
"method": "GET",
"route_template": "example",
"status_code": 100,
"duration_ms": 0,
"actor_kind": "api_key",
"work_id": "11111111-1111-4111-8111-111111111111",
"run_id": "11111111-1111-4111-8111-111111111111",
"job_id": "11111111-1111-4111-8111-111111111111",
"replayed": false,
"error_code": "example"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/usageПосмотреть расход кредитовВозвращает итоги использования за период, включая зарезервированные и рассчитанные суммы.
Необходимое разрешение: usage:read
Нет параметров
HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"period_start": "2026-09-20T00:00:00Z",
"period_end": "2026-09-20T00:00:00Z",
"as_of": "2026-09-20T00:00:00Z",
"http_requests": 0,
"runs": 0,
"jobs": 0,
"reserved": {
"currency": "example",
"micro_units": "example"
},
"committed": {
"currency": "example",
"micro_units": "example"
},
"unresolved": {
"currency": "example",
"micro_units": "example"
},
"remaining": {
"currency": "example",
"micro_units": "example"
},
"amount_basis": "partner_limit",
"billing_mode": "pilot"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/webhook-endpointsПосмотреть адреса WebhookВозвращает зарегистрированные URL Webhook, подписки на события и состояние активности.
Необходимое разрешение: webhooks:read
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
cursorquery | string | — |
|
limitquery | integer | — |
|
HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"items": [
{
"id": "11111111-1111-4111-8111-111111111111",
"url": "example",
"work_ids": [
"11111111-1111-4111-8111-111111111111"
],
"events": [
"run.state_changed"
],
"enabled": false,
"verified": false,
"secret_version": 1,
"created_at": "2026-09-20T00:00:00Z"
}
],
"next_cursor": "example"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/webhook-endpointsДобавить адрес WebhookРегистрирует URL Webhook для получения выбранных событий производства по указанным проектам.
Необходимое разрешение: webhooks:write
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
Idempotency-Keyheader | string | * | Повторяйте запрос с теми же Idempotency-Key и телом.
|
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
url | string | * |
|
project_ids | array | * |
|
events | array | * |
|
{
"url": "example",
"project_ids": [
"11111111-1111-4111-8111-111111111111"
],
"events": [
"run.state_changed"
]
}HTTP 201 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"endpoint": {
"id": "11111111-1111-4111-8111-111111111111",
"url": "example",
"work_ids": [
"11111111-1111-4111-8111-111111111111"
],
"events": [
"run.state_changed"
],
"enabled": false,
"verified": false,
"secret_version": 1,
"created_at": "2026-09-20T00:00:00Z"
}
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/webhook-endpoints/{endpoint_id}Изменить адрес WebhookВключает или отключает Webhook либо меняет список получаемых событий.
Необходимое разрешение: webhooks:write
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
endpoint_idpath | string | * |
|
If-Matchheader | string | * | Укажите последний ETag вместе с кавычками. |
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
enabled | boolean | — | |
events | array | — |
|
{}HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"id": "11111111-1111-4111-8111-111111111111",
"url": "example",
"work_ids": [
"11111111-1111-4111-8111-111111111111"
],
"events": [
"run.state_changed"
],
"enabled": false,
"verified": false,
"secret_version": 1,
"created_at": "2026-09-20T00:00:00Z"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/webhook-deliveriesПосмотреть отправленные WebhookВозвращает попытки доставки Webhook и их состояния для проверки отправки уведомлений.
Необходимое разрешение: webhooks:read
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
cursorquery | string | — |
|
limitquery | integer | — |
|
HTTP 200 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"items": [
{
"id": "11111111-1111-4111-8111-111111111111",
"endpoint_id": "11111111-1111-4111-8111-111111111111",
"event_id": "11111111-1111-4111-8111-111111111111",
"state": "pending",
"attempt": 0,
"http_status": 1,
"next_attempt_at": "2026-09-20T00:00:00Z",
"created_at": "2026-09-20T00:00:00Z"
}
],
"next_cursor": "example"
}
}Заголовки ответа: X-Request-Id · ETag
/api/v1/webhook-deliveries/{delivery_id}/redeliverОтправить Webhook ещё разЗапрашивает повторную доставку существующего уведомления Webhook по delivery_id.
Необходимое разрешение: webhooks:write
| Имя | Type | Обязательно | Описание |
|---|---|---|---|
delivery_idpath | string | * |
|
Idempotency-Keyheader | string | * | Повторяйте запрос с теми же Idempotency-Key и телом.
|
{}HTTP 202 Успешно
{
"request_id": "11111111-1111-4111-8111-111111111111",
"data": {
"id": "11111111-1111-4111-8111-111111111111",
"endpoint_id": "11111111-1111-4111-8111-111111111111",
"event_id": "11111111-1111-4111-8111-111111111111",
"state": "pending",
"attempt": 0,
"http_status": 1,
"next_attempt_at": "2026-09-20T00:00:00Z",
"created_at": "2026-09-20T00:00:00Z"
}
}Заголовки ответа: X-Request-Id · ETag · Retry-After
/api/v1/openapi.jsonСкачать спецификацию APIСкачивает спецификацию OpenAPI с путями API, полями запросов и схемами ответов.
Нет параметров
HTTP 200 Документ OpenAPI
{}error.code 71Ответ 2xx означает, что запрос принят. 201 — что-то создано, 202 — запрос принят и ещё выполняется, результата пока нет: проверяйте состояние задачи, чтобы узнать, когда она завершится. Успешные ответы содержат request_id и data. Исключения — скачивание файлов и документ спецификации. При ошибке все эндпоинты возвращают error одного и того же вида. В коде ветвитесь по error.code, а message написан для человека и объясняет причину и что делать. Можно ли отправить запрос снова, показывает retryable. Повторяйте автоматически только при значении true и ждите столько, сколько указано в retry_after_seconds или в заголовке Retry-After. При повторе POST отправляйте тот же Idempotency-Key и то же тело, чтобы ничего не списалось и не создалось дважды. Незнакомый error.code обрабатывайте по HTTP-статусу и retryable. При обращении в поддержку указывайте request_id. Сбои после того, как задача принята, видны в её состоянии и результате, а не в этом ответе.
{
"request_id": "11111111-1111-4111-8111-111111111111",
"error": {
"code": "INVALID_REQUEST",
"message": "Invalid input. Check the required fields, types and values.",
"retryable": false
}
}| error.code | HTTP | Описание |
|---|---|---|
INVALID_REFERENCE | 422 | A selected reference is unavailable or does not belong to this project. Select a ready image from this project. |
MODEL_UNAVAILABLE | 422 | The selected model is unavailable. Refresh the model list and select another model. |
MODEL_POLICY_REQUIRED | 503 | No default model policy is configured. Specify a model or ask the administrator to configure the task policy. |
BUILD_REPLAY_CONFLICT | 409 | The build inputs changed. Review the saved build before continuing. |
INVALID_REQUEST | 400,422 | Invalid input. Check the required fields, types and values. |
INVALID_API_KEY | 401 | Invalid credentials or download signature. Check the API key or obtain a new download URL. |
INSUFFICIENT_SCOPE | 403 | Permission denied. Check the key scopes and project access. |
PARTNER_BLOCKED | 403 | Account blocked. Contact support. |
PARTNER_PAUSED | 403 | Account paused. Ask the administrator to resume access. |
RESOURCE_NOT_FOUND | 404 | Resource unavailable. Check its ID and access permissions. |
METHOD_NOT_ALLOWED | 405 | Unsupported HTTP method. Use the documented method. |
REQUEST_TIMEOUT | 408 | Request body timed out. Check the connection and upload size. |
IDEMPOTENCY_KEY_REQUIRED | 400 | Provide a valid Idempotency-Key header. |
IDEMPOTENCY_CONFLICT | 409 | This Idempotency-Key belongs to a different request. Reuse it only with the original request. |
IDEMPOTENCY_KEY_EXPIRED | 409 | Idempotency record expired. Check the original result before starting a new operation. |
PRECONDITION_FAILED | 412 | Provide the latest quoted ETag in If-Match. |
REVISION_CONFLICT | 409 | Resource changed. Read the latest revision before updating. |
RESOURCE_CONFLICT | 409 | Resource conflicts with existing data. Review the current resource. |
INVALID_TRANSITION | 409 | Action is unavailable in the current state. Read the latest state. |
RUN_IN_PROGRESS | 409 | A run is in progress. Check its status before starting another. |
JOB_RUNNING | 409 | A job is running. Wait for completion before editing. |
PLAN_EXPIRED | 409 | Plan expired. Create a new plan and review its quote. |
INSUFFICIENT_CREDITS | 402 | Insufficient credits. Check the balance and required credits. |
BUDGET_EXCEEDED | 409,429 | Budget limit exceeded. Review usage and the configured budget. |
RATE_LIMITED | 429 | Request rate exceeded. Follow retryable and Retry-After before retrying. |
CAPACITY_EXCEEDED | 429 | Capacity limit exceeded. Reduce the workload or wait for active work to finish. |
PAYLOAD_TOO_LARGE | 413 | Request body too large. Reduce it to the documented limit. |
UNSUPPORTED_MEDIA_TYPE | 415 | Unsupported content type or encoding. Use the documented Content-Type without Content-Encoding. |
UPLOAD_TOO_LARGE | 422 | Uploaded content exceeds its processing limit. Reduce the file size. |
UPLOAD_NOT_VERIFIED | 422 | Upload is incomplete, expired or invalid. Check the upload and verification steps. |
ASSET_KIND_MISMATCH | 422 | Asset type does not match the operation. Select a compatible asset. |
SELECTED_IMAGE_REQUIRED | 422 | Select a valid image before generating video. |
SELECTED_VIDEO_REQUIRED | 422 | Select valid videos for the requested shots before assembly. |
REFERENCE_LIMIT_EXCEEDED | 422 | Too many reference assets. Reduce them to the model limit. |
REFERENCE_IMAGE_REQUIRED | 422 | This model requires a reference image. Add an image or select a text-to-image model. |
INVALID_GENERATION_OPTIONS | 422 | Generation options are invalid. Check the model capabilities. |
PROMPT_REQUIRED | 422 | Provide a generation prompt. |
SCRIPT_TEXT_REQUIRED | 422 | Provide script text before starting this operation. |
SCENES_REQUIRED | 422 | Create scenes before starting this operation. |
VARIANT_NAME_REQUIRED | 422 | Provide a variant name. |
EPISODE_ALREADY_STRUCTURED | 409 | Episode already has shots. Review its existing structure. |
ONE_SCRIPT_PER_PROJECT | 409 | This project supports one script. Use the existing script. |
MULTIPLE_SCRIPTS_REQUIRE_REVIEW | 409 | Multiple scripts need review before continuing. |
NATIVE_CONTENT_ALREADY_EXISTS | 409 | Studio content already exists. Review it before continuing. |
LIVE_PROJECT_REQUIRED | 409 | This operation requires a live project. |
STUDIO_MIGRATION_REQUIRED | 409 | Project needs Studio migration. Contact support. |
UNSUPPORTED_CAPABILITY | 422 | Unsupported operation or profile. Check GET /capabilities. |
CAPABILITY_UNAVAILABLE | 503 | Capability currently unavailable. Check GET /capabilities. |
API_NOT_ACCEPTING | 503 | New requests are paused. Check service availability. |
DEPENDENCY_UNAVAILABLE | 503 | A required service is unavailable. Follow the retry guidance or contact support. |
PRICING_UNAVAILABLE | 503 | Pricing unavailable. A valid quote is required to proceed. |
MEDIA_TOOLS_UNAVAILABLE | 503 | Media processing unavailable. Contact support. |
STORAGE_READ_FAILED | 503 | Could not read the stored asset. Contact support with request_id. |
STORAGE_WRITE_FAILED | 503 | Could not save the asset. Check the result before retrying. |
INTERNAL_ERROR | 500 | Internal error. Follow retry guidance; include request_id when contacting support. |
RESPONSE_CONTRACT_VIOLATION | 500 | Server response validation failed. Contact support with request_id. |
INVALID_EXECUTION_CONTEXT | 500 | Execution context is invalid. Contact support. |
RETRY_TRANSACTION | 503 | Transaction could not complete. Follow the response retry guidance. |
CLAIM_LOST | 409 | Execution ownership changed. Check the current job state. |
PROVIDER_TIMEOUT | 504 | Generation service timed out. Check the existing job before submitting again. |
PROVIDER_TERMINAL_FAILURE | 422 | Generation failed. Review the job result and inputs. |
PROVIDER_RESULT_UNAVAILABLE | 502 | Generation result unavailable. Check the existing job and recovery options. |
INVALID_RESULT | 422,503 | Result failed validation. Review the job or contact support. |
RESULT_TOO_LARGE | 422 | Result exceeds the processing limit. Reduce the requested output. |
EXPORT_TOO_LARGE | 422 | Export exceeds the size limit. Reduce the export selection. |
RECOVERY_BACKOFF | 409 | Existing result recovery is delayed. Check again later; do not resubmit generation. |
VIDEO_RECOVERY_REVIEW_REQUIRED | 503 | The original video task needs scheduled recovery or operator review. Do not resubmit generation. |
RESULT_RECOVERY_REQUIRED | 409,503 | Existing result needs recovery. Check the run recovery options before resubmitting. |
RESULT_NOT_RECOVERABLE | 409 | Result cannot be recovered through this action. Review the run or contact support. |
RECOVERY_CAPACITY_EXCEEDED | 409 | Recovery limit reached. Contact support before further recovery attempts. |
USAGE_RECOVERY_REQUIRED | 503 | Usage needs reconciliation. Contact support; do not resubmit generation blindly. |