读取一次工作流运行
跟踪运行直到终端状态,并收集其素材。
GET {base_url}/workflow-runs/{run_id}
GET {base_url}/workflow-runs/{run_id}?wait=45需要 runs:read。
wait 最多将响应保持打开这么多秒,并在状态变化后立即返回——比轮询更便宜,也能更快得知完成情况。上限是 45 秒;不设置时调用会立即返回。
响应
{
"run": {
"id": "0192f3d0-6c31-7a52-b4e8-3f9d1a7c5e20",
"status": "succeeded",
"created_at": "2026-09-22T04:10:00Z",
"completed_at": "2026-09-22T04:17:12Z",
"credits_used": 1792,
"chat_id": "0192f3c6-2e75-7b14-9a63-7c4e2d8f1b09",
"assets": [
{
"id": "0192f3e1-8b52-7c03-a41d-6e2f9b7c1d44",
"kind": "image",
"mime_type": "image/png",
"width": 1920,
"height": 1080,
"size_bytes": 2841233,
"url": "https://storage.googleapis.com/…",
"url_expires_at": "2026-09-22T05:17:12Z"
}
],
"error": null,
"poll_after_seconds": 60
}
}状态
status | 含义 | 再次轮询? |
|---|---|---|
queued | 已接受,未开始 | 是 |
running | 工作流正在运行 | 是 |
succeeded | 已完成; assets 包含输出 | 否 |
failed | 已停止; error 说明原因 | 否 |
needs_input | 工作流提出了一个问题,并正在等待回答 | 见下方 |
expired | 在 expires_at 之前未完成 | 否 |
将你不认识的任何状态视为非终止状态并继续轮询——无需版本升级也可能出现新状态。
credits_used 表示该运行截至目前已花费的金额,已扣除退款——从首次计费开始就会出现,而不只是完成后才出现。仅限于特定工作流的密钥会将任何其他工作流的运行读作未找到。
needs_input
有些工作流会在运行过程中提问。该运行会等待 Morphic Studio 中的人来回答;打开 chat_id 即可进行回答。回答后运行会自动恢复;如果在 expires_at 之前无人回答,则会过期。
资产
assets 仅包含工作流声明为其输出的资产 ——而不是其步骤生成的每个中间文件。这里显示的内容是其作者在 Studio 中做出的决定。
| 资产字段 | 含义 |
|---|---|
id | 该资产在 Morphic 中的稳定 ID;可安全存储 |
kind | image, video, audio 或者 document |
width, height | 像素,适用于 image 以及 video |
duration_seconds | 对于 video 以及 audio |
url | 一个带签名、短期有效的下载链接 |
url_expires_at | 该链接何时失效 |
url 会过期。收到字节后,请将其下载到你自己的存储中;如果之后需要新的链接,请重新读取该运行。切勿把 url 当作永久链接保存。
assets 数组为空的 succeeded 运行表示该工作流未声明最终输出。这是工作流编排上的缺口,不是 API 失败——请在 Studio 中让其作者标记哪一步的输出是交付物。