> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dify.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# 流式获取工作流事件

> 在工作流运行暂停或原始 SSE 连接断开后恢复 Server-Sent Events 流。对于已结束的运行，流仅发送单个 `workflow_finished` 事件后关闭。



## OpenAPI

````yaml /zh/api-reference/openapi_workflow.json get /workflow/{task_id}/events
openapi: 3.0.1
info:
  title: 工作流应用 API
  description: 工作流应用提供无会话支持，适用于翻译、文章写作、摘要 AI 等场景。
  version: 1.0.0
servers:
  - url: https://{api_base_url}
    description: 工作流应用 API 的基础 URL。自部署时，替换为你的 API 基础 URL。
    variables:
      api_base_url:
        default: api.dify.ai/v1
        description: API 基础 URL 的主机与路径，不含 `https://` 前缀。
security:
  - ApiKeyAuth: []
tags:
  - name: 工作流
    description: 用于执行和管理工作流的操作。
  - name: 文件操作
    description: 文件上传和下载操作。
  - name: 终端用户
    description: 终端用户信息相关操作。
  - name: 语音与文字转换
    description: 语音转文字和文字转语音转换。
  - name: 应用配置
    description: 应用设置、参数和元数据。
  - name: 人工介入
    description: 暂停等待人工输入的工作流恢复操作。
paths:
  /workflow/{task_id}/events:
    get:
      tags:
        - 工作流
      summary: 流式获取工作流事件
      description: >-
        在工作流运行暂停或原始 SSE 连接断开后恢复 Server-Sent Events 流。对于已结束的运行，流仅发送单个
        `workflow_finished` 事件后关闭。
      operationId: streamWorkflowEvents
      parameters:
        - name: task_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: 原始工作流运行请求返回的工作流运行 ID。
        - name: user
          in: query
          required: true
          schema:
            type: string
          description: 最初触发该运行的终端用户标识。必须与工作流运行的创建者一致。
        - name: include_state_snapshot
          in: query
          required: false
          schema:
            type: boolean
            default: false
          description: 为 `true` 时，从持久化状态快照重放，在流式发送新事件前附带已执行节点的状态摘要。
        - name: continue_on_pause
          in: query
          required: false
          schema:
            type: boolean
            default: false
          description: >-
            设为 `true` 时，流会在多次 `workflow_paused`
            事件之间保持打开（适用于工作流包含多个连续人工介入节点的场景）。默认在首次暂停时关闭流。
      responses:
        '200':
          description: 'Server-Sent Events 流。每个事件以 `data: {JSON}\n\n` 形式送达。事件载荷结构与原始流式响应一致。'
          content:
            text/event-stream:
              schema:
                type: string
                description: >-
                  已恢复工作流运行的事件 SSE 流，格式与 [执行工作流](/api-reference/工作流/执行工作流)
                  相同。当恢复部分运行设置 `reasoning_format: separated` 的 LLM 节点时，本流还会携带
                  `reasoning_chunk` 事件。
              examples:
                resumedRun:
                  summary: 响应示例 - 恢复运行
                  value: >-
                    data: {"event": "human_input_form_filled", "task_id":
                    "c3800678-a077-43df-a102-53f23ed20b88", "workflow_run_id":
                    "fb47b2e6-5e43-4f90-be01-d5c5a088d156", "data": {"node_id":
                    "approval_node", "node_title": "Approval",
                    "rendered_content": "Please review the draft.", "action_id":
                    "approve", "action_text": "Approve"}} data: {"event":
                    "node_started", "task_id":
                    "c3800678-a077-43df-a102-53f23ed20b88", "workflow_run_id":
                    "fb47b2e6-5e43-4f90-be01-d5c5a088d156", "data": {"id":
                    "node_exec_2", "node_id": "node_1", "node_type": "llm",
                    "title": "LLM Node", "index": 2, "created_at": 1705407705}}
                    data: {"event": "reasoning_chunk", "task_id":
                    "c3800678-a077-43df-a102-53f23ed20b88", "workflow_run_id":
                    "fb47b2e6-5e43-4f90-be01-d5c5a088d156", "data":
                    {"reasoning": "Approved, now translating.", "node_id":
                    "node_1", "is_final": false}} data: {"event":
                    "reasoning_chunk", "task_id":
                    "c3800678-a077-43df-a102-53f23ed20b88", "workflow_run_id":
                    "fb47b2e6-5e43-4f90-be01-d5c5a088d156", "data":
                    {"reasoning": "", "node_id": "node_1", "is_final": true}}
                    data: {"event": "text_chunk", "task_id":
                    "c3800678-a077-43df-a102-53f23ed20b88", "workflow_run_id":
                    "fb47b2e6-5e43-4f90-be01-d5c5a088d156", "data": {"text":
                    "Bonjour", "from_variable_selector": ["node_1", "text"]}}
                    data: {"event": "workflow_finished", "task_id":
                    "c3800678-a077-43df-a102-53f23ed20b88", "workflow_run_id":
                    "fb47b2e6-5e43-4f90-be01-d5c5a088d156", "data": {"id":
                    "fb47b2e6-5e43-4f90-be01-d5c5a088d156", "workflow_id":
                    "7c3e33d4-2a8b-4e5f-9b1a-d3c6e8f12345", "status":
                    "succeeded", "outputs": {"result": "Bonjour"},
                    "elapsed_time": 2.1, "total_tokens": 42, "total_steps": 2,
                    "created_at": 1705407629, "finished_at": 1705407706}}
        '400':
          description: >-
            `not_workflow_app` : Please check if your app mode matches the right
            API route.
          content:
            application/json:
              examples:
                not_workflow_app:
                  summary: not_workflow_app
                  value:
                    status: 400
                    code: not_workflow_app
                    message: Please check if your app mode matches the right API route.
        '404':
          description: '`not_found` : Workflow run not found.'
          content:
            application/json:
              examples:
                not_found:
                  summary: not_found
                  value:
                    status: 404
                    code: not_found
                    message: Workflow run not found
components:
  securitySchemes:
    ApiKeyAuth:
      type: http
      scheme: bearer
      bearerFormat: API_KEY
      description: >-
        API Key 认证。对于所有 API 请求，请在 `Authorization` HTTP 头中包含您的 API Key，并加上
        `Bearer ` 前缀。示例：`Authorization: Bearer {API_KEY}`。**强烈建议将 API Key
        存储在服务端，不要在客户端共享或存储，以避免 API Key 泄漏导致严重后果。**

````