---
title: "List all Workflow Versions"
method: GET
path: "/workflow-versions"
tags: ["workflows"]
---

# List all Workflow Versions

`GET /workflow-versions`

## Request

- Base URL: `https://api.withpersona.com/api/v1`
- URL: `https://api.withpersona.com/api/v1/workflow-versions`
- Auth: HTTP bearer

Retrieves the published versions and current draft version of a Workflow. Archived versions are not returned.

Provide the Workflow ID in `filter[workflow-id]`, which you can copy from the Workflow in your Persona dashboard. The `live`, `rollout-label`, and `rollout-percentage` attributes are relative to the environment your API key belongs to: a version live in Production is not live in Sandbox. Sandbox API keys are supported, and report `live: false` for every version of a Workflow that is only deployed to Production.

## Query parameters

- `page` WorkflowVersionsGetParametersPage
  - `after` string: Object ID for pagination cursor
  - `before` string: Object ID for pagination cursor
  - `size` number, double: Limit on the number of objects returned
- `fields` object
- `filter` WorkflowVersionsGetParametersFilter, required
  - `workflow-id` string, required: The Workflow ID to list versions for.

## Headers

- `Key-Inflection` 'camel' | 'kebab' | 'snake'
- `Idempotency-Key` string
- `Persona-Version` '2026-09-29' | '2025-12-08' | '2025-10-27' | '2023-01-05' | '2022-09-01' | '2021-08-18' | '2021-07-05' | '2021-02-21' | '2020-05-18': Server API version. More info on versioning can be found [here](https://docs.withpersona.com/versioning).

## Response `200`

This endpoint returns a collection of Workflow Version objects.

- WorkflowsListAllWorkflowVersionsResponse200
  - `data` WorkflowVersion[], required: An array of Workflow Versions
    - `id` string
    - `attributes` WorkflowRunIncludedObjectsItemsDiscriminatorMappingWorkflowVersionAttributes
      - `workflow-name` string, nullable: The name of the Workflow this version belongs to.
      - `description` string, nullable: A description of the changes in this version. Draft versions have no description until one is set.
      - `status` string: The status of the Workflow Version Possible values: - draft - published - archived Do not assume this is a static enumeration; Persona may add new values in the future without a versioned update.
      - `trigger-type` string, nullable: What starts a run of this version. Null until a trigger is attached. Possible values: - trigger-account - trigger-api - trigger-case - trigger-direct - trigger-event - trigger-recurring - trigger-schedule - trigger-verification Do not assume this is a static enumeration; Persona may add new values in the future without a versioned update.
      - `live` boolean: Whether this version is running in the environment of the requesting API key or delivering webhook. While a Workflow is being rolled out, two versions are live at once; both report true. Always false while the Workflow itself is paused or archived.
      - `rollout-label` string, nullable: Which side of a rollout this version serves. Null when the version is not live — including while the Workflow is paused or archived — and for organizations whose deployments do not model a per-version traffic share. Possible values: - treatment - control Do not assume this is a static enumeration; Persona may add new values in the future without a versioned update.
      - `rollout-percentage` integer, nullable: The share of traffic this version receives in the environment of the requesting API key or delivering webhook. Null when the version is not live — including while the Workflow is paused or archived — and for organizations whose deployments do not model a per-version traffic share.
      - `last-updater` string, nullable: The email address of the User who last updated this version. Null when the version was last updated by Persona rather than by a member of your organization.
      - `inputs` WorkflowRunIncludedObjectsItemsDiscriminatorMappingWorkflowVersionAttributesInputsItems[]: The values a run of this version accepts when it is started.
        - `name` string
        - `type` string, nullable: The JSON type accepted for this input.
        - `required` boolean
      - `outputs` WorkflowRunIncludedObjectsItemsDiscriminatorMappingWorkflowVersionAttributesOutputsItems[]: The values a completed run of this version returns.
        - `name` string, nullable
      - `created-at` string, date-time
      - `updated-at` string, date-time: When this version was last edited. Does not cover edits to `inputs` or `outputs`; poll those values directly rather than this timestamp to detect input-contract changes.
      - `published-at` string, date-time, nullable
    - `relationships` WorkflowRunIncludedObjectsItemsDiscriminatorMappingWorkflowVersionRelationships
      - `workflow` WorkflowRunIncludedObjectsItemsDiscriminatorMappingWorkflowVersionRelationshipsWorkflow
        - `data` WorkflowRunIncludedObjectsItemsDiscriminatorMappingWorkflowVersionRelationshipsWorkflowData
          - `type` 'workflow'
          - `id` string
  - `links` WorkflowVersionsGetResponsesContentApplicationJsonSchemaLinks, required
    - `prev` string, nullable, required
    - `next` string, nullable, required

## Other responses

- `400`: The request was unacceptable, often due to invalid parameters.
- `401`: An invalid API key was provided.
- `403`: The given API key doesn’t have permissions to perform the request or a quota has been exceeded.
- `404`: The requested resource doesn’t exist.
- `429`: Your organization’s rate limit has been exceeded. We recommend an exponential backoff on requests.

---

[API](https://skmtc.dev/withpersona/apis/withpersona-3.md) - [All operations](https://skmtc.dev/withpersona/apis/withpersona-3/llms.txt) - [OpenAPI document](https://skmtc.dev/withpersona/apis/withpersona-3/revisions/0a3310d5046f?raw)
