Search Flows
This API returns a paginated list of flows matching your filters. Send filters in the
request body — all are optional and combine with AND. Multi-valued filters (status,
delivery_type, tags) match ANY of the supplied values, and archived flows are excluded
unless include_archived is true.
Each response includes a next_cursor. To get the next page, send that value as the
cursor in your next request. Sorting is not supported in this version; results are
returned most recent first. Your API key must have the campaigns:view permission (see
Authentication).
Rate Limits
The rate limits are at the workspace level. A maximum of 10 requests per second, 100 requests per minute, and 6,000 requests per hour are allowed per workspace.Authorizations
Authentication is done via Basic Auth. This requires a base64-encoded string of your credentials in the format 'username:password'.
- Username: Use your MoEngage workspace ID (also known as the App ID). You can find it in the MoEngage dashboard at Settings > Account > APIs > Workspace ID (earlier app id).
- Password: On your MoEngage workspace, navigate to Settings → Account → API keys and click Create new key. The tab lists every API surface (Data, Segmentation, Push, Email, Campaigns, Templates, and more) and exposes per-resource actions. Flows reuse the Campaigns permissions — ensure the View checkbox (for the read endpoints) and the Create & Manage checkbox (for Update Flow Status) are selected.
For more information on authentication and getting your credentials, refer to Getting your credentials.
Send the value in the Authorization header as Basic followed by Base64-encoding of appkey:apisecret (workspace ID and API key).
Headers
Identifies the tenant/workspace making the request. Optional — when omitted, the workspace is resolved from the Basic Auth credentials in the Authorization header.
Client-supplied trace ID. The server echoes it in the X-MOE-Request-Id response header and in response_id. If you omit it, the server generates one.
Body
Filters for listing flows. All filters are optional and combine with AND. Enum filters (status, delivery_type) are case-insensitive.
Optional if supplied via the X-MOE-Request-Id header; echoed in response_id.
Keeps only flows whose status is in this set.
Public lifecycle status of a flow (or of a specific version), independent of the archived flag.
DRAFT, ACTIVE, SCHEDULED, PAUSED, STOPPED, COMPLETED, RETIRED, UNDER_REVIEW, REJECTED Keeps only flows that have one of these delivery types.
Indicates how users enter the flow.
ONE_TIME, PERIODIC, ON_FLOW_EXIT, EVENT_TRIGGERED, BUSINESS_EVENT_TRIGGERED The tag names to match; flows that carry any of them are kept.
Team names. Required when the Flows-teams feature is enabled for the workspace — omitting it or sending an empty list returns 400 VALIDATION_FAILED ("teams is required when the team feature is enabled"). When the feature is off, sending teams is rejected with 400.
Matches flows whose name contains this text, case-insensitively.
The email addresses of the flow creators to filter by.
The inclusive lower bound on the creation time, in ISO 8601 UTC format.
"2025-01-01T00:00:00Z"
The inclusive upper bound on the creation time, in ISO 8601 UTC format. It must be on or after creation_start_time.
"2026-12-31T23:59:59Z"
false (default) excludes archived flows; true returns both archived and non-archived.
The number of results returned per page.
1 <= x <= 100The cursor from a previous page's next_cursor. Omit for the first page.