Skip to main content
如果你的系统能接 HTTPS 回调,Kling 任务流优先推荐 callback_url + task_id 持久化,轮询只作为兜底。

开启 callback 的最小步骤

1

在创建接口里传 callback_url

绝大多数异步 Kling 创建页都支持 callback_url。第一次接入时,优先传一个公网可访问的 HTTPS 地址。
2

同时保存 task_id 和业务键

不要只依赖回调体做关联。创建成功时就把 task_id、你自己的订单号或 external_task_id 一起存下来。
3

收到回调先快速返回 2xx

先确认平台知道你已收到消息,再把真正的入库、转存、通知下游这些慢操作丢到异步处理。
4

按任务类型读取 task_result

图像任务通常看 images,视频任务看 videos,音频任务看 audios。不要假设所有任务都返回同一组字段。

回调体里最关键的字段

  • task_id:和创建时保存的任务主键对应。
  • task_status:决定当前任务是否已经进入终态。
  • task_status_msg:失败时优先读它。
  • task_result:真正的结果对象,结构会随任务类型变化。
  • task_info.external_task_id:适合拿来和你的业务订单做关联。
不要把 task_result 里的某一个字段硬编码成所有任务都必返。不同能力可能还会额外带 parent_videofinal_unit_deduction 等任务特有字段。

什么时候仍然要保留查询接口

  • 你在本地开发,暂时没有公网可回调地址。
  • 某次回调丢失后,你需要主动补查一次最终状态。
  • 你希望在后台任务列表里支持人工刷新与重新获取结果。

相关页面

通用查询任务

大多数两段路径任务都可以用这一页兜底查询。

Omni 专用查询

Omni Video 更适合单独拆一条查询逻辑。

Kling 官方 Callback 协议

需要对照上游字段时看这一页。

回调体示例

{
  "task_id": "task_xxx",
  "task_status": "succeed",
  "task_status_msg": "",
  "created_at": 1722769557708,
  "updated_at": 1722769557708,
  "final_unit_deduction": "10",
  "task_info": {
    "external_task_id": "order_20260312_001",
    "parent_video": {
      "id": "video_xxx",
      "url": "https://example.com/parent-video.mp4",
      "duration": "5"
    }
  },
  "task_result": {
    "images": [
      {
        "index": 0,
        "url": "https://example.com/result-image.png"
      }
    ],
    "videos": [
      {
        "id": "video_result_xxx",
        "url": "https://example.com/result-video.mp4",
        "duration": "5"
      }
    ],
    "audios": [
      {
        "id": "audio_result_xxx",
        "url": "https://example.com/result-audio.mp3",
        "duration": "5.0"
      }
    ]
  }
}