---
title: "List organization workflows"
method: GET
path: "/api/{org_id}/workflows"
tags: ["Workflows"]
---

# List organization workflows

`GET /api/{org_id}/workflows`

## Request

- Base URL: `https://api.openobserve.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.openobserve.ai/api/{org_id}/workflows`
- Auth: API key in header `Authorization`
- TypeScript: <https://skmtc.dev/openobserve/apis/openobserve-api-http/docs/api/:org_id/workflows/get.ts> (a function with typed inputs; its response is checked against the schema)

## Path parameters

- `org_id` string, required

## Query parameters

- `folder` string
- `all_folders` boolean
- `search_substring` string

## Response `200`

Success

- WorkflowListItem[]
  - `associations` WorkflowAssociation[], required
    - `created_at` integer, required
    - `entity_id` string, required
    - `entity_type` string, required
    - `id` integer, required
    - `org_id` string, required
    - `trigger_type` string, required
    - `workflow_id` string, required
  - `created_at` integer, required
  - `created_by` string, required
  - `description` string, required
  - `edges` Edge[], required
    - `id` string, required: Edge identifier, format: "e{source_id}-{target_id}"
    - `source` string, required: Source node id (data flows from this node)
    - `source_handle` string, nullable: Which output handle of the source node this edge leaves from, for multi-output nodes such as Branch. Absent on every pre-existing edge, so it must not serialize.
    - `target` string, required: Target node id (data flows to this node)
  - `enabled` boolean, required
  - `folder_id` string, nullable: Owning folder's URL slug; null when the folder no longer resolves.
  - `folder_name` string, nullable: Display name of the owning folder.
  - `id` string, required
  - `is_draft` boolean, required
  - `name` string, required
  - `nodes` Node[], required
    - `data` object, required: Node configuration. Structure depends on node_type: - stream: { "node_type": "stream", "org_id": "org", "stream_name": "name", "stream_type": "logs"|"metrics"|"traces" } - function: { "node_type": "function", "name": "func_name", "after_flatten": bool } - condition: { "node_type": "condition", "conditions": {...} } - query: { "node_type": "query", "org_id": "org", "stream_type": "logs", "query_condition": {...}, "trigger_condition": {...} } - remote_stream: { "node_type": "remote_stream", "org_id": "org", "destination_name": "dest" }
    - `id` string, required: Unique identifier for the node (use UUID format)
    - `io_type` string, required: Node role in the pipeline. MUST be one of: - "input": Source stream node (first node in pipeline) - "output": Destination stream node (last node in pipeline) - "default": Processing node (function, condition, etc.)
    - `is_disabled` boolean
    - `meta` object, nullable
    - `position` Position, required
      - `x` number, float, required
      - `y` number, float, required
    - `style` NodeStyle
      - `backgroundColor` string, nullable
  - `org_id` string, required
  - `updated_at` integer, required

## Other responses

- `403`: The caller's workflow listing was refused
- `404`: The folder does not exist
- `500`: Internal Server Error

---

[API](https://skmtc.dev/openobserve/apis/openobserve-api-http.md) - [All operations](https://skmtc.dev/openobserve/apis/openobserve-api-http/llms.txt) - [OpenAPI document](https://skmtc.dev/openobserve/apis/openobserve-api-http/revisions/0529b8a10252?raw)
