curl --request GET \
--url https://api.onesignal.com/apps/{app_id}/journeys/{id} \
--header 'Authorization: <authorization>'import Onesignal from '@onesignal/node-onesignal';
const configuration = Onesignal.createConfiguration({
restApiKey: 'YOUR_REST_API_KEY',
});
const apiInstance = new Onesignal.DefaultApi(configuration);
// string | Your OneSignal App ID in UUID v4 format.
const appId: string = "YOUR_APP_ID";
// string | UUID of the journey to retrieve.
const journeyId: string = "YOUR_JOURNEY_ID";
try {
const response = await apiInstance.viewJourney(appId, journeyId);
console.log(response);
} catch (e) {
if (e instanceof Onesignal.ApiException) {
// `e.errorMessages` flattens any error-envelope shape to a `string[]`;
// the raw parsed body remains on `e.body`.
console.error("viewJourney failed: HTTP " + e.code, e.errorMessages);
} else {
throw e;
}
}import onesignal
from onesignal.api import default_api
from onesignal.models import *
from pprint import pprint
# See configuration.py for a list of all supported configuration parameters.
# Some of the OneSignal endpoints require ORGANIZATION_API_KEY token for authorization, while others require REST_API_KEY.
# We recommend adding both of them in the configuration page so that you will not need to figure it out yourself.
configuration = onesignal.Configuration(
rest_api_key = "YOUR_REST_API_KEY", # App REST API key required for most endpoints
organization_api_key = "YOUR_ORGANIZATION_API_KEY" # Organization key is only required for creating new apps and other top-level endpoints
)
# Enter a context with an instance of the API client
with onesignal.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = default_api.DefaultApi(api_client)
app_id = "YOUR_APP_ID" # Your OneSignal App ID in UUID v4 format.
journey_id = "YOUR_JOURNEY_ID" # UUID of the journey to retrieve.
try:
# View journey
api_response = api_instance.view_journey(app_id, journey_id)
pprint(api_response)
except onesignal.ApiException as e:
print("Exception when calling DefaultApi->view_journey: %s\n" % e)
print("Status Code: %s" % e.status)
print("Response Body: %s" % e.body)<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure Bearer authorization: rest_api_key
$config = onesignal\client\Configuration::getDefaultConfiguration()
->setRestApiKeyToken('YOUR_REST_API_KEY')
->setOrganizationApiKeyToken('YOUR_ORGANIZATION_API_KEY');
$apiInstance = new onesignal\client\Api\DefaultApi(
// If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
// This is optional, `GuzzleHttp\Client` will be used as default.
new GuzzleHttp\Client(),
$config
);
$app_id = 'YOUR_APP_ID'; // string | Your OneSignal App ID in UUID v4 format.
$journey_id = 'YOUR_JOURNEY_ID'; // string | UUID of the journey to retrieve.
try {
$result = $apiInstance->viewJourney($app_id, $journey_id);
print_r($result);
} catch (\onesignal\client\ApiException $e) {
echo 'Exception when calling DefaultApi->viewJourney: ', $e->getMessage(), PHP_EOL;
echo 'Status Code: ', $e->getCode(), PHP_EOL;
// getErrorMessages() flattens any error-envelope shape to a string[];
// the raw body remains on getResponseBody().
echo 'Error Messages: ', implode(', ', $e->getErrorMessages()), PHP_EOL;
echo 'Response Body: ', $e->getResponseBody(), PHP_EOL;
} catch (\Exception $e) {
echo 'Exception when calling DefaultApi->viewJourney: ', $e->getMessage(), PHP_EOL;
}package main
import (
"context"
"fmt"
"os"
"github.com/OneSignal/onesignal-go-api/v5"
)
func main() {
appId := "YOUR_APP_ID" // string | Your OneSignal App ID in UUID v4 format.
journeyId := "YOUR_JOURNEY_ID" // string | UUID of the journey to retrieve.
configuration := onesignal.NewConfiguration()
apiClient := onesignal.NewAPIClient(configuration)
restAuth := context.WithValue(context.Background(), onesignal.RestApiKey, "YOUR_REST_API_KEY") // App REST API key required for most endpoints
resp, r, err := apiClient.DefaultApi.ViewJourney(restAuth, appId, journeyId).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `DefaultApi.ViewJourney``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
if apiErr, ok := err.(*onesignal.GenericOpenAPIError); ok {
// ErrorMessages() flattens any error-envelope shape to a []string;
// the raw body remains on Body().
fmt.Fprintf(os.Stderr, "Error Messages: %v\n", apiErr.ErrorMessages())
fmt.Fprintf(os.Stderr, "Response Body: %s\n", apiErr.Body())
}
}
// response from `ViewJourney`: Journey
fmt.Fprintf(os.Stdout, "Response from `DefaultApi.ViewJourney`: %v\n", resp)
}require 'onesignal'
# setup authorization
OneSignal.configure do |config|
# Configure Bearer authorization: rest_api_key
config.rest_api_key = 'YOUR_REST_API_KEY'
end
api_instance = OneSignal::DefaultApi.new
app_id = 'YOUR_APP_ID' # String | Your OneSignal App ID in UUID v4 format.
journey_id = 'YOUR_JOURNEY_ID' # String | UUID of the journey to retrieve.
begin
# View journey
result = api_instance.view_journey(app_id, journey_id)
p result
rescue OneSignal::ApiError => e
puts "Error when calling DefaultApi->view_journey: #{e}"
puts "Status Code: #{e.code}"
# `e.error_messages` flattens any error-envelope shape to an Array<String>;
# the raw body remains on `e.response_body`.
puts "Error Messages: #{e.error_messages}"
puts "Response Body: #{e.response_body}"
end// Import classes:
import com.onesignal.client.ApiClient;
import com.onesignal.client.ApiException;
import com.onesignal.client.Configuration;
import com.onesignal.client.auth.*;
import com.onesignal.client.model.*;
import com.onesignal.client.api.DefaultApi;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("https://api.onesignal.com");
// Configure HTTP bearer authorization: rest_api_key
HttpBearerAuth rest_api_key = (HttpBearerAuth) defaultClient.getAuthentication("rest_api_key");
rest_api_key.setBearerToken("YOUR_REST_API_KEY");
DefaultApi apiInstance = new DefaultApi(defaultClient);
String appId = "YOUR_APP_ID"; // String | Your OneSignal App ID in UUID v4 format.
String journeyId = "YOUR_JOURNEY_ID"; // String | UUID of the journey to retrieve.
try {
Journey result = apiInstance.viewJourney(appId, journeyId);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling DefaultApi#viewJourney");
System.err.println("Status code: " + e.getCode());
// getErrorMessages() flattens any error-envelope shape to a List<String>;
// the raw body remains on getResponseBody().
System.err.println("Error messages: " + e.getErrorMessages());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}using System;
using System.Collections.Generic;
using System.Diagnostics;
using OneSignalApi.Api;
using OneSignalApi.Client;
using OneSignalApi.Model;
namespace Example
{
public class ViewJourneyExample
{
public static void Main()
{
Configuration config = new Configuration();
config.BasePath = "https://api.onesignal.com";
// Configure Bearer token for authorization: rest_api_key
config.AccessToken = "YOUR_REST_API_KEY";
var apiInstance = new DefaultApi(config);
var appId = "YOUR_APP_ID"; // string | Your OneSignal App ID in UUID v4 format.
var journeyId = "YOUR_JOURNEY_ID"; // string | UUID of the journey to retrieve.
try
{
// View journey
Journey result = apiInstance.ViewJourney(appId, journeyId);
Debug.WriteLine(result);
}
catch (ApiException e)
{
Debug.Print("Exception when calling DefaultApi.ViewJourney: " + e.Message );
Debug.Print("Status Code: "+ e.ErrorCode);
// e.ErrorMessages flattens any error-envelope shape to an IReadOnlyList<string>;
// the raw body remains on e.ErrorContent.
Debug.Print("Error Messages: " + string.Join(", ", e.ErrorMessages));
Debug.Print("Response Body: " + e.ErrorContent);
Debug.Print(e.StackTrace);
}
}
}
}use onesignal_rust_api::apis::configuration::Configuration;
use onesignal_rust_api::apis::default_api;
#[tokio::main]
async fn main() {
let mut configuration = Configuration::new();
configuration.rest_api_key_token = Some("YOUR_REST_API_KEY".to_string());
// Realistic values are pulled from the spec's `example:` fields where present.
let app_id: &str = "YOUR_APP_ID";
let journey_id: &str = "YOUR_JOURNEY_ID";
match default_api::view_journey(&configuration, app_id, journey_id).await {
Ok(resp) => println!("{:?}", resp),
Err(e @ onesignal_rust_api::apis::Error::ResponseError(_)) => {
// `e.error_messages()` flattens any error-envelope shape to a Vec<String>;
// the raw response remains on the ResponseError variant.
eprintln!("view_journey failed: {:?}", e.error_messages());
}
Err(e) => eprintln!("view_journey failed: {:?}", e),
}
}{
"id": "0a1b2c3d-4e5f-6071-8293-a4b5c6d7e8f9",
"app_id": "1a2b3c4d-5e6f-7081-92a3-b4c5d6e7f809",
"name": "Welcome series",
"description": "Onboard new users over their first week.",
"state": "draft",
"created_at": "2026-06-01T14:00:00Z",
"updated_at": "2026-06-01T14:00:00Z",
"started_at": null,
"archived_at": null,
"created_source": "public_api",
"audience": {
"kind": "segment",
"included_segment_ids": [
"3f7c1e90-0000-0000-0000-000000000001"
],
"excluded_segment_ids": [],
"future_additions_only": false
},
"early_exit": null,
"reentry_rules": null,
"schedule": null,
"nodes": [
{
"id": "11111111-0000-0000-0000-000000000001",
"kind": "send_push",
"template_id": "9a8b7c6d-0000-0000-0000-000000000001"
},
{
"id": "11111111-0000-0000-0000-000000000002",
"kind": "wait",
"duration_seconds": 86400
},
{
"id": "11111111-0000-0000-0000-000000000003",
"kind": "send_email",
"template_id": "9a8b7c6d-0000-0000-0000-000000000002"
}
],
"concurrency_key": "dcae4794fee16e450e448e37a6f8d0a5a7335755ff8cc76606e3d04b2f574e46"
}{
"errors": [
{
"code": "journey-not-found",
"title": "Journey not found",
"meta": {}
}
]
}View journey
Retrieve the full configuration of a single journey by its UUID, including its audience, schedule, and node graph.
curl --request GET \
--url https://api.onesignal.com/apps/{app_id}/journeys/{id} \
--header 'Authorization: <authorization>'import Onesignal from '@onesignal/node-onesignal';
const configuration = Onesignal.createConfiguration({
restApiKey: 'YOUR_REST_API_KEY',
});
const apiInstance = new Onesignal.DefaultApi(configuration);
// string | Your OneSignal App ID in UUID v4 format.
const appId: string = "YOUR_APP_ID";
// string | UUID of the journey to retrieve.
const journeyId: string = "YOUR_JOURNEY_ID";
try {
const response = await apiInstance.viewJourney(appId, journeyId);
console.log(response);
} catch (e) {
if (e instanceof Onesignal.ApiException) {
// `e.errorMessages` flattens any error-envelope shape to a `string[]`;
// the raw parsed body remains on `e.body`.
console.error("viewJourney failed: HTTP " + e.code, e.errorMessages);
} else {
throw e;
}
}import onesignal
from onesignal.api import default_api
from onesignal.models import *
from pprint import pprint
# See configuration.py for a list of all supported configuration parameters.
# Some of the OneSignal endpoints require ORGANIZATION_API_KEY token for authorization, while others require REST_API_KEY.
# We recommend adding both of them in the configuration page so that you will not need to figure it out yourself.
configuration = onesignal.Configuration(
rest_api_key = "YOUR_REST_API_KEY", # App REST API key required for most endpoints
organization_api_key = "YOUR_ORGANIZATION_API_KEY" # Organization key is only required for creating new apps and other top-level endpoints
)
# Enter a context with an instance of the API client
with onesignal.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = default_api.DefaultApi(api_client)
app_id = "YOUR_APP_ID" # Your OneSignal App ID in UUID v4 format.
journey_id = "YOUR_JOURNEY_ID" # UUID of the journey to retrieve.
try:
# View journey
api_response = api_instance.view_journey(app_id, journey_id)
pprint(api_response)
except onesignal.ApiException as e:
print("Exception when calling DefaultApi->view_journey: %s\n" % e)
print("Status Code: %s" % e.status)
print("Response Body: %s" % e.body)<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure Bearer authorization: rest_api_key
$config = onesignal\client\Configuration::getDefaultConfiguration()
->setRestApiKeyToken('YOUR_REST_API_KEY')
->setOrganizationApiKeyToken('YOUR_ORGANIZATION_API_KEY');
$apiInstance = new onesignal\client\Api\DefaultApi(
// If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
// This is optional, `GuzzleHttp\Client` will be used as default.
new GuzzleHttp\Client(),
$config
);
$app_id = 'YOUR_APP_ID'; // string | Your OneSignal App ID in UUID v4 format.
$journey_id = 'YOUR_JOURNEY_ID'; // string | UUID of the journey to retrieve.
try {
$result = $apiInstance->viewJourney($app_id, $journey_id);
print_r($result);
} catch (\onesignal\client\ApiException $e) {
echo 'Exception when calling DefaultApi->viewJourney: ', $e->getMessage(), PHP_EOL;
echo 'Status Code: ', $e->getCode(), PHP_EOL;
// getErrorMessages() flattens any error-envelope shape to a string[];
// the raw body remains on getResponseBody().
echo 'Error Messages: ', implode(', ', $e->getErrorMessages()), PHP_EOL;
echo 'Response Body: ', $e->getResponseBody(), PHP_EOL;
} catch (\Exception $e) {
echo 'Exception when calling DefaultApi->viewJourney: ', $e->getMessage(), PHP_EOL;
}package main
import (
"context"
"fmt"
"os"
"github.com/OneSignal/onesignal-go-api/v5"
)
func main() {
appId := "YOUR_APP_ID" // string | Your OneSignal App ID in UUID v4 format.
journeyId := "YOUR_JOURNEY_ID" // string | UUID of the journey to retrieve.
configuration := onesignal.NewConfiguration()
apiClient := onesignal.NewAPIClient(configuration)
restAuth := context.WithValue(context.Background(), onesignal.RestApiKey, "YOUR_REST_API_KEY") // App REST API key required for most endpoints
resp, r, err := apiClient.DefaultApi.ViewJourney(restAuth, appId, journeyId).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `DefaultApi.ViewJourney``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
if apiErr, ok := err.(*onesignal.GenericOpenAPIError); ok {
// ErrorMessages() flattens any error-envelope shape to a []string;
// the raw body remains on Body().
fmt.Fprintf(os.Stderr, "Error Messages: %v\n", apiErr.ErrorMessages())
fmt.Fprintf(os.Stderr, "Response Body: %s\n", apiErr.Body())
}
}
// response from `ViewJourney`: Journey
fmt.Fprintf(os.Stdout, "Response from `DefaultApi.ViewJourney`: %v\n", resp)
}require 'onesignal'
# setup authorization
OneSignal.configure do |config|
# Configure Bearer authorization: rest_api_key
config.rest_api_key = 'YOUR_REST_API_KEY'
end
api_instance = OneSignal::DefaultApi.new
app_id = 'YOUR_APP_ID' # String | Your OneSignal App ID in UUID v4 format.
journey_id = 'YOUR_JOURNEY_ID' # String | UUID of the journey to retrieve.
begin
# View journey
result = api_instance.view_journey(app_id, journey_id)
p result
rescue OneSignal::ApiError => e
puts "Error when calling DefaultApi->view_journey: #{e}"
puts "Status Code: #{e.code}"
# `e.error_messages` flattens any error-envelope shape to an Array<String>;
# the raw body remains on `e.response_body`.
puts "Error Messages: #{e.error_messages}"
puts "Response Body: #{e.response_body}"
end// Import classes:
import com.onesignal.client.ApiClient;
import com.onesignal.client.ApiException;
import com.onesignal.client.Configuration;
import com.onesignal.client.auth.*;
import com.onesignal.client.model.*;
import com.onesignal.client.api.DefaultApi;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("https://api.onesignal.com");
// Configure HTTP bearer authorization: rest_api_key
HttpBearerAuth rest_api_key = (HttpBearerAuth) defaultClient.getAuthentication("rest_api_key");
rest_api_key.setBearerToken("YOUR_REST_API_KEY");
DefaultApi apiInstance = new DefaultApi(defaultClient);
String appId = "YOUR_APP_ID"; // String | Your OneSignal App ID in UUID v4 format.
String journeyId = "YOUR_JOURNEY_ID"; // String | UUID of the journey to retrieve.
try {
Journey result = apiInstance.viewJourney(appId, journeyId);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling DefaultApi#viewJourney");
System.err.println("Status code: " + e.getCode());
// getErrorMessages() flattens any error-envelope shape to a List<String>;
// the raw body remains on getResponseBody().
System.err.println("Error messages: " + e.getErrorMessages());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}using System;
using System.Collections.Generic;
using System.Diagnostics;
using OneSignalApi.Api;
using OneSignalApi.Client;
using OneSignalApi.Model;
namespace Example
{
public class ViewJourneyExample
{
public static void Main()
{
Configuration config = new Configuration();
config.BasePath = "https://api.onesignal.com";
// Configure Bearer token for authorization: rest_api_key
config.AccessToken = "YOUR_REST_API_KEY";
var apiInstance = new DefaultApi(config);
var appId = "YOUR_APP_ID"; // string | Your OneSignal App ID in UUID v4 format.
var journeyId = "YOUR_JOURNEY_ID"; // string | UUID of the journey to retrieve.
try
{
// View journey
Journey result = apiInstance.ViewJourney(appId, journeyId);
Debug.WriteLine(result);
}
catch (ApiException e)
{
Debug.Print("Exception when calling DefaultApi.ViewJourney: " + e.Message );
Debug.Print("Status Code: "+ e.ErrorCode);
// e.ErrorMessages flattens any error-envelope shape to an IReadOnlyList<string>;
// the raw body remains on e.ErrorContent.
Debug.Print("Error Messages: " + string.Join(", ", e.ErrorMessages));
Debug.Print("Response Body: " + e.ErrorContent);
Debug.Print(e.StackTrace);
}
}
}
}use onesignal_rust_api::apis::configuration::Configuration;
use onesignal_rust_api::apis::default_api;
#[tokio::main]
async fn main() {
let mut configuration = Configuration::new();
configuration.rest_api_key_token = Some("YOUR_REST_API_KEY".to_string());
// Realistic values are pulled from the spec's `example:` fields where present.
let app_id: &str = "YOUR_APP_ID";
let journey_id: &str = "YOUR_JOURNEY_ID";
match default_api::view_journey(&configuration, app_id, journey_id).await {
Ok(resp) => println!("{:?}", resp),
Err(e @ onesignal_rust_api::apis::Error::ResponseError(_)) => {
// `e.error_messages()` flattens any error-envelope shape to a Vec<String>;
// the raw response remains on the ResponseError variant.
eprintln!("view_journey failed: {:?}", e.error_messages());
}
Err(e) => eprintln!("view_journey failed: {:?}", e),
}
}{
"id": "0a1b2c3d-4e5f-6071-8293-a4b5c6d7e8f9",
"app_id": "1a2b3c4d-5e6f-7081-92a3-b4c5d6e7f809",
"name": "Welcome series",
"description": "Onboard new users over their first week.",
"state": "draft",
"created_at": "2026-06-01T14:00:00Z",
"updated_at": "2026-06-01T14:00:00Z",
"started_at": null,
"archived_at": null,
"created_source": "public_api",
"audience": {
"kind": "segment",
"included_segment_ids": [
"3f7c1e90-0000-0000-0000-000000000001"
],
"excluded_segment_ids": [],
"future_additions_only": false
},
"early_exit": null,
"reentry_rules": null,
"schedule": null,
"nodes": [
{
"id": "11111111-0000-0000-0000-000000000001",
"kind": "send_push",
"template_id": "9a8b7c6d-0000-0000-0000-000000000001"
},
{
"id": "11111111-0000-0000-0000-000000000002",
"kind": "wait",
"duration_seconds": 86400
},
{
"id": "11111111-0000-0000-0000-000000000003",
"kind": "send_email",
"template_id": "9a8b7c6d-0000-0000-0000-000000000002"
}
],
"concurrency_key": "dcae4794fee16e450e448e37a6f8d0a5a7335755ff8cc76606e3d04b2f574e46"
}{
"errors": [
{
"code": "journey-not-found",
"title": "Journey not found",
"meta": {}
}
]
}Overview
Retrieve a single Journey by its UUID. The response is the full detail representation, including the journey’saudience, schedule, lifecycle rules, and its nodes graph. The View journeys list omits those fields.
Use this fetch as the source of node and branch ids and the concurrency_key before Update journey or Update journey node.
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.
The response includes a concurrency_key. Treat it as an opaque token: send it back unchanged on a later update. Do not construct, parse, or compare it yourself.
Journey structure
A journey is an ordered list ofnodes. Linear nodes (such as wait or send_push) are siblings in the list and run in order. Branching nodes (split_range, yes_no, wait_until) nest their sub-graphs inline through their branches array. Convergence is implicit: after a branching node resolves, flow continues to the next sibling in the parent list.
Server-assigned identifiers on journeys, nodes, and branches (id) are read-only. The optional client_node_id is a customer-assigned identifier. It is persisted and returned on this endpoint. On create or update, use it to reference a node that does not yet have a server id.
Node kinds
| Kind | Description |
|---|---|
wait | Holds the user for a fixed duration. |
time_window | Holds the user until the next configured time window opens. |
send_push / send_email / send_sms | Sends a message on the given channel using a template. |
send_iam | Sends an in-app message. |
send_webhook | Sends a webhook. |
tag | Assigns key-value tags to the user. |
split_range | Routes users into weighted branches. |
yes_no | Routes users into a yes or no branch based on a condition. |
wait_until | Holds the user until a branch condition is met or an expiration timer fires. |
Error responses
| Status | Code | Description |
|---|---|---|
| 404 | journey-not-found | No journey with that id exists for this app. |
| 429 | Rate limit exceeded. Wait the number of seconds in the Retry-After header before retrying. See Rate limits. |
{ "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.
Response
200
Full journey representation returned by the detail and create endpoints.
Journey UUID. Read-only.
UUID of the app the journey belongs to. Read-only.
Journey name, up to 300 characters.
Journey description, up to 1024 characters. Defaults to an empty string.
Journey state. Read-only. New journeys are created as draft. processing is a transient state while an activation is in progress, and archived is a journey that has been stopped. Change it through the state field on Update journey.
draft, scheduled, processing, active, archived ISO 8601 creation time. Read-only.
ISO 8601 last-update time. Read-only.
ISO 8601 time the journey was activated, or null. Read-only. May stay null briefly after you set state to active: activation is enqueued for processing, and started_at populates once the journey finishes processing and becomes active.
ISO 8601 time the journey was archived, or null. Read-only.
Origin of the journey, for example public_api or dashboard. Read-only.
The journey entry audience. Either a segment-based or event-triggered audience.
- segment
- event_trigger
Show child attributes
Show child attributes
Conditions that remove a user from the journey before it completes. At least one rule must be set under rules; an early_exit that configures no rule is rejected. Send null to remove early exit entirely, or null for an individual rule to drop just that rule.
Show child attributes
Show child attributes
Controls whether and how soon a user can re-enter the journey. null means re-entry is not allowed.
Show child attributes
Show child attributes
Optional future start and/or stop time. null means no scheduled activation.
Show child attributes
Show child attributes
Ordered list of journey nodes.
A journey node. The kind field selects the shape. Branching nodes (split_range, yes_no, wait_until) nest their sub-graphs inline via branches[].nodes.
- Option 1
- Option 2
- Option 3
- Option 4
- Option 5
- Option 6
- Option 7
- Option 8
- Option 9
Show child attributes
Show child attributes
Opaque optimistic-concurrency token. Read-only. Pass it back on update to guard against overwriting a concurrent change (409 journey-stale). Send it back exactly as read from this response; do not construct or parse it.
Was this page helpful?