---
title: "List a workflow's version history"
method: GET
path: "/v1/workflows/{workflowId}/versions"
tags: ["Workflows"]
---

# List a workflow's version history

`GET /v1/workflows/{workflowId}/versions`

Returns the snapshot history. A new version is recorded automatically before every PATCH to `nodes` / `edges` / `entryNodeId`, and explicitly when a previous version is restored. Lightweight list — call `getWorkflowVersion` for the full snapshot graph.

## Path parameters

- `workflowId` string, required

## Response `200`

Versions list

- object
  - `success` boolean
  - `versions` object[] — Versions in reverse chronological order (newest first).
    - `version` integer — Monotonically increasing version number
    - `name` string
    - `description` string, nullable
    - `createdBy` string, nullable — User id that authored this version
    - `createdByEmail` string, nullable — Denormalized email so the history UI can render without a join
    - `restoredFromVersion` integer, nullable — When non-null, this snapshot was created by restoring that version
    - `createdAt` string, date-time

## Other responses

- `400` — Invalid request
- `401` — Unauthorized
- `404` — Resource not found

---

[API](https://skmtc.net/zernio/apis/zernio-api.md) · [All operations](https://skmtc.net/zernio/apis/zernio-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/zernio/zernio-api/revisions/f81ca70ea6b9/schema)
