---
title: "List workflows"
method: GET
path: "/api/v1/workflows"
tags: ["Workflow Control Plane"]
---

# List workflows

`GET /api/v1/workflows`

## Request

- Base URL: `https://orchestrator.getaxonflow.com`
- URL: `https://orchestrator.getaxonflow.com/api/v1/workflows`
- Auth: none declared
- TypeScript: <https://skmtc.dev/getaxonflow/apis/axonflow-orchestrator-api/docs/api/v1/workflows/get.ts> (a function with typed inputs; its response is checked against the schema)

List workflows with optional filters

## Query parameters

- `status` 'in_progress' | 'completed' | 'aborted' | 'failed'
- `source` 'langgraph' | 'langchain' | 'crewai' | 'external'
- `limit` integer
- `offset` integer
- `trace_id` string

## Response `200`

List of workflows

- ListWorkflowsResponse
  - `workflows` WorkflowStatusResponse[]
    - `workflow_id` string
    - `workflow_name` string
    - `source` 'langgraph' | 'langchain' | 'crewai' | 'external'
    - `status` 'in_progress' | 'completed' | 'aborted' | 'failed'
    - `trace_id` string: External trace ID for correlation with Langsmith, Datadog, or OpenTelemetry
    - `current_step_index` integer
    - `total_steps` integer
    - `started_at` string, date-time
    - `completed_at` string, date-time
    - `metadata` object
    - `steps` WorkflowStepInfo[]
      - `step_id` string
      - `step_index` integer
      - `step_name` string
      - `step_type` 'llm_call' | 'tool_call' | 'connector_call' | 'human_task'
      - `decision` 'allow' | 'block' | 'require_approval'
      - `approval_status` 'pending' | 'approved' | 'rejected' | 'expired'
      - `gate_checked_at` string, date-time
      - `approved_by` string: User email of the approver when `approval_status` is `approved`. Empty for `pending`, and empty for `expired` (auto-timeout — no human reviewer) or for `rejected` paths without a recorded reviewer.
      - `completed_at` string, date-time: When the step transitioned to a terminal state (approved, rejected, or auto-completed). Pair with `gate_checked_at` to compute approval latency.
      - `decision_reason` string: Free-form rationale recorded alongside the decision — populated by the approver when present, or by the policy engine for auto-decisions. Per-step audit context.
  - `total` integer: Total number of workflows matching filters
  - `limit` integer
  - `offset` integer

---

[API](https://skmtc.dev/getaxonflow/apis/axonflow-orchestrator-api.md) - [All operations](https://skmtc.dev/getaxonflow/apis/axonflow-orchestrator-api/llms.txt) - [OpenAPI document](https://skmtc.dev/getaxonflow/apis/axonflow-orchestrator-api/revisions/f408ef3ec9dd?raw)
