List workflow versions
GET/workflows/{id}/versions
Returns the full version history for a workflow, ordered newest first. Each version is an immutable snapshot of the workflow definition at the time it was saved. Use this for audit trails and rollback planning.
Request
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
id | integer | Yes | Integer ID of the workflow whose versions to list. Example: |
Responses
200 Ordered list of workflow versions
Content type application/json, object.
| Field | Type | Required | Description |
|---|---|---|---|
data | array of object · WorkflowVersionV1 | No | |
data[].id | integer | No | Auto-incremented primary key. |
data[].workflow_id | integer | No | Parent workflow ID. Example: |
data[].version | integer | No | Monotonically increasing version number. Example: |
data[].definition | object | No | Full workflow definition snapshot including trigger, conditions, actions, throttle_per_minute, and error_policy. |
data[].status | string | No | 'published' means this version was active at some point; 'draft' means it was saved but never activated. One of: |
data[].notes | string, nullable | No | Auto-generated or operator notes describing the change. Example: |
data[].published_at | string (date-time), nullable | No | Timestamp when this version was published (activated). |
data[].created_by | integer, nullable | No | Tenant user ID who saved this version. |
data[].created_at | string (date-time) | No | Version creation timestamp. |
Example
{
"data": [
{
"id": 22,
"workflow_id": 8,
"version": 3,
"status": "published",
"notes": "Updated from workflow console",
"published_at": "2026-03-15T14:22:00Z",
"created_by": 2,
"created_at": "2026-03-15T14:22:00Z"
}
]
}
404 Workflow not found
Example request
curl -X GET "https://{tenant}.faciotech.net/api/v1/workflows/{id}/versions" \
-H "Accept: application/json"