Skip to main content

Workflow Management API

This document outlines the API endpoints for managing workflows in PySpur.

Create Workflow

Description: Creates a new workflow. If no definition is provided, creates a default workflow with an input node. For chatbots, creates a workflow with required input/output fields for handling chat interactions. The workflow name will be made unique if a workflow with the same name already exists. URL: /wf/ Method: POST Request Payload:
Where WorkflowDefinitionSchema contains:
Response Schema:

Update Workflow

Description: Updates an existing workflow’s definition, name, and description. The workflow definition is required for updates. This endpoint allows for modifying the structure and behavior of a workflow. URL: /wf/{workflow_id}/ Method: PUT Parameters:
Request Payload: Same as Create Workflow Response Schema: Same as Create Workflow

List Workflows

Description: Lists all workflows with pagination support, ordered by creation date descending. Only valid workflows that can be properly validated are included in the response. URL: /wf/ Method: GET Query Parameters:
Response Schema:

Get Workflow

Description: Retrieves a specific workflow by its ID, including its complete definition, metadata, and timestamps. URL: /wf/{workflow_id}/ Method: GET Parameters:
Response Schema: Same as Create Workflow

Reset Workflow

Description: Resets a workflow to its initial state with just an input node. This is useful when you want to start over with a workflow design without deleting and recreating it. URL: /wf/{workflow_id}/reset/ Method: PUT Parameters:
Response Schema: Same as Create Workflow

Delete Workflow

Description: Deletes a workflow and its associated test files. This operation is permanent and will remove all data related to the workflow, including test files stored in the file system. URL: /wf/{workflow_id}/ Method: DELETE Parameters:
Response: 204 No Content

Duplicate Workflow

Description: Creates a copy of an existing workflow with “(Copy)” appended to its name. This is useful for creating variations of a workflow without modifying the original. URL: /wf/{workflow_id}/duplicate/ Method: POST Parameters:
Response Schema: Same as Create Workflow

Get Workflow Output Variables

Description: Retrieves the output variables (leaf nodes) of a workflow, including their node IDs and variable names. This is useful for understanding what outputs are available from a workflow. URL: /wf/{workflow_id}/output_variables/ Method: GET Parameters:
Response Schema:
Each dictionary in the list contains:

Upload Test Files

Description: Uploads test files for a specific node in a workflow and returns their paths. The files are stored in a workflow-specific directory and can be used as inputs for testing the workflow. URL: /wf/upload_test_files/ Method: POST Form Data:
Response Schema:
Example:

Get Workflow Versions

Description: Retrieves all versions of a workflow, ordered by version number descending, with pagination support. This allows tracking the evolution of a workflow over time and reverting to previous versions if needed. URL: /wf/{workflow_id}/versions/ Method: GET Parameters:
Response Schema:
Where WorkflowVersionResponseSchema contains:

List Paused Workflows

Description: Lists all workflows that are currently in a paused state, with pagination support. This endpoint is useful for monitoring workflows that require human intervention. URL: /wf/paused_workflows/ Method: GET Query Parameters:
Response Schema:
Where PausedWorkflowResponseSchema contains:

Get Pause History

Description: Retrieves the pause history for a specific workflow run, showing when and why the workflow was paused, and any actions taken to resume it. URL: /wf/pause_history/{run_id}/ Method: GET Parameters:
Response Schema:
Where PauseHistoryResponseSchema contains:

Process Pause Action

Description: Processes an action on a paused workflow, allowing for approval, decline, or override of a workflow that has been paused for human intervention. The workflow will resume execution based on the action taken. URL: /wf/process_pause_action/{run_id}/ Method: POST Parameters:
Request Payload:
Response Schema: