REST API for automation workflows — definitions, runs, schedules, steps, the code IDE, and the SDK reference. Auto-generated from the platform OpenAPI schema so it matches the running API.
REST API for this feature — 64 operations across 55 resource paths, auto-generated from the platform's live OpenAPI schema (drf-spectacular).
Base URL
https://<your-versus-host>/api· AuthAuthorization: Bearer <JWT>(fromPOST /api/auth/token/) · 📄 Download the OpenAPI spec for Postman/Insomnia/Swagger · see the API overview for pagination, filtering, and errors.
GET /api/backout-runs/List backout runs
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
ordering | query | no | string | Which field to use when ordering the results. |
page | query | no | integer | A page number within the paginated result set. |
page_size | query | no | integer | Number of results to return per page. |
run | query | no | integer | |
search | query | no | string | A search term. |
status | query | no | string | * waiting_primary_approval - Waiting for Primary Approval |
Responses: 200 → PaginatedBackoutRunListList
GET /api/backout-runs/{id}/Retrieve backout run
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | integer | A unique integer value identifying this backout run. |
Responses: 200 → BackoutRun
POST /api/backout-runs/{id}/approve_dual/Approve dual: backout run
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | integer | A unique integer value identifying this backout run. |
Request body (application/json): BackoutRunRequest
Responses: 200 → BackoutRun
POST /api/backout-runs/{id}/approve_primary/Approve primary: backout run
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | integer | A unique integer value identifying this backout run. |
Request body (application/json): BackoutRunRequest
Responses: 200 → BackoutRun
POST /api/backout-runs/{id}/cancel/Cancel: backout run
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | integer | A unique integer value identifying this backout run. |
Request body (application/json): BackoutRunRequest
Responses: 200 → BackoutRun
POST /api/backout-runs/{id}/steps/{step_id}/acknowledge/Acknowledge: step
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | integer | A unique integer value identifying this backout run. |
step_id | path | yes | string |
Request body (application/json): BackoutRunRequest
Responses: 200 → BackoutRun
POST /api/backout-runs/{id}/steps/{step_id}/approve/Approve: step
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | integer | A unique integer value identifying this backout run. |
step_id | path | yes | string |
Request body (application/json): BackoutRunRequest
Responses: 200 → BackoutRun
POST /api/backout-runs/{id}/steps/{step_id}/retry/Retry: step
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | integer | A unique integer value identifying this backout run. |
step_id | path | yes | string |
Request body (application/json): BackoutRunRequest
Responses: 200 → BackoutRun
POST /api/backout-runs/{id}/steps/{step_id}/skip/Skip: step
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | integer | A unique integer value identifying this backout run. |
step_id | path | yes | string |
Request body (application/json): BackoutRunRequest
Responses: 200 → BackoutRun
POST /api/quick-run-script/POST { script, name?, context_vars? }
Responses: 200
POST /api/workflow-ai-generate/POST { prompt, answers? }
Responses: 200
POST /api/workflow-ai-snow-fill/POST { workflow_name, nodes: [{key, label, kind}] }
Responses: 200
POST /api/workflow-code/assist/POST /api/workflow-code/assist — unified AI code editor (generate/complete/
Responses: 200
POST /api/workflow-http-assist/POST { prompt, existing_code? }
Responses: 200
POST /api/workflow-playbook-assist/POST { prompt, existing_playbook? }
Responses: 200
GET /api/workflow-runs/Deploy-safe base for making an existing DRF ModelViewSet tenant-isolated
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
device_group | query | no | integer | |
ordering | query | no | string | Which field to use when ordering the results. |
page | query | no | integer | A page number within the paginated result set. |
page_size | query | no | integer | Number of results to return per page. |
search | query | no | string | A search term. |
status | query | no | string | * pending - Pending |
workflow | query | no | integer | |
workflow__category | query | no | string | * netscaler - NetScaler |
Responses: 200 → PaginatedWorkflowRunListList
GET /api/workflow-runs/{id}/Deploy-safe base for making an existing DRF ModelViewSet tenant-isolated
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | integer | A unique integer value identifying this workflow run. |
Responses: 200 → WorkflowRunDetail
GET /api/workflow-runs/{id}/backout/Retrieve an existing back-out for this run (if any).
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | integer | A unique integer value identifying this workflow run. |
Responses: 200 → WorkflowRunDetail
POST /api/workflow-runs/{id}/cancel/Deploy-safe base for making an existing DRF ModelViewSet tenant-isolated
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | integer | A unique integer value identifying this workflow run. |
Request body (application/json): WorkflowRunDetailRequest
Responses: 200 → WorkflowRunDetail
POST /api/workflow-runs/{id}/code-breakpoints/Set/replace this run's code breakpoints ({node_id: [line, ...]}) before launch.
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | integer | A unique integer value identifying this workflow run. |
Request body (application/json): WorkflowRunDetailRequest
Responses: 200 → WorkflowRunDetail
POST /api/workflow-runs/{id}/node_breakpoints/Set/replace this run's step-level breakpoints — the node ids the run pauses before — before launch or while paused. POST /api/workflows/{id}/run/ also accepts breakpoint_node_ids (list) and node_step (pause before every node) directly.
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | integer | A unique integer value identifying this workflow run. |
Request body (application/json): { "node_ids": ["n2", "n5"] }
Responses: 200 → { "breakpoint_node_ids": [...] }
POST /api/workflow-runs/{id}/debug_resume/Leave a step-level breakpoint pause. mode: "continue" runs on to the next breakpoint (or the end); mode: "step" runs just the paused step and pauses again before the next one. The run's debug_state describes the current pause (kind, node_id, label, why, paused_at).
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | integer | A unique integer value identifying this workflow run. |
Request body (application/json): { "mode": "continue" | "step" }
Responses: 200 → WorkflowRunDetail · 400 when the run is not paused
POST /api/workflow-runs/{id}/debug/Drive the paused debugger: command in {step, step_over, continue, stop}. DB-polled,
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | integer | A unique integer value identifying this workflow run. |
Request body (application/json): WorkflowRunDetailRequest
Responses: 200 → WorkflowRunDetail
GET /api/workflow-runs/{id}/frame/The current paused code-debugger frame for this run (line + locals).
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | integer | A unique integer value identifying this workflow run. |
Responses: 200 → WorkflowRunDetail
POST /api/workflow-runs/{id}/mark_complete/Deploy-safe base for making an existing DRF ModelViewSet tenant-isolated
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | integer | A unique integer value identifying this workflow run. |
Request body (application/json): WorkflowRunDetailRequest
Responses: 200 → WorkflowRunDetail
POST /api/workflow-runs/{id}/pause/Deploy-safe base for making an existing DRF ModelViewSet tenant-isolated
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | integer | A unique integer value identifying this workflow run. |
Request body (application/json): WorkflowRunDetailRequest
Responses: 200 → WorkflowRunDetail
POST /api/workflow-runs/{id}/request_backout/Create a back-out plan for this run.
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | integer | A unique integer value identifying this workflow run. |
Request body (application/json): WorkflowRunDetailRequest
Responses: 200 → WorkflowRunDetail
POST /api/workflow-runs/{id}/resume/Deploy-safe base for making an existing DRF ModelViewSet tenant-isolated
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | integer | A unique integer value identifying this workflow run. |
Request body (application/json): WorkflowRunDetailRequest
Responses: 200 → WorkflowRunDetail
POST /api/workflow-runs/{id}/resume_approval/Deploy-safe base for making an existing DRF ModelViewSet tenant-isolated
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | integer | A unique integer value identifying this workflow run. |
Request body (application/json): WorkflowRunDetailRequest
Responses: 200 → WorkflowRunDetail
POST /api/workflow-runs/{id}/resume_failed/Resume a failed run from the last node it was attempting.
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | integer | A unique integer value identifying this workflow run. |
Request body (application/json): WorkflowRunDetailRequest
Responses: 200 → WorkflowRunDetail
POST /api/workflow-runs/{id}/retry_step/Deploy-safe base for making an existing DRF ModelViewSet tenant-isolated
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | integer | A unique integer value identifying this workflow run. |
Request body (application/json): WorkflowRunDetailRequest
Responses: 200 → WorkflowRunDetail
POST /api/workflow-runs/{id}/stop_step/Deploy-safe base for making an existing DRF ModelViewSet tenant-isolated
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | integer | A unique integer value identifying this workflow run. |
Request body (application/json): WorkflowRunDetailRequest
Responses: 200 → WorkflowRunDetail
GET /api/workflow-schedules/CRUD for workflow schedules with cron-based execution.
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
enabled | query | no | boolean | |
ordering | query | no | string | Which field to use when ordering the results. |
page | query | no | integer | A page number within the paginated result set. |
page_size | query | no | integer | Number of results to return per page. |
search | query | no | string | A search term. |
workflow | query | no | integer |
Responses: 200 → PaginatedWorkflowScheduleList
POST /api/workflow-schedules/CRUD for workflow schedules with cron-based execution.
Request body (application/json): WorkflowScheduleRequest
Responses: 201 → WorkflowSchedule
GET /api/workflow-schedules/due/List schedules that are currently due (for monitoring/debugging).
Responses: 200 → WorkflowSchedule
GET /api/workflow-schedules/{id}/CRUD for workflow schedules with cron-based execution.
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | integer | A unique integer value identifying this workflow schedule. |
Responses: 200 → WorkflowSchedule
PUT /api/workflow-schedules/{id}/CRUD for workflow schedules with cron-based execution.
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | integer | A unique integer value identifying this workflow schedule. |
Request body (application/json): WorkflowScheduleRequest
Responses: 200 → WorkflowSchedule
PATCH /api/workflow-schedules/{id}/CRUD for workflow schedules with cron-based execution.
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | integer | A unique integer value identifying this workflow schedule. |
Request body (application/json): PatchedWorkflowScheduleRequest
Responses: 200 → WorkflowSchedule
DELETE /api/workflow-schedules/{id}/CRUD for workflow schedules with cron-based execution.
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | integer | A unique integer value identifying this workflow schedule. |
Responses: 204
POST /api/workflow-schedules/{id}/disable/CRUD for workflow schedules with cron-based execution.
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | integer | A unique integer value identifying this workflow schedule. |
Request body (application/json): WorkflowScheduleRequest
Responses: 200 → WorkflowSchedule
POST /api/workflow-schedules/{id}/enable/CRUD for workflow schedules with cron-based execution.
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | integer | A unique integer value identifying this workflow schedule. |
Request body (application/json): WorkflowScheduleRequest
Responses: 200 → WorkflowSchedule
POST /api/workflow-schedules/{id}/run_now/Immediately fire this schedule, ignoring next_run_at.
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | integer | A unique integer value identifying this workflow schedule. |
Request body (application/json): WorkflowScheduleRequest
Responses: 200 → WorkflowSchedule
POST /api/workflow-script-assist/POST { prompt, existing_code? }
Responses: 200
GET /api/workflow-sdk/reference/GET /api/workflow-sdk/reference?language=python — live-introspected SDK
Responses: 200
GET /api/workflow-status/{run_id}/GET /api/workflow-status/<run_id>/
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
run_id | path | yes | integer |
Responses: 200
GET /api/workflow-steps/Lists every built-in step so the canvas can build its node palette and config forms.
Responses: 200
GET /api/workflow-steps/{key}/source/Read-only view of a built-in step's actual implementation — the
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
key | path | yes | string |
Responses: 200
POST /api/workflow-trigger/POST /api/workflow-trigger/
Responses: 200
GET /api/workflows/List workflows
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
category | query | no | string | * netscaler - NetScaler |
is_active | query | no | boolean | |
ordering | query | no | string | Which field to use when ordering the results. |
search | query | no | string | A search term. |
slug | query | no | string |
Responses: 200 → WorkflowDefinitionList[]
POST /api/workflows/Create workflow
Request body (application/json): WorkflowDefinitionRequest
Responses: 201 → WorkflowDefinition
GET /api/workflows/{id}/Retrieve workflow
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | integer | A unique integer value identifying this workflow definition. |
Responses: 200 → WorkflowDefinition
PUT /api/workflows/{id}/Update workflow
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | integer | A unique integer value identifying this workflow definition. |
Request body (application/json): WorkflowDefinitionRequest
Responses: 200 → WorkflowDefinition
PATCH /api/workflows/{id}/Update workflow
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | integer | A unique integer value identifying this workflow definition. |
Request body (application/json): PatchedWorkflowDefinitionRequest
Responses: 200 → WorkflowDefinition
DELETE /api/workflows/{id}/Delete workflow
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | integer | A unique integer value identifying this workflow definition. |
Responses: 204
POST /api/workflows/{id}/duplicate/Clones this workflow's graph into a new, editable (non-builtin)
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | integer | A unique integer value identifying this workflow definition. |
Request body (application/json): WorkflowDefinitionRequest
Responses: 200 → WorkflowDefinition
POST /api/workflows/{id}/favorite/Toggle the current user's favorite state for this workflow.
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | integer | A unique integer value identifying this workflow definition. |
Request body (application/json): WorkflowDefinitionRequest
Responses: 200 → WorkflowDefinition
POST /api/workflows/{id}/finalize/Promote a published version to the canonical final — production runs pin to it.
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | integer | A unique integer value identifying this workflow definition. |
Request body (application/json): WorkflowDefinitionRequest
Responses: 200 → WorkflowDefinition
POST /api/workflows/{id}/preflight/Dry trace: validate, then run a dry_run that records what WOULD run — no device IO.
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | integer | A unique integer value identifying this workflow definition. |
Request body (application/json): WorkflowDefinitionRequest
Responses: 200 → WorkflowDefinition
POST /api/workflows/{id}/publish/Freeze the working draft into an immutable published version (hard-gated on validation).
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | integer | A unique integer value identifying this workflow definition. |
Request body (application/json): WorkflowDefinitionRequest
Responses: 200 → WorkflowDefinition
POST /api/workflows/{id}/revert_draft/Copy a version's frozen graph back onto the working draft.
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | integer | A unique integer value identifying this workflow definition. |
Request body (application/json): WorkflowDefinitionRequest
Responses: 200 → WorkflowDefinition
POST /api/workflows/{id}/run/Create a WorkflowRun and kick off execution in a background thread.
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | integer | A unique integer value identifying this workflow definition. |
Request body (application/json): WorkflowDefinitionRequest
Responses: 200 → WorkflowDefinition
GET /api/workflows/{id}/sections/The workflow's high-level 'section' nodes, in execution order.
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | integer | A unique integer value identifying this workflow definition. |
Responses: 200 → WorkflowDefinition
GET /api/workflows/{id}/validate/Static validation of the working draft graph (advisory; also the publish gate).
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | integer | A unique integer value identifying this workflow definition. |
Responses: 200 → WorkflowDefinition
POST /api/workflows/{id}/validate/Static validation of the working draft graph (advisory; also the publish gate).
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | integer | A unique integer value identifying this workflow definition. |
Request body (application/json): WorkflowDefinitionRequest
Responses: 200 → WorkflowDefinition
GET /api/workflows/{id}/versions/Versions: workflow
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | integer | A unique integer value identifying this workflow definition. |
Responses: 200 → WorkflowDefinition
GET /api/workflows/{id}/versions/diff/Structured graph diff between two refs (?from=&to=); a ref is a version_no or 'draft'.
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | integer | A unique integer value identifying this workflow definition. |
Responses: 200 → WorkflowDefinition
Auto-generated from drf-spectacular OpenAPI. Endpoint descriptions come from viewset docstrings/serializers; enriching those improves this page on the next generation.