List tracks
curl --request GET \
--url https://api.doozy.live/v1/tracks \
--header 'x-api-key: <api-key>'import requests
url = "https://api.doozy.live/v1/tracks"
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.doozy.live/v1/tracks', 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.doozy.live/v1/tracks",
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.doozy.live/v1/tracks"
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.doozy.live/v1/tracks")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.doozy.live/v1/tracks")
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{
"object": "list",
"data": [
{
"object": "track",
"id": "i3XJiIJjOp7PJJBTvu4i",
"created_for_cohort_id": "<string>",
"name": "New Hire Onboarding",
"description": "30-day onboarding journey for new employees",
"state": "active",
"trigger_type": "user_join",
"published_version": 3,
"current_draft_id": "wf-abc123-draft-7f2",
"step_count": 8,
"allow_self_join": true,
"created_at": "2026-01-15T10:30:00.000Z",
"updated_at": "2026-01-20T14:00:00.000Z",
"meta": {
"permissions": {
"can_view_results": true,
"can_clone": true,
"can_manage": true,
"can_edit": true,
"can_pause": true,
"can_resume": true,
"can_delete": true,
"can_activate": true,
"can_manage_admins": true
}
},
"steps": [
{
"object": "step",
"id": "NKqbhqFnRyGChRhvM6bB",
"title": "Welcome Message",
"display_title": "Welcome Message",
"order": 1,
"day": 0,
"time": "09:00",
"type": "message",
"destination": {
"type": "user"
},
"message": "Welcome to the team!",
"post_as": {
"type": "doozy"
},
"variants": [
{
"object": "step_variant",
"id": "<string>",
"name": "Engineering",
"audience": {
"group_ids": [
"<string>"
],
"countries": [
"<string>"
],
"work_location_ids": [
"<string>"
],
"manager_status": "manager"
},
"outcome": "send",
"content": {
"message": "<string>",
"attachments": [
{
"token": "track-attachments/accounts/acc_1/user_1/1712345678_ab12_handbook.pdf",
"name": "handbook.pdf",
"mime_type": "application/pdf",
"size": 102400,
"description": "Employee handbook"
}
]
}
}
],
"variant_fallback": "send",
"description": "Sends a welcome message to the new hire",
"attachments": []
}
]
}
],
"has_more": true,
"url": "/v1/tracks"
}{
"error": {
"type": "invalid_request_error",
"code": "resource_not_found",
"message": "No such quiz: tYYueINbgmmyss8O3LiD",
"request_id": "req_8KSh4mNxQ1aZbPoLcVrT",
"param": "id",
"doc_url": "https://docs.doozy.live/api/errors#resource_not_found"
}
}{
"error": {
"type": "invalid_request_error",
"code": "resource_not_found",
"message": "No such quiz: tYYueINbgmmyss8O3LiD",
"request_id": "req_8KSh4mNxQ1aZbPoLcVrT",
"param": "id",
"doc_url": "https://docs.doozy.live/api/errors#resource_not_found"
}
}{
"error": {
"type": "invalid_request_error",
"code": "resource_not_found",
"message": "No such quiz: tYYueINbgmmyss8O3LiD",
"request_id": "req_8KSh4mNxQ1aZbPoLcVrT",
"param": "id",
"doc_url": "https://docs.doozy.live/api/errors#resource_not_found"
}
}Tracks
List tracks
List all tracks accessible to the authenticated user. Returns tracks where the user is an admin. Results are paginated and sorted by creation date (newest first). By default, archived tracks are excluded.
GET
/
v1
/
tracks
List tracks
curl --request GET \
--url https://api.doozy.live/v1/tracks \
--header 'x-api-key: <api-key>'import requests
url = "https://api.doozy.live/v1/tracks"
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.doozy.live/v1/tracks', 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.doozy.live/v1/tracks",
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.doozy.live/v1/tracks"
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.doozy.live/v1/tracks")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.doozy.live/v1/tracks")
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{
"object": "list",
"data": [
{
"object": "track",
"id": "i3XJiIJjOp7PJJBTvu4i",
"created_for_cohort_id": "<string>",
"name": "New Hire Onboarding",
"description": "30-day onboarding journey for new employees",
"state": "active",
"trigger_type": "user_join",
"published_version": 3,
"current_draft_id": "wf-abc123-draft-7f2",
"step_count": 8,
"allow_self_join": true,
"created_at": "2026-01-15T10:30:00.000Z",
"updated_at": "2026-01-20T14:00:00.000Z",
"meta": {
"permissions": {
"can_view_results": true,
"can_clone": true,
"can_manage": true,
"can_edit": true,
"can_pause": true,
"can_resume": true,
"can_delete": true,
"can_activate": true,
"can_manage_admins": true
}
},
"steps": [
{
"object": "step",
"id": "NKqbhqFnRyGChRhvM6bB",
"title": "Welcome Message",
"display_title": "Welcome Message",
"order": 1,
"day": 0,
"time": "09:00",
"type": "message",
"destination": {
"type": "user"
},
"message": "Welcome to the team!",
"post_as": {
"type": "doozy"
},
"variants": [
{
"object": "step_variant",
"id": "<string>",
"name": "Engineering",
"audience": {
"group_ids": [
"<string>"
],
"countries": [
"<string>"
],
"work_location_ids": [
"<string>"
],
"manager_status": "manager"
},
"outcome": "send",
"content": {
"message": "<string>",
"attachments": [
{
"token": "track-attachments/accounts/acc_1/user_1/1712345678_ab12_handbook.pdf",
"name": "handbook.pdf",
"mime_type": "application/pdf",
"size": 102400,
"description": "Employee handbook"
}
]
}
}
],
"variant_fallback": "send",
"description": "Sends a welcome message to the new hire",
"attachments": []
}
]
}
],
"has_more": true,
"url": "/v1/tracks"
}{
"error": {
"type": "invalid_request_error",
"code": "resource_not_found",
"message": "No such quiz: tYYueINbgmmyss8O3LiD",
"request_id": "req_8KSh4mNxQ1aZbPoLcVrT",
"param": "id",
"doc_url": "https://docs.doozy.live/api/errors#resource_not_found"
}
}{
"error": {
"type": "invalid_request_error",
"code": "resource_not_found",
"message": "No such quiz: tYYueINbgmmyss8O3LiD",
"request_id": "req_8KSh4mNxQ1aZbPoLcVrT",
"param": "id",
"doc_url": "https://docs.doozy.live/api/errors#resource_not_found"
}
}{
"error": {
"type": "invalid_request_error",
"code": "resource_not_found",
"message": "No such quiz: tYYueINbgmmyss8O3LiD",
"request_id": "req_8KSh4mNxQ1aZbPoLcVrT",
"param": "id",
"doc_url": "https://docs.doozy.live/api/errors#resource_not_found"
}
}Authorizations
Query Parameters
Filter tracks by trigger type
Available options:
user_join, manual_user_trigger, manual_group_trigger, schedule, schedule_group, work_anniversary, added_by_another_track, self_join, cohort_started, cohort_member_added, mentoring_pair_introduced, channel_join Example:
"user_join"
Response
List of tracks
Was this page helpful?