---
title: "Filter Workflows"
method: POST
path: "/api/workflows/list/"
tags: ["workflows"]
---

# Filter Workflows

`POST /api/workflows/list/`

List workflows with complex filtering via POST body.

## Query parameters

- `page` integer
- `page_size` integer

## Headers

- `Authorization` string, required

## Request body

- WorkflowFilterRequestRequest — Request body for POST-for-filtering on /api/workflows/list/.
  - `filters` FilterParamDictPydantic — Pydantic model for FilterParamDict. A dictionary that maps metric names to their filter parameters. Each key is a metric name (str), and each value can be: - A single MetricFilterParamPydantic (one condition) - A List[MetricFilterParamPydantic] (multiple conditions for same metric) - A FilterBundlePydantic (nested filter bundle with connector) Note: Uses extra="allow" for dynamic metric name fields. The __pydantic_extra__ annotation tells Pydantic what types to expect for extra fields, and generates typed additionalProperties in JSON Schema.

## Response `200`

- PaginatedWorkflowListList
  - `count` integer, required
  - `next` string, uri, nullable
  - `previous` string, uri, nullable
  - `total_count` integer
  - `current_filters` FilterParamDictPydantic — Pydantic model for FilterParamDict. A dictionary that maps metric names to their filter parameters. Each key is a metric name (str), and each value can be: - A single MetricFilterParamPydantic (one condition) - A List[MetricFilterParamPydantic] (multiple conditions for same metric) - A FilterBundlePydantic (nested filter bundle with connector) Note: Uses extra="allow" for dynamic metric name fields. The __pydantic_extra__ annotation tells Pydantic what types to expect for extra fields, and generates typed additionalProperties in JSON Schema.
  - `filters_data` PaginatedWorkflowListListFiltersData
  - `results` WorkflowList[], required
    - `id` string
    - `workflow_id` string — Logical workflow family key shared across versions
    - `version` integer
    - `name` string, nullable
    - `description` string, nullable
    - `type` 'automations' | 'monitors' | 'evaluators' | 'reports' | 'exports' | 'ingests' — * `automations` - Automation * `monitors` - Monitor * `evaluators` - Evaluator * `reports` - Report * `exports` - Export * `ingests` - Ingest
    - `trigger_event_type` union — Event type that triggers this workflow when used as an event responder * `request_log` - LOG_INGESTED * `trace_completed` - TRACE_COMPLETED * `customer_budget_limit_reached` - BUDGET_EXCEEDED * `credit_low_balance_threshold_reached` - CREDIT_LOW * `spend_cap_warning_threshold_reached` - SPEND_CAP_WARNING * `limit_policy_soft_triggered` - LIMIT_POLICY_SOFT_TRIGGERED * `limit_policy_hard_triggered` - LIMIT_POLICY_HARD_TRIGGERED * `on_eval_result_ingested` - EVAL_COMPLETED * `custom_event` - CUSTOM_EVENT * `eval_only` - EVAL_ONLY * `scheduled` - SCHEDULED
      - 'request_log' | 'trace_completed' | 'customer_budget_limit_reached' | 'credit_low_balance_threshold_reached' | 'spend_cap_warning_threshold_reached' | 'limit_policy_soft_triggered' | 'limit_policy_hard_triggered' | 'on_eval_result_ingested' | 'custom_event' | 'eval_only' | 'scheduled' — * `request_log` - LOG_INGESTED * `trace_completed` - TRACE_COMPLETED * `customer_budget_limit_reached` - BUDGET_EXCEEDED * `credit_low_balance_threshold_reached` - CREDIT_LOW * `spend_cap_warning_threshold_reached` - SPEND_CAP_WARNING * `limit_policy_soft_triggered` - LIMIT_POLICY_SOFT_TRIGGERED * `limit_policy_hard_triggered` - LIMIT_POLICY_HARD_TRIGGERED * `on_eval_result_ingested` - EVAL_COMPLETED * `custom_event` - CUSTOM_EVENT * `eval_only` - EVAL_ONLY * `scheduled` - SCHEDULED
      - ''
      - unknown
    - `is_enabled` boolean, required
    - `is_starred` boolean
    - `is_read_only` boolean — True for committed versions; only the latest version is editable
    - `is_public` boolean, required
    - `unique_organization_id` string, required
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required
    - `has_async_steps` boolean
    - `editor` Editor, required
      - `id` integer, required
      - `email` string, required
      - `name` string, required
      - `username` string
      - `first_name` string
      - `last_name` string
    - `tags` GenericTagDisplay[], required
      - `id` string, required
      - `name` string, required
      - `color` string, required
      - `created_at` string, date-time, required
      - `updated_at` string, date-time, required
    - `deployed_version` integer, nullable, required

---

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