---
title: "List flows"
method: GET
path: "/flows"
tags: ["Flows"]
---

# List flows

`GET /flows`

## Request

- Base URL: `https://api.privy.com/v1`
- URL: `https://api.privy.com/v1/flows`
- Auth: HTTP bearer

Retrieve a paginated list of your automation flows, including each flow's trigger and steps.
Use `GET /v1/flows/{id}` for a flow's full configuration — entry frequency,
flow filters, exit criteria, and the node branch graph.

Configuration only — no performance, and no membership. Flow results and
the live enrollment count both come from `/v1/reports/flows`, which lists
every flow, so pair the two rather than expecting stats here.

**Required scope:** `flows_read`

## Query parameters

- `page` integer
- `per_page` integer
- `status` 'draft' | 'active' | 'inactive'

## Headers

- `Privy-Account-Id` string

## Response `200`

A paginated list of flows.

- object
  - `data` Flow[]
    - `id` string: Stable, unique identifier for the flow. Use this value in `/v1/flows/{id}`.
    - `title` string, nullable
    - `status` 'draft' | 'active' | 'inactive'
    - `trigger_type` string, nullable: Normalized name of the event that starts the flow — e.g. `order_placed`, `order_delivered`, `cart_abandoned`, `checkout_abandoned`, `browse_abandoned`, `back_in_stock`, `date_triggered`, `customer_subscribed_to_marketing`, `customer_tag_added`, `customer_tag_removed`, `flow_completed`. `order_placed` is the one name for the per-platform order events (Shopify, BigCommerce, Wix, and the public API) and `order_delivered` renames the order-received event; every other trigger passes through as stored, so integration and custom API event names (`api_event:...`) appear here verbatim. Platform availability: `browse_abandoned` and `back_in_stock` currently fire for Shopify stores only — the underlying product-view and inventory signals aren't collected for other platforms, so a flow using one of these triggers on a non-Shopify business will never enroll a contact. `checkout_abandoned` and `cart_abandoned` are available on both Shopify and BigCommerce. Shopify checkout starts come from the Web Pixel, so the pixel must hold the scopes that track them; BigCommerce checkout starts are captured when the Privy widget loads on the standard Optimized One-Page Checkout, so custom or headless BigCommerce checkouts produce no event and never enroll a contact.
    - `trigger_label` string, nullable: Human-readable form of `trigger_type`.
    - `nodes` FlowNode[]: The flow's steps, from its current version.
      - `uuid` string
      - `type` 'email' | 'sms' | 'delay' | 'split' | 'ab_test' | 'tag' | 'update_contact'
      - `name` string
    - `sync_coupons` boolean: Whether the flow uses one shared coupon: when true, a single coupon is set at the flow level and applied to every email and SMS node in every version of the flow, including nodes added later. When false, coupons are attached to individual nodes by hand and nothing is propagated.
    - `last_transition_at` string, date-time, nullable: When the flow last changed status.
  - `pagination` PaginationEnvelope
    - `page` integer
    - `per_page` integer
    - `total_count` integer
    - `total_pages` integer

## Other responses

- `401`: Missing or invalid bearer token.
- `403`: `insufficient_scope` when the token lacks the required scope for this endpoint.
- `422`: One or more fields failed validation.
- `429`: Rate limit exceeded. Retry after the specified time.

## Changes

- **2026-11-05** `cf0885e90d5a`: 8 warning
  - added the new `forbidden` enum value to the `error/code` response property for the response status `401`
  - added the new `forbidden` enum value to the `error/code` response property for the response status `403`
  - added the new `forbidden` enum value to the `error/code` response property for the response status `422`
  - added the new `forbidden` enum value to the `error/code` response property for the response status `429`
  - …4 more
- **2026-11-03** `fe500ab59b3b`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/privy/apis/privy-api/changes/flows/get.md)

---

[API](https://skmtc.dev/privy/apis/privy-api.md) - [All operations](https://skmtc.dev/privy/apis/privy-api/llms.txt) - [OpenAPI document](https://skmtc.dev/privy/apis/privy-api/revisions/bc29b48dcdd2?raw)
