View journey stats
Retrieve performance stats for a single journey, including journey-level counts, per-node counts, per-branch counts, and channel delivery stats.
Overview
Retrieve performance stats for a single Journey by its UUID. The response has four parts:- Journey-level counts:
started,completed, andexited_early. - A
nodesmap of per-node counts, keyed by nodeid. - A
branchesmap of per-branch counts, keyed by branchid. - A
message_statsobject on each message-sending node with that channel’s delivery stats.
id to pair each count with the node or branch it describes.How to use this API
Authenticate with your App API Key. The authenticated key must have permission to view journeys. Find a journey’sid from the View journeys API or in the dashboard URL when viewing the journey.
200 OK. Channel keys live under message_stats.totals, not on message_stats itself:
Journey-level counts
draft returns the endpoint’s normal shape with zeroed counts.
Node stats
nodes is an object keyed by node id, not an array. Every node in the graph is included, at any nesting depth, so nodes nested inside a branching node’s branches appear as top-level entries in this map alongside their parent.
Branch stats
branches is an object keyed by branch id, covering the branches of every split_range, yes_no, and wait_until node. Each entry has a single field, completed, counting the users who took that branch. The map is empty for a journey with no branching nodes.
Message stats by channel
message_stats is present on send_push, send_email, send_sms, send_iam, and send_webhook nodes only. Its totals keys depend on the channel. The Dashboard term column below is the label the same metric carries in the dashboard, so you can look it up in the metrics glossary.
- Push
- Email
- SMS
- In-app message
- Webhook
failed means unsubscribed and its errored means delivery errors. This endpoint uses the plain names instead, so failed here is the dashboard’s Failed.Reconciling the counts
waiting, completed, and exited_early are separate buckets on each node, so a user is counted in exactly one of them per node. A node’s completed therefore excludes users who exited early from it, and users still held at the node are not counted as completed.
Node counts do not have to sum to the journey-level counts. started counts journey entries, while a user can pass through many nodes, and a re-entering user is counted again on each pass.
Error responses
{ "errors": [{ "code", "title", "meta" }] }.Headers
Your App API key with prefix Key. See Keys & IDs.
Path Parameters
Your OneSignal App ID in UUID v4 format. See Keys & IDs.
UUID of the journey to retrieve stats for.
Response
200
Journey-level counts plus flat, id-keyed maps of node and branch stats. Contains no definition detail; join it by id against the journey from View journey.
UUID of the journey these stats belong to.
Users who entered the journey.
Users who reached the end of the journey normally.
Users who left the journey through an early exit rule.
Node stats keyed by node id. Includes every node in the graph, at any nesting depth.
Branch stats keyed by branch id. Empty for a journey with no branching nodes.