Reports

List flow performance

Changed on

Rank 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

get/reports/flows

Request

  • Base URL
    https://api.privy.com/v1
  • Auth
    HTTP bearer

Query parameters

period'last_7_days' | 'last_30_days' | 'last_90_days' | 'this_month' | 'last_month' | 'custom'

The date range to report over, resolved in the account's time zone. Pass custom together with start_date and end_date.

start_datestring date

Inclusive start of a custom period (ISO 8601 date). Required when period=custom, ignored otherwise.

end_datestring date

Inclusive end of a custom period (ISO 8601 date). Required when period=custom, ignored otherwise. Custom periods are capped at 366 days.

status'draft' | 'active' | 'inactive'

Only include flows with this status. Any other value is rejected.

pageinteger

Page number (starts at 1).

per_pageinteger

Flows per page. Values above 25 are clamped to 25; omitted or invalid values default to 10.

Headers

Privy-Account-Idstring

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 forbidden enum value to the / response property for the response status

    • warning

      added the new forbidden enum value to the / response property for the response status

    • warning

      added the new forbidden enum value to the / response property for the response status

    • warning

      added the new forbidden enum value to the / response property for the response status

    • warning

      added the new segment_builder_required enum value to the / response property for the response status

    • warning

      added the new segment_builder_required enum value to the / response property for the response status

    • warning

      added the new segment_builder_required enum value to the / response property for the response status

    • warning

      added the new segment_builder_required enum value to the / response property for the response status

    • info

      endpoint added