List workflows

<Info>This API is in beta. Endpoints, fields, and behavior may still change, so avoid depending on it in production.</Info>

Returns the app's workflows.

Archived workflows are left out unless you set include_archived. Use limit and offset to page through the results.

Passing file_keys switches this to a lookup by file name and ignores limit and offset entirely, returning every match. That is the only way to fetch more than 200 workflows in one call, and it is meant for resolving names you already hold rather than for paging.

The response omits each workflow's definition. Get a single workflow with Get workflow when you need the definition.

<Warning>The response includes fields beyond the ones documented here. Don't rely on undocumented response fields, as they can change at any time.</Warning>

get/api/apps/{app_id}/workflows

Path parameters

app_idstring required

ID of the app whose workflows you want to work with.

ID of the app whose workflows you want to work with.

Query parameters

include_archivedboolean

Include archived workflows in the results.

Include archived workflows in the results.

limitinteger

Most workflows to return.

Most workflows to return.

offsetinteger

How many workflows to skip, for paging.

How many workflows to skip, for paging.

file_keysstring[] nullable

Look workflows up by their file name instead of paging. Repeat the parameter for several. At most 50, each at most 256 characters and free of path separators.

Look workflows up by their file name instead of paging. Repeat the parameter for several. At most 50, each at most 256 characters and free of path separators.

Response

The app's workflows.

idstring required

ID of the workflow.

app_idstring required

ID of the app the workflow belongs to.

file_keystring nullable

Name of the workflow's file in the app's code.

namestring required

Name of the workflow.

descriptionstring nullable

What the workflow is for.

statusstring required

Whether the workflow runs: active, inactive, or archived. See Workflow status for what each means and how it changes.

status_reasonstring nullable

Why Base44 changed the workflow's status on its own, as one of consecutive_failures, end_condition_reached, migration_activation_failed, or workflows_not_available. This is null when you changed the status yourself. See Workflow status for what each code means.

triggerobject

What starts the workflow. The trigger sits under config, keyed by trigger_type.

total_runsinteger

Runs the workflow has started, ever.

consecutive_failuresinteger

Runs that have failed in a row.

last_run_atstring date-time nullable

When the workflow last started running, as an ISO 8601 UTC timestamp. This is null before its first run.

last_run_statusstring nullable

How the workflow's most recent run ended: success, failed, or cancelled. This is null before the first run. See Workflow status for how this compares to a run's own status.

created_datestring date-time nullable

When the workflow was created, as an ISO 8601 UTC timestamp.

Example response

[
  {
    "id": "68b1c0d4e7b91d003c45a1f2",
    "app_id": "6820f3a4e7b91d003c45a1f2",
    "file_key": "email-me-new-signups",
    "name": "Email me new signups",
    "description": "Sends an email whenever a User record is created.",
    "status": "active",
    "status_reason": "consecutive_failures",
    "trigger": {
      "config": {
        "cron_expression": "0 9 * * *",
        "timezone": "UTC",
        "trigger_type": "scheduled"
      }
    },
    "total_runs": 48,
    "last_run_at": "2026-08-25T09:12:44Z",
    "last_run_status": "success",
    "created_date": "2026-07-02T11:04:00Z"
  }
]

Changes

Changed in 1 of the 14 revisions of this API.1