List flow performance
Changed onRank your flows by performance over a period — best performers first, remaining flows by recency. Each row combines email and SMS stats across the flow's message steps. Use /v1/reports/flows/{flow_id} for one flow's report including the per-node message breakdown.
Every flow with the requested status is listed, quiet ones included — unlike the display and campaign leaderboards nothing is dropped for having no activity, so this doubles as a performance-annotated flow inventory. A flow's configuration is /v1/flows/{id}.
Required scope: reports_read
Request
- Base URLhttps://api.privy.com/v1
- AuthHTTP bearer
Query parameters
The date range to report over, resolved in the account's time zone. Pass custom together with start_date and end_date.
Inclusive start of a custom period (ISO 8601 date). Required when period=custom, ignored otherwise.
Inclusive end of a custom period (ISO 8601 date). Required when period=custom, ignored otherwise. Custom periods are capped at 366 days.
Only include flows with this status. Any other value is rejected.
Page number (starts at 1).
Flows per page. Values above 25 are clamped to 25; omitted or invalid values default to 10.
Headers
Target a subaccount instead of the main connected account. Pass a subaccount id from get_account's subaccounts list. Only direct subaccounts of the connected account are reachable — omit this for the main account itself.
Response
Flows ranked by performance over the resolved period.
Example response
{
"data": [
{
"flow_id": "Vq7L3mN9xR",
"title": "Abandoned Cart Recovery",
"status": "active",
"trigger_type": "cart_abandoned",
"trigger_label": "Cart abandoned",
"channels": "multi",
"current_enrollment": {
"value": 42,
"unit": "count"
},
"stats": {
"sent": {
"value": 42,
"unit": "count"
},
"delivered": {
"value": 42,
"unit": "count"
},
"opened": {
"value": 42,
"unit": "count"
},
"clicked": {
"value": 42,
"unit": "count"
},
"open_rate": {
"value": 42,
"unit": "count"
},
"click_rate": {
"value": 42,
"unit": "count"
},
"attributed_orders": {
"value": 42,
"unit": "count"
},
"attributed_revenue": {
"value": 42,
"unit": "count"
},
"order_rate": {
"value": 42,
"unit": "count"
},
"average_order_value": {
"value": 42,
"unit": "count"
},
"unsubscribed": {
"value": 42,
"unit": "count"
},
"bounced": {
"value": 42,
"unit": "count"
},
"sms_opted_out": {
"value": 42,
"unit": "count"
},
"sms_failed": {
"value": 42,
"unit": "count"
}
}
}
],
"period": {
"label": "last_30_days",
"start_date": "2026-06-21",
"end_date": "2026-07-20"
},
"pagination": {
"page": 1,
"per_page": 25,
"total_count": 142,
"total_pages": 6
}
}Changes
- warning
added the new
forbiddenenum value to the/response property for the response status - warning
added the new
forbiddenenum value to the/response property for the response status - warning
added the new
forbiddenenum value to the/response property for the response status - warning
added the new
forbiddenenum value to the/response property for the response status - warning
added the new
segment_builder_requiredenum value to the/response property for the response status - warning
added the new
segment_builder_requiredenum value to the/response property for the response status - warning
added the new
segment_builder_requiredenum value to the/response property for the response status - warning
added the new
segment_builder_requiredenum value to the/response property for the response status
- warning
- info
endpoint added
- info