Workflows
Workflows API
List workflows
GET /orgs/{organizationId}/workflowsQuery Parameters:
limit(optional): Number of results (default: 20)cursor(optional): Pagination offsetorderBy(optional): Field to sort by (default:created_at, newest first)all(optional): Set to"true"to list every workflow in the organization (requires Admin/Owner role)status(optional):draftorpublishedq(optional): Search string matched against name and descriptiontriggerType(optional): Only workflows whose trigger has this type, for examplemanualslug(optional, withall=true): Only your organization’s workflow with this slug; public workflows of other organizations are not matchedfields(optional): Set tosummaryto leave each workflow’sdefinitionout of the rows
By default, this endpoint returns only the workflows you created. Admins and Owners can use
all=true to list every workflow in the organization.A full row carries the workflow’s definition, which can run to tens of
kilobytes. A response is capped at 6 MB, so a large page of full rows can fail.
Use fields=summary when you only need to find a workflow by slug, name or
status, and fetch the definition of the one you want with
GET /orgs/{organizationId}/workflows/{workflowId}. Any other fields value
answers 400 with invalid_field.
Response (fields=summary):
{
"items": [
{
"workflowId": "7c1d44f0-3333-4d22-8c9f-222222222222",
"organizationId": "org-456",
"slug": "nightly-sync",
"name": "Nightly sync",
"description": "Pulls yesterday's orders",
"status": "published",
"visibility": "private",
"creatorUserId": "user-789",
"installedByModuleId": null,
"createdAt": "2026-01-01T00:00:00Z",
"updatedAt": "2026-01-02T00:00:00Z"
}
],
"totalRows": 1,
"offset": 0
}Without fields, rows owned by your organisation also carry definition. Public workflows owned by another organisation omit definition in both list responses and single-workflow reads.