List Journeys
curl --request GET \
--url https://api.tracklysms.com/api/v2/journeys \
--header 'X-Api-Key: <api-key>'import requests
url = "https://api.tracklysms.com/api/v2/journeys"
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', 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",
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"
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")
.header("X-Api-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.tracklysms.com/api/v2/journeys")
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{
"journeys": [
{
"id": "664f1a2b3c4d5e6f7a8b9c0d",
"name": "Welcome",
"priority": 0,
"triggerSummary": "No trigger",
"stepCount": 1,
"enrolledCount": 0,
"completedCount": 0,
"status": "draft",
"pauseReason": null,
"createdAt": "2026-09-21T10:00:00",
"updatedAt": "2026-09-21T10:00:00"
}
],
"pagination": {
"page": 1,
"perPage": 50,
"total": 1,
"totalPages": 1
}
}
Journeys (v2)
List Journeys
List SMS welcome journeys for your account.
GET
/
v2
/
journeys
List Journeys
curl --request GET \
--url https://api.tracklysms.com/api/v2/journeys \
--header 'X-Api-Key: <api-key>'import requests
url = "https://api.tracklysms.com/api/v2/journeys"
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', 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",
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"
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")
.header("X-Api-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.tracklysms.com/api/v2/journeys")
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{
"journeys": [
{
"id": "664f1a2b3c4d5e6f7a8b9c0d",
"name": "Welcome",
"priority": 0,
"triggerSummary": "No trigger",
"stepCount": 1,
"enrolledCount": 0,
"completedCount": 0,
"status": "draft",
"pauseReason": null,
"createdAt": "2026-09-21T10:00:00",
"updatedAt": "2026-09-21T10:00:00"
}
],
"pagination": {
"page": 1,
"perPage": 50,
"total": 1,
"totalPages": 1
}
}
Lists journeys by descending priority, then newest creation time. Results and enrollment warnings are scoped to your account.
Declares the
journeys.read scope. Authenticate with X-Api-Key; see Authentication.
Query Parameters
integer
Page number. Default: 1. Use a positive value.
integer
Items per page. Default: 50; maximum: 100. Use a positive value.
string
Filter by draft, active, paused, or archived. Unrecognized values are ignored.
string
Case-insensitive substring search on the journey name.
Response
The compact journey object containsid, name, priority, triggerSummary, stepCount, enrolledCount, completedCount, status, pauseReason, createdAt, and updatedAt. It omits the account ID, trigger definition, and steps. Use Get Journey for the full definition.
array of objects
Compact journey summaries.
object
Uses camelCase: page, perPage, total, and totalPages.
array of strings
Present only when active journeys have no enrollments despite recent contacts. Warnings can refer to active journeys outside the current page or filter.
{
"journeys": [
{
"id": "664f1a2b3c4d5e6f7a8b9c0d",
"name": "Welcome",
"priority": 0,
"triggerSummary": "No trigger",
"stepCount": 1,
"enrolledCount": 0,
"completedCount": 0,
"status": "draft",
"pauseReason": null,
"createdAt": "2026-09-21T10:00:00",
"updatedAt": "2026-09-21T10:00:00"
}
],
"pagination": {
"page": 1,
"perPage": 50,
"total": 1,
"totalPages": 1
}
}