> ## 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.

# Stream Workflow Events

> Resume the Server-Sent Events stream for a workflow run after a pause or a dropped SSE connection. For runs that have already finished, the stream emits a single `workflow_finished` event and closes.



## OpenAPI

````yaml /en/api-reference/openapi_workflow.json get /workflow/{task_id}/events
openapi: 3.0.1
info:
  title: Workflow App API
  description: >-
    Workflow applications offer non-session support and are ideal for
    translation, article writing, summarization AI, and more.
  version: 1.0.0
servers:
  - url: '{api_base_url}'
    description: >-
      The base URL for the Workflow App API. Replace {api_base_url} with the
      actual API base URL.
    variables:
      api_base_url:
        default: https://api.dify.ai/v1
        description: Actual base URL of the API
security:
  - ApiKeyAuth: []
tags:
  - name: Workflows
    description: Operations for executing and managing workflows.
  - name: Files
    description: File upload and download operations.
  - name: End Users
    description: Operations related to end user information.
  - name: TTS
    description: Audio-to-text and text-to-audio conversion.
  - name: Applications
    description: Application settings, parameters, and metadata.
  - name: Human Input
    description: Endpoints for resuming paused workflows that require human input.
paths:
  /workflow/{task_id}/events:
    get:
      tags:
        - Workflows
      summary: Stream Workflow Events
      description: >-
        Resume the Server-Sent Events stream for a workflow run after a pause or
        a dropped SSE connection. For runs that have already finished, the
        stream emits a single `workflow_finished` event and closes.
      operationId: streamWorkflowEvents
      parameters:
        - name: task_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: Workflow run ID returned by the original workflow run request.
        - name: user
          in: query
          required: true
          schema:
            type: string
          description: >-
            End-user identifier that originally triggered the run. Must match
            the creator of the workflow run.
        - name: include_state_snapshot
          in: query
          required: false
          schema:
            type: boolean
            default: false
          description: >-
            When `true`, replay from the persisted state snapshot to include a
            status summary of already-executed nodes before streaming new
            events.
        - name: continue_on_pause
          in: query
          required: false
          schema:
            type: boolean
            default: false
          description: >-
            Set to `true` to keep the stream open across multiple
            `workflow_paused` events (useful when the workflow has more than one
            Human Input node in sequence). Default closes the stream after the
            first pause.
      responses:
        '200':
          description: >-
            Server-Sent Events stream. Each event is delivered as `data:
            {JSON}\n\n`. Event payloads follow the same schemas as the original
            streaming response.
          content:
            text/event-stream:
              schema:
                type: string
                description: SSE stream of workflow events.
        '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 authentication. For all API requests, include your API Key in
        the `Authorization` HTTP Header, prefixed with `Bearer `. Example:
        `Authorization: Bearer {API_KEY}`. **Strongly recommend storing your API
        Key on the server-side, not shared or stored on the client-side, to
        avoid possible API-Key leakage that can lead to serious consequences.**

````