---
title: "List all workflows"
method: GET
path: "/v2/workflows"
tags: ["Workflows"]
---

# List all workflows

`GET /v2/workflows`

Retrieves a list of workflows with optional filtering and pagination

## Query parameters

- `limit` number
- `offset` number
- `orderDirection` 'ASC' | 'DESC'
- `orderBy` 'createdAt' | 'updatedAt' | 'name' | 'lastTriggeredAt'
- `query` string
- `tags` string[]
- `status` WorkflowStatusEnum[]

## Response `200`

OK

- ListWorkflowResponse
  - `workflows` WorkflowListResponseDto[], required — List of workflows
    - `name` string, required — Name of the workflow
    - `tags` string[] — Tags associated with the workflow
    - `updatedAt` string, required — Last updated timestamp
    - `createdAt` string, required — Creation timestamp
    - `updatedBy` UserResponseDto
      - `_id` string, required — User ID
      - `firstName` string, nullable — User first name
      - `lastName` string, nullable — User last name
      - `externalId` string, nullable — User external ID
    - `lastPublishedAt` string, nullable — Timestamp of the last workflow publication
    - `lastPublishedBy` UserResponseDto
      - `_id` string, required — User ID
      - `firstName` string, nullable — User first name
      - `lastName` string, nullable — User last name
      - `externalId` string, nullable — User external ID
    - `_id` string, required — Unique database identifier
    - `workflowId` string, required — Workflow identifier
    - `slug` string, required — Workflow slug
    - `status` 'ACTIVE' | 'INACTIVE' | 'ERROR', required — Status of the workflow
    - `origin` 'novu-cloud' | 'novu-cloud-v1' | 'external', required — Origin of the layout
    - `lastTriggeredAt` string, nullable — Timestamp of the last workflow trigger
    - `stepTypeOverviews` StepTypeEnum[], required — Overview of step types in the workflow
    - `isTranslationEnabled` boolean — Is translation enabled for the workflow
    - `steps` StepListResponseDto[], required — Steps of the workflow
      - `slug` string, required — Slug of the step
      - `type` 'in_app' | 'email' | 'sms' | 'chat' | 'push' | 'tool' | 'digest' | 'trigger' | 'delay' | 'throttle' | 'custom' | 'http_request', required — Type of the step
      - `issues` StepIssuesDto
        - `controls` object — Controls-related issues
        - `integration` object — Integration-related issues
  - `totalCount` number, required — Total number of workflows

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `405` — Method Not Allowed
- `409` — Conflict
- `413` — Payload Too Large
- `414` — URI Too Long
- `415` — Unsupported Media Type
- `422` — Unprocessable Entity
- `429` — The client has sent too many requests in a given amount of time.
- `500` — Internal Server Error
- `503` — The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.

---

[API](https://skmtc.net/novu/apis/deprecated-novu-api-use-openapi-json-yaml-instead.md) · [All operations](https://skmtc.net/novu/apis/deprecated-novu-api-use-openapi-json-yaml-instead/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/novu/deprecated-novu-api-use-openapi-json-yaml-instead/versions/986fe259fa85/schema)
