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

# Filter workflows

`POST /api/workflows/list/`

List one representative version per workflow family using optional complex filters in the request body. An omitted body or omitted `filters` object applies only the query-string filters.

## Query parameters

- `page` integer
- `page_size` integer
- `sort_by` string
- `type` 'automations' | 'monitors' | 'evaluators' | 'reports' | 'exports' | 'ingests' — Workflow category. Defaults to `automations`.
- `trigger_event_type` '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' — Event that triggers the workflow. Use `scheduled` with `schedule_cron`.
- `search` string
- `is_including_public_workflows` boolean

## Headers

- `Authorization` string, required

## Request body

- object
  - `filters` object — Filter parameters keyed by field name.

## Response `200`

Paginated filtered workflow families.

- WorkflowsFilterWorkflowsResponse200
  - `count` integer, required
  - `next` string, nullable, required
  - `previous` string, nullable, required
  - `total_count` integer — Total count when available. This field can be omitted for API-key requests.
  - `current_filters` object
  - `filters_data` object
  - `results` ApiWorkflowsListPostResponsesContentApplicationJsonSchemaResultsItems[], required
    - `id` string, required
    - `workflow_id` string, required
    - `version` integer, required
    - `name` string, nullable
    - `description` string, nullable
    - `version_description` string — Commit message for this version. Set only through the commit endpoint.
    - `type` 'automations' | 'monitors' | 'evaluators' | 'reports' | 'exports' | 'ingests', required — Workflow category. Defaults to `automations`.
    - `trigger_event_type` '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' — Event that triggers the workflow. Use `scheduled` with `schedule_cron`.
    - `schedule_cron` string, nullable — UTC five-field cron expression. Required when `trigger_event_type` is `scheduled`, forbidden for other trigger types, and limited to a minimum five-minute cadence. Timezone prefixes such as `TZ` and `CRON_TZ` are not supported.
    - `is_enabled` boolean, required
    - `is_starred` boolean
    - `is_read_only` boolean, required
    - `is_public` boolean
    - `unique_organization_id` string, nullable
    - `has_async_steps` boolean
    - `created_at` string, date-time
    - `updated_at` string, date-time
    - `deployed_version` integer, nullable
    - `tags` ApiWorkflowsListPostResponsesContentApplicationJsonSchemaResultsItemsTagsItems[]
      - `id` string, required
      - `name` string, required
      - `color` string, nullable
      - `created_at` string, date-time
      - `updated_at` string, date-time
    - `editor` ApiWorkflowsListPostResponsesContentApplicationJsonSchemaResultsItemsEditor
      - `id` union
        - integer
        - string
      - `email` string, email
      - `name` string
      - `username` string
      - `first_name` string
      - `last_name` string

## Other responses

- `400` — Invalid request.
- `401` — Authentication failed.

---

[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/revisions/4e064cf81dae/schema)
