身份验证
使用 FECINE API Key 作为 Bearer 令牌。阅读文档无需账户。
从剧本到成片,通过 FECINE API 连接您的制作流程。
使用 FECINE API Key 作为 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 状态。If-Match 须使用最新 ETag。
所需权限: 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 = scripttext 和 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}查看单个素材返回项目中 resource_id 指定素材的类型、内容及 revision。
所需权限: 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。通过 If-Match 提交最新 ETag,避免编辑冲突。
所需权限: 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 = scripttext 和 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查询工作室制作数据一次查询项目的剧本、剧集、设计、场景、素材、镜次、剪辑选择及最新 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分析工作室剧本分析项目剧本并提取制作结构。传入 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编辑工作室制作编辑剧本、场景、设计或镜次选择等制作数据。选择 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导出工作室剪辑按剧集和场景顺序合并视频。用 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 共用设置,请查看 GET /capabilities 的 upload_limits。剧本最多 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}下载完成的文件使用 getAsset 返回的完整签名 download_url 下载文件。链接五分钟后过期。
| 名称 | 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 查询一次 API 调用的 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 通知地址列表列出已注册的 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 通知地址注册 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请求重新投递 delivery_id 指定的已有 Webhook 通知。
所需权限: 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 规范下载包含 API 路径、请求字段和响应结构的 OpenAPI 规范。
无参数
HTTP 200 OpenAPI 规范
{}error.code 71返回 2xx 表示请求已被接受。201 表示已创建,202 表示已受理、还在处理,此时还没有结果,请轮询任务状态确认是否完成。 成功响应都包含 request_id 和 data,只有文件下载和 API 规范响应例外。 失败时,所有接口都返回结构相同的 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. |