Get Journey
curl --request GET \
--url https://api.tracklysms.com/api/v2/journeys/{journey_id} \
--header 'X-Api-Key: <api-key>'import requests
url = "https://api.tracklysms.com/api/v2/journeys/{journey_id}"
headers = {"X-Api-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-Api-Key': '<api-key>'}};
fetch('https://api.tracklysms.com/api/v2/journeys/{journey_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.tracklysms.com/api/v2/journeys/{journey_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-Api-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.tracklysms.com/api/v2/journeys/{journey_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Api-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.tracklysms.com/api/v2/journeys/{journey_id}")
.header("X-Api-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.tracklysms.com/api/v2/journeys/{journey_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Api-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"journey": {
"id": "664f1a2b3c4d5e6f7a8b9c0d",
"accountId": 101,
"name": "Welcome",
"trigger": {
"operator": "AND",
"conditions": [],
"groups": []
},
"priority": 0,
"steps": [
{
"stepId": "done",
"name": "Exit",
"stepType": "exit",
"config": {},
"nextStepId": null
}
],
"startStepId": "done",
"status": "draft",
"pauseReason": null,
"createdAt": "2026-09-21T10:00:00",
"updatedAt": "2026-09-21T10:00:00"
}
}
Journeys (v2)
Get Journey
Read a complete SMS welcome journey definition.
GET
/
v2
/
journeys
/
{journey_id}
Get Journey
curl --request GET \
--url https://api.tracklysms.com/api/v2/journeys/{journey_id} \
--header 'X-Api-Key: <api-key>'import requests
url = "https://api.tracklysms.com/api/v2/journeys/{journey_id}"
headers = {"X-Api-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-Api-Key': '<api-key>'}};
fetch('https://api.tracklysms.com/api/v2/journeys/{journey_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.tracklysms.com/api/v2/journeys/{journey_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-Api-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.tracklysms.com/api/v2/journeys/{journey_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Api-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.tracklysms.com/api/v2/journeys/{journey_id}")
.header("X-Api-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.tracklysms.com/api/v2/journeys/{journey_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Api-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"journey": {
"id": "664f1a2b3c4d5e6f7a8b9c0d",
"accountId": 101,
"name": "Welcome",
"trigger": {
"operator": "AND",
"conditions": [],
"groups": []
},
"priority": 0,
"steps": [
{
"stepId": "done",
"name": "Exit",
"stepType": "exit",
"config": {},
"nextStepId": null
}
],
"startStepId": "done",
"status": "draft",
"pauseReason": null,
"createdAt": "2026-09-21T10:00:00",
"updatedAt": "2026-09-21T10:00:00"
}
}
Returns the journey definition for an ID in your account. A missing journey, an ID belonging to another account, or a malformed ID returns 404. A malformed ID returns
error: "Journey not found" with code: "not_found".
Declares the journeys.read scope. Authenticate with X-Api-Key; see Authentication.
Path Parameters
string
required
Journey ID returned by create or list. A malformed ID returns 404 rather than the journey.
Response
Thejourney object uses camelCase: id, integer accountId, name, trigger, priority, steps, startStepId, status, pauseReason, createdAt, and updatedAt. The trigger can be null. Each step contains stepId, name, stepType, config, and nullable nextStepId. Pause reasons and absent timestamps can be null.
{
"journey": {
"id": "664f1a2b3c4d5e6f7a8b9c0d",
"accountId": 101,
"name": "Welcome",
"trigger": {
"operator": "AND",
"conditions": [],
"groups": []
},
"priority": 0,
"steps": [
{
"stepId": "done",
"name": "Exit",
"stepType": "exit",
"config": {},
"nextStepId": null
}
],
"startStepId": "done",
"status": "draft",
"pauseReason": null,
"createdAt": "2026-09-21T10:00:00",
"updatedAt": "2026-09-21T10:00:00"
}
}