Get a flow
Changed onRetrieve a single flow by its identifier, including its full configuration: re-entry behavior, flow filters, effective exit behavior, a server-generated behavior summary, and the node tree — each step's configuration (data) plus the branch graph, with split conditions and the nodes on each branch.
exit_behavior and reentry state the engine's effective semantics directly: exits end only journeys already in progress (the enrolling event never triggers them), and reentry.mode says explicitly whether and when a contact can go through again. Trust these fields and behavior_summary over inferences from the node structure.
Required scope: flows_read
Request
- Base URLhttps://api.privy.com/v1
- AuthHTTP bearer
Path parameters
The flow's unique identifier (returned as id in flow responses). Ids are opaque public strings — a numeric id from a Privy dashboard URL is not a valid API id and will 404; list flows and match by title instead.
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
The flow.
Example response
{
"data": {
"id": "Vq7L3mN9xR",
"title": "Abandoned Cart Recovery",
"status": "active",
"trigger_type": "cart_abandoned",
"trigger_label": "Cart abandoned",
"nodes": [
{
"uuid": "6f1e8d0a-4b2c-4c1d-9a3e-2f5b7c8d9e0f",
"type": "email",
"name": "Welcome email",
"next_uuid": "7a2f9e1b-5c3d-4d2e-8b4f-3a6c8d9e0f1a",
"yes_next_uuid": "7a2f9e1b-5c3d-4d2e-8b4f-3a6c8d9e0f1a",
"no_next_uuid": "9c4d1a3e-7e5f-4f4a-8d6b-5c8e0f1a2b3c",
"a_next_uuid": "7a2f9e1b-5c3d-4d2e-8b4f-3a6c8d9e0f1a",
"b_next_uuid": "9c4d1a3e-7e5f-4f4a-8d6b-5c8e0f1a2b3c",
"data": {
"delay_unit": "hours",
"delay_unit_count": 1
}
}
],
"last_transition_at": "2026-06-01T12:00:00Z",
"reentry": {
"mode": "after_delay",
"frequency": 30,
"unit": "days"
},
"flow_filters": {
"operation": "AND",
"conditions": [
{
"property": "segment",
"operator": "contains",
"type": "array",
"value": [
"Nk2P5rW8yU"
]
}
]
},
"exit_behavior": {
"exit_events": [
"order_placed",
"order_delivered"
],
"summary": "After enrollment, a subsequent order placed or order delivered event ends the journey early. The event that enrolled the contact never triggers this exit."
},
"behavior_summary": "A contact enrolls when the \"Cart abandoned\" event occurs. The flow has 2 message steps. A subsequent order placed or order delivered event ends an active journey early; the event that enrolled the contact never triggers this exit. A contact can re-enter 30 days after their previous journey ends; no setting ever runs two journeys at once."
}
}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