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

# Get Workflow Execution API

> The whole story of one contact's run: current status, every node attempt with the edge it took, and the recent timeline. Poll until terminal.

<Note>
  Poll until `status` is one of `completed`, `failed`, `cancelled` or `aborted`. Each entry in `nodes` shows the attempt's status, the case that matched (`matched_case_index`) and the node it routed to (`to_node_id`), so you can replay the exact path through your graph.
</Note>


## OpenAPI

````yaml GET /workflow-executions/{execution_id}
openapi: 3.1.0
info:
  title: Bolna API
  description: >-
    Use and leverage Bolna Voice AI using APIs through HTTP requests from any
    language in your applications and workflows.
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://api.bolna.ai
    description: Production server
security:
  - bearerAuth: []
paths:
  /workflow-executions/{execution_id}:
    get:
      description: >-
        The whole story of one contact's run — status, every node attempt with
        the edge it took, and the most recent timeline events. Poll until
        `status` is terminal (`completed`, `failed`, `cancelled` or `aborted`).
      parameters:
        - in: path
          name: execution_id
          required: true
          schema:
            type: string
          description: >-
            The `execution_id` returned by the run endpoint or an executions
            listing
      responses:
        '200':
          description: Execution detail
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowExecutionDetail'
        '404':
          description: Execution not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowError'
components:
  schemas:
    WorkflowExecutionDetail:
      allOf:
        - $ref: '#/components/schemas/WorkflowExecution'
        - type: object
          required:
            - nodes
            - events
          properties:
            state:
              type: object
              description: >-
                The execution's `state.*` variables. Written when the execution
                finishes.
            nodes:
              type: array
              items:
                $ref: '#/components/schemas/WorkflowNodeAttempt'
              description: Every node attempt in order, with the edge each one took.
            events:
              type: array
              items:
                $ref: '#/components/schemas/WorkflowExecutionEvent'
              description: The most recent 100 timeline events, oldest first.
    WorkflowError:
      type: object
      description: >-
        Error envelope returned by every workflow endpoint. `detail.code` is a
        stable machine-readable code; extra keys (such as `current_revision` on
        `revision_conflict`, `execution_id` on `duplicate_run`, or `issues` on
        `invalid_definition`) ride alongside it.
      required:
        - detail
      properties:
        detail:
          type: object
          additionalProperties: true
          required:
            - code
            - message
          properties:
            code:
              type: string
              description: Machine-readable error code.
              example: revision_conflict
            message:
              type: string
              description: Human-readable explanation.
    WorkflowExecution:
      type: object
      required:
        - id
        - campaign_id
        - status
      properties:
        id:
          type: string
          description: Execution id.
        campaign_id:
          type: string
          format: uuid
        status:
          type: string
          enum:
            - pending
            - running
            - completed
            - failed
            - cancelled
            - aborted
          description: '`completed`, `failed`, `cancelled` and `aborted` are terminal.'
        current_node_id:
          type: string
          nullable: true
          description: The node the execution is at, while running.
        termination_reason:
          type: string
          nullable: true
          description: >-
            On completion, the `label` of the end node that was reached; on
            other terminal statuses, the stop cause.
        outcome:
          type: string
          nullable: true
          enum:
            - success
            - failure
            - neutral
          description: >-
            The reached end node's declared outcome. `null` until the execution
            completes.
        call_count:
          type: integer
          description: Agent-node call attempts made so far.
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
    WorkflowNodeAttempt:
      type: object
      required:
        - node_id
        - node_type
        - attempt
        - status
      properties:
        node_id:
          type: string
        node_type:
          type: string
        attempt:
          type: integer
          description: >-
            1-based attempt counter — greater than 1 when a retry node re-ran
            the target.
        status:
          type: string
          enum:
            - started
            - completed
            - failed
            - timeout
            - skipped
        to_node_id:
          type: string
          nullable: true
          description: The node the matched case routed to, or `null` on a terminal node.
        matched_case_index:
          type: integer
          nullable: true
          description: 0-based index of the case that matched.
        scheduled_for:
          type: string
          format: date-time
          nullable: true
          description: For time and retry waits, when the attempt is scheduled to continue.
        outputs:
          type: object
          nullable: true
          description: >-
            Flat map of the variables this attempt wrote, keyed by
            `namespace.path`.
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
    WorkflowExecutionEvent:
      type: object
      required:
        - seq
        - event_type
      properties:
        seq:
          type: integer
          description: Monotonic sequence number.
        node_id:
          type: string
          nullable: true
        event_type:
          type: string
          description: >-
            `warning` for non-fatal runtime issues (e.g. an unresolvable
            variable), `terminal` when the execution ends.
        detail:
          type: object
          description: >-
            Event payload — e.g. `{"termination_reason": ..., "outcome": ...}`
            on `terminal`.
        created_at:
          type: string
          format: date-time
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````