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.

GET
/api/v1/workflows

Request examples

curl https://app.filmo.io/api/v1/workflows \
  --header "Authorization: Bearer $FILMO_API_KEY"
{
  "data": [
    {
      "id": "workflow_9f3a2b",
      "name": "Example workflow",
      "isActive": true,
      "archivedAt": "2026-09-01T08:00:00.000Z",
      "trigger": {
        "type": "manual",
        "event": "Example event",
        "entity": "Example entity",
        "form": [
          {
            "name": "Example form",
            "label": "Main",
            "type": {
              "example": "example"
            }
          }
        ]
      },
      "currentVersion": {
        "version": 1,
        "createdAt": "2026-09-01T08:00:00.000Z"
      },
      "createdAt": "2026-09-01T08:00:00.000Z",
      "updatedAt": "2026-09-01T08:00:00.000Z"
    }
  ],
  "pagination": {
    "nextCursor": "eyJvIjoyMH0",
    "hasMore": true,
    "total": 1
  }
}

Generated from the schema

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

Authorizations

Bearer API key with the scope below. workflows:read

Query parameters

limitintegerdefault:50

Page size (1-500). Defaults to 50.

Limits: min 1, max 500

cursorstring

Opaque cursor of the page to return. Pass the value of pagination.nextCursor from the previous response; treat it as opaque.

Limits: max length 200

createdOnstring

The creation date of the resource falls on this date. A bare day (YYYY-MM-DD, read in the business timezone) or an ISO 8601 instant with offset.

Limits: pattern ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?(Z|[+-]\d{2}(:?\d{2})?))?$

createdAfterstring

The creation date of the resource is after this date. A bare day (YYYY-MM-DD, read in the business timezone) or an ISO 8601 instant with offset.

Limits: pattern ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?(Z|[+-]\d{2}(:?\d{2})?))?$

createdBeforestring

The creation date of the resource is before this date. A bare day (YYYY-MM-DD, read in the business timezone) or an ISO 8601 instant with offset.

Limits: pattern ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?(Z|[+-]\d{2}(:?\d{2})?))?$

createdFromstring

The creation date of the resource is on or after this date. A bare day (YYYY-MM-DD, read in the business timezone) or an ISO 8601 instant with offset.

Limits: pattern ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?(Z|[+-]\d{2}(:?\d{2})?))?$

createdTostring

The creation date of the resource is on or before this date. A bare day (YYYY-MM-DD, read in the business timezone) or an ISO 8601 instant with offset.

Limits: pattern ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?(Z|[+-]\d{2}(:?\d{2})?))?$

updatedOnstring

The last update date of the resource falls on this date. A bare day (YYYY-MM-DD, read in the business timezone) or an ISO 8601 instant with offset.

Limits: pattern ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?(Z|[+-]\d{2}(:?\d{2})?))?$

updatedAfterstring

The last update date of the resource is after this date. A bare day (YYYY-MM-DD, read in the business timezone) or an ISO 8601 instant with offset.

Limits: pattern ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?(Z|[+-]\d{2}(:?\d{2})?))?$

updatedBeforestring

The last update date of the resource is before this date. A bare day (YYYY-MM-DD, read in the business timezone) or an ISO 8601 instant with offset.

Limits: pattern ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?(Z|[+-]\d{2}(:?\d{2})?))?$

updatedFromstring

The last update date of the resource is on or after this date. A bare day (YYYY-MM-DD, read in the business timezone) or an ISO 8601 instant with offset.

Limits: pattern ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?(Z|[+-]\d{2}(:?\d{2})?))?$

updatedTostring

The last update date of the resource is on or before this date. A bare day (YYYY-MM-DD, read in the business timezone) or an ISO 8601 instant with offset.

Limits: pattern ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?(Z|[+-]\d{2}(:?\d{2})?))?$

sortstring

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.

Limits: max length 200

isActiveboolean

Filter by whether the workflow is active (true) or paused (false).

triggerTypestring

Filter by how the workflow starts: manual, schedule, webhook, event, signal or entity.

Available options: manual, schedule, webhook, event, signal, entity

triggerTypesstring[]

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.

Available options: manual, schedule, webhook, event, signal, entity

Limits: min 1 items, max 50 items

includeTotalbooleandefault:false

Set it to true to include pagination.total, the number of results that match the filters across all pages. Off by default.

Response

application/json

Successful response.

Response schema: WorkflowDto

Envelope: WorkflowList. meta.warnings is present only when the operation is deprecated.

Headers: X-Request-Id · RateLimit-Limit · RateLimit-Remaining · RateLimit-Reset

dataobject[]

Show child attributes
data.idstring

Unique identifier of the workflow.

data.namestring

Workflow name.

data.isActiveboolean

true when the workflow is active; false when it is paused.

data.archivedAtstring<date-time> | null

Date it was archived in ISO 8601 UTC; null if it is not archived.

data.triggerobject

How the workflow starts and, if manual, what it asks for.

Show child attributes
data.trigger.typestring | null

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.

Available options: manual, schedule, webhook, event, signal, entity

data.trigger.eventstring | null

For event triggers, the Filmo event it listens to; null otherwise.

data.trigger.entitystring | null

For entity triggers, the entity type it runs on; null otherwise.

data.trigger.formobject[]

For manual triggers, the run form: every field listed is REQUIRED in payload when calling POST /api/v1/workflows/{workflowId}/runs. Empty when the workflow asks nothing.

Show child attributes
data.trigger.form.namestring

Key of the field in payload when running the workflow.

data.trigger.form.labelstring

Label shown to the person who runs it.

data.trigger.form.typeobject<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.

data.currentVersionobject | null

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.

Show child attributes
data.currentVersion.versioninteger

Number of the published version.

data.currentVersion.createdAtstring<date-time>

When it was published, in ISO 8601 UTC.

data.createdAtstring<date-time>

Creation date in ISO 8601 UTC.

data.updatedAtstring<date-time>

Last modification date in ISO 8601 UTC.

paginationobject

Opaque-cursor pagination metadata.

Show child attributes
pagination.nextCursorstring | null

Opaque cursor of the next page; null when there are no more results. Pass it as cursor in the next request.

pagination.hasMoreboolean

Whether more results exist beyond this page.

pagination.totalinteger

Number of results matching the filters across all pages. Present only when the request sets includeTotal=true.

Limits: min 0

metaobject

Additional information about the response.

Show child attributes
meta.warningsobject[]

Lifecycle warnings; present only when the operation is deprecated.

Show child attributes
meta.warnings.codestring

Stable warning code.

Available options: deprecated

meta.warnings.messagestring

For people: what is deprecated, until when, and what to use.

meta.warnings.sunsetstring

Day (YYYY-MM-DD) the operation stops being served.

meta.warnings.replacementstring | null

operationId of the operation to use instead, or null if there is none.

Errors

StatusCodesMeaning
400validation_errorMalformed query or body. errors[] lists every offending field with its stable code.

401, 403, 429, 500 can be returned by any operation. Errors

Deprecation

This operation is not deprecated. Deprecations are announced with a Deprecation header and a sunset date. Versioning policy

  • Platform

    Workflow

    Automation of the account.