*MCP › Reference › Platform › Workflows*

# List workflows

> Returns the workflows of the account with how each one starts and, for manual ones, the run form: the fields `POST /api/v1/workflows/{workflowId}/runs` requires in `payload`, read from the published version.

It emits no definition. Administrators only. Sorted by name.

TOOL `filmo_workflows_list` · `workflows:read` · 120/min · Server annotation: Read-only · Server annotation: Idempotent

## Arguments

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `limit` | integer | No | Page size (1-500). Defaults to 50. = `50` |
| `cursor` | string | No | Opaque cursor of the page to return. Pass the value of `pagination.nextCursor` from the previous response; treat it as opaque. |
| `sort` | string | No | Sort order: up to 3 comma-separated fields, each with a leading "-" for descending (e.g. "-updatedAt,name"). Sortable fields: name, isActive, triggerType, createdAt, updatedAt. Defaults to "name". Ties are broken by id, so the order is stable across pages, and a cursor is bound to the sort it was issued with. |
| `isActive` | boolean | No | Filter by whether the workflow is active (true) or paused (false). |
| `triggerType` | string | No | Filter by how the workflow starts: manual, schedule, webhook, event, signal or entity. `manual`, `schedule`, `webhook`, `event`, `signal`, `entity` |
| `triggerTypes` | string[] | No | Filter by triggerType, as a list: repeat the parameter or separate the values with commas. Accepts up to 50 values and returns whatever matches any of them. `manual`, `schedule`, `webhook`, `event`, `signal`, `entity` |
| `includeTotal` | boolean | No | Set it to true to include `pagination.total`, the number of results that match the filters across all pages. Off by default. = `false` |
| `dateFilters` | object | No | Date filters by field. A bare day (YYYY-MM-DD) is read in the business timezone; an ISO 8601 instant with offset is applied as is by gte, lte, gt and lt, while on widens it to the whole business day that contains it. Fields: created, updated. |
| `dateFilters.created` | object | No |  |
| `dateFilters.created.gte` | string | No | From this day or instant, inclusive. |
| `dateFilters.created.lte` | string | No | Up to this day or instant, inclusive. |
| `dateFilters.created.gt` | string | No | Strictly after; a bare day means after the end of that day. |
| `dateFilters.created.lt` | string | No | Strictly before; a bare day means before the start of that day. |
| `dateFilters.created.on` | string | No | Exactly that day; an instant means the whole business day that contains it. |
| `dateFilters.updated` | object | No |  |
| `dateFilters.updated.gte` | string | No | From this day or instant, inclusive. |
| `dateFilters.updated.lte` | string | No | Up to this day or instant, inclusive. |
| `dateFilters.updated.gt` | string | No | Strictly after; a bare day means after the end of that day. |
| `dateFilters.updated.lt` | string | No | Strictly before; a bare day means before the start of that day. |
| `dateFilters.updated.on` | string | No | Exactly that day; an instant means the whole business day that contains it. |

## Result

On success the result carries `structuredContent` with `data` and `meta`. These are the attributes of `data`.

| Name | Type | Description |
| --- | --- | --- |
| `id` | string | Unique identifier of the workflow. |
| `name` | string | Workflow name. |
| `isActive` | boolean | true when the workflow is active; false when it is paused. |
| `archivedAt` | string<date-time> | Date it was archived in ISO 8601 UTC; null if it is not archived. |
| `trigger` | object | How the workflow starts and, if manual, what it asks for. |
| `trigger.type` | string | How the workflow starts: manual (a person or the API runs it), schedule (cron), webhook (an incoming request), event (something happens in Filmo), signal (another workflow) or entity (run from the page of a record). Null if it has no published version. `manual`, `schedule`, `webhook`, `event`, `signal`, `entity` |
| `trigger.event` | string | For `event` triggers, the Filmo event it listens to; null otherwise. |
| `trigger.entity` | string | For `entity` triggers, the entity type it runs on; null otherwise. |
| `trigger.form` | object[] | For `manual` triggers, the run form: every field listed is REQUIRED in `payload` when calling [`POST /api/v1/workflows/{workflowId}/runs`](https://docs.filmo.io/rest-api/endpoint-reference/workflows/run-a-workflow). Empty when the workflow asks nothing. |
| `trigger.form.name` | string | Key of the field in `payload` when running the workflow. |
| `trigger.form.label` | string | Label shown to the person who runs it. |
| `trigger.form.type` | object<string, any> | Declared type of the value, in the workflow type language: `{"type":"string"}`, `{"type":"number"}`, `{"type":"boolean"}`, `{"type":"date","mode":"date"\|"datetime"}`, `{"type":"enum","options":[{"value","label"}]}`, `{"type":"shape","shape":[{"key","label","value":<type>}]}`, `{"type":"list","item":<type>}`, `{"type":"record","value":<type>}` or `{"type":"tuple","tuple":[<type>]}`. The value sent in `payload` is validated against it. |
| `currentVersion` | object | The published version, which is the one that runs and the one the run form is read from; null when the workflow has never been saved. |
| `currentVersion.version` | integer | Number of the published version. |
| `currentVersion.createdAt` | string<date-time> | When it was published, in ISO 8601 UTC. |
| `createdAt` | string<date-time> | Creation date in ISO 8601 UTC. |
| `updatedAt` | string<date-time> | Last modification date in ISO 8601 UTC. |

*Call · filmo_workflows_list*

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "filmo_workflows_list",
    "arguments": {
      "limit": 20
    }
  }
}
```

*Result (generated from the schema)*

```json
{
  "structuredContent": {
    "data": [
      {
        "id": "id_8f2a1c",
        "name": "Example",
        "isActive": true,
        "archivedAt": "2026-09-01T08:00:00Z",
        "trigger": {
          "type": "manual",
          "event": "<event>",
          "entity": "<entity>",
          "form": [
            {
              "name": "Example",
              "label": "Example",
              "type": {
                "key": "<key>"
              }
            }
          ]
        },
        "currentVersion": {
          "version": 1,
          "createdAt": "2026-09-01T08:00:00Z"
        },
        "createdAt": "2026-09-01T08:00:00Z",
        "updatedAt": "2026-09-01T08:00:00Z"
      }
    ],
    "pagination": {
      "nextCursor": "eyJvIjo1MH0",
      "hasMore": true,
      "total": 1
    },
    "meta": {
      "rateLimit": {
        "limit": 120,
        "remaining": 119,
        "reset": 42
      }
    }
  }
}
```

## Sample prompts

*Prompt*

```text
Which workflows can I run from here?
```

## The same operation by REST

This tool runs [`GET /api/v1/workflows`](https://docs.filmo.io/rest-api/endpoint-reference/workflows/list-workflows).

---

Canonical URL: https://docs.filmo.io/mcp/tools/workflows/filmo-workflows-list  
Last updated: 2026-10-25