Multi-step automated flows with their nodes and stats. These are the only routes that reject unknown body keys outright, and the only ones that answer with the structured {"errors": [...]} envelope.
List journeys
Journey summaries for one app, newest ids last. Filter with state, page
with cursor (a keyset walk on the primary key); limit is capped at 1000. Errors on this
route are returned as a {"errors": [...]} envelope with a machine-readable code.
path Parameters
app_idquery Parameters
statelimitcursorList journeys › Responses
Journey summaries, has_more, and a next_cursor when there is one
Create a journey
Creates a journey in the draft state. Only name, description and the
definition fields (audience, nodes, early_exit, reentry_rules, schedule, goal,
objective, personalization)
are accepted — any other key, including a server-controlled one, is refused and named back
to you. Node ids are assigned by the server; supplying your own is an error.
A draft may still have gaps a live journey could not have, so validation here is the draft
ruleset, not the start-up one. Errors use the {"errors": [...]} envelope.
path Parameters
app_idCreate a journey › Request Body
Journey entry audience definition.
Operator-facing description.
Rules that remove a user before the journey ends.
Conversion goal.
Journey display name.
Journey graph nodes; ids are assigned by the server.
Versioned correlated success event for read-only personal decisions. Separate from aggregate goal metrics.
Bounded personal decision settings and optional experiment configuration.
Whether and when a user may enter again.
Start/end schedule.
Create a journey › Responses
The created journey, including the concurrency_key needed to update it
Update personal journey settings
path Parameters
app_idUpdate personal journey settings › Request Body
Allow runtime model calls using workspace provider configuration.
Bounded hourly_calls, daily_tokens, concurrency, deadline_seconds, daily_cost_limit, estimated_usd_per_million_tokens and history_days overrides.
Enable or park personal journeys; disabling cancels unsent actions.
Acknowledge review of shadow decisions before controlled live AI.
Update personal journey settings › Responses
Successful Response
Retrieve a journey
The full journey definition — audience, nodes, schedule, goal, exit and
reentry rules. The response carries a concurrency_key; PATCH requires it, so read
before you write.
path Parameters
app_idjourney_idRetrieve a journey › Responses
The journey definition and its current concurrency_key
Delete a journey
Deletes a journey. Whether a journey in a given state may be deleted is
decided by the journey engine; a refusal comes back in the {"errors": [...]} envelope
with 400.
path Parameters
app_idjourney_idDelete a journey › Responses
Confirmation that the journey was deleted
Update a journey
A merge patch over the journey definition: keys you send replace what is
there, and an explicit null removes a key. state moves the journey along its allowed
transitions.
A matching concurrency_key is required in the body. If the journey changed since you
read it the patch is refused with 409 and nothing is written — refresh and retry.
path Parameters
app_idjourney_idUpdate a journey › Request Body
concurrency_keyValue from the latest journey read; prevents lost updates.
Journey entry audience definition.
Operator-facing description.
Rules that remove a user before the journey ends.
Conversion goal.
Journey display name.
Journey graph nodes; ids are assigned by the server.
Versioned correlated success event for read-only personal decisions. Separate from aggregate goal metrics.
Bounded personal decision settings and optional experiment configuration.
Whether and when a user may enter again.
Start/end schedule.
Requested lifecycle transition.
Update a journey › Responses
The updated journey definition
Update a journey node
A merge patch over one node of a journey. A node's id and kind are
immutable — sending either is an error. The whole journey is revalidated after the patch,
so a node change that would break the journey is refused and nothing is saved.
A matching concurrency_key is required in the body, exactly as on the journey
patch.
path Parameters
app_idjourney_idnode_idUpdate a journey node › Request Body
concurrency_keyValue from the latest journey read.
Node-specific settings to merge.
Replacement node label when the node kind supports it.
Optional editor position metadata.
Update a journey node › Responses
The updated journey definition
Preview a personal decision for one user
Read-only rules evaluation of a saved or unsaved draft. Never enrolls, sends, writes decisions, or calls AI. This is not a delivery promise. Shared sample apps require console owner scope and cannot use this REST route.
path Parameters
app_idjourney_idPreview a personal decision for one user › Request Body
node_idPersonal decision node id (or client_node_id in an unsaved draft).
user_idInternal user id, scoped to this app and workspace.
Optional unsaved draft definition. Omit to preview the saved revision.
Existing run for this journey and user; provides entry subject, time and saved revision.
Hypothetical subject, for example {quest_id: first-quest}. Required when no run supplies it.
Preview a personal decision for one user › Responses
Successful Response
Read journey statistics
Lifetime totals for one journey — entered, completed, exited early and halted — plus the count of runs currently active, waiting or processing, and a per-node event breakdown. Totals come from the daily rollup, so they are as fresh as the last roll.
path Parameters
app_idjourney_idRead journey statistics › Responses
Lifetime totals, active run count, and per-node event counts