List scheduled test jobs
Returns the scheduled test jobs in your organization, optionally filtered by test agent. A scheduled job runs selected scenarios on a cron expression.
GET
/
ai
/
tests
/
schedules
/
v1
/
cron-jobs
List scheduled test jobs
curl --request GET \
--url https://api.telnyx.com/v2/ai/tests/schedules/v1/cron-jobs \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.telnyx.com/v2/ai/tests/schedules/v1/cron-jobs"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.telnyx.com/v2/ai/tests/schedules/v1/cron-jobs', 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.telnyx.com/v2/ai/tests/schedules/v1/cron-jobs",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.telnyx.com/v2/ai/tests/schedules/v1/cron-jobs"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.telnyx.com/v2/ai/tests/schedules/v1/cron-jobs")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.telnyx.com/v2/ai/tests/schedules/v1/cron-jobs")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body[
{
"id": 1188,
"name": "Nightly regression",
"agent": 1259,
"crontab_expression": "0 3 * * *",
"timezone": "America/Chicago",
"scenario_ids": [
9512
],
"scenarios_data": [
{
"id": 9512,
"agent": 1259,
"name": "Refund escalation flow",
"personality": 4643,
"personality_name": "Interruptive (High)"
}
],
"personality": null,
"personalities": [
4643
],
"tags": [
"regression"
],
"frequency": 1,
"run_as_text": false,
"execution_mode": "voice",
"notify_on": "failure",
"is_active": true,
"created_at": "2026-10-13T18:04:05.123456Z",
"updated_at": "2026-10-13T18:04:05.123456Z"
}
]{
"errors": [
{
"code": "10015",
"title": "Bad Request",
"detail": "The AI Tests service rejected the request."
}
]
}{
"errors": [
{
"code": "10003",
"title": "Unauthorized",
"detail": "The API key is missing or invalid."
}
]
}{
"errors": [
{
"code": "10005",
"title": "Not Found",
"detail": "The requested resource or URL could not be found."
}
]
}{
"errors": [
{
"code": "10018",
"title": "Unprocessable Entity",
"detail": "Validation failed for the request payload."
}
]
}{
"errors": [
{
"code": "10029",
"title": "Too Many Requests",
"detail": "Too many requests; retry later."
}
]
}{
"errors": [
{
"code": "10063",
"title": "Service Unavailable",
"detail": "The test framework service is temporarily unavailable."
}
]
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
Filter jobs belonging to the specified test agent.
Response
List of scheduled test jobs.
ID of the test agent the job belongs to.
Cron expression controlling when the job runs, in the job's timezone.
Scenario IDs the job executes.
Show child attributes
Show child attributes
Whether the job runs scenarios as text chat rather than voice calls.
Execution mode for the test runs, such as voice, text, or sip.
When the job sends a notification.
Available options:
never, success, failure, both Example:
[ { "id": 1188, "name": "Nightly regression", "agent": 1259, "crontab_expression": "0 3 * * *", "timezone": "America/Chicago", "scenario_ids": [9512], "scenarios_data": [ { "id": 9512, "agent": 1259, "name": "Refund escalation flow", "personality": 4643, "personality_name": "Interruptive (High)" } ], "personality": null, "personalities": [4643], "tags": ["regression"], "frequency": 1, "run_as_text": false, "execution_mode": "voice", "notify_on": "failure", "is_active": true, "created_at": "2026-10-13T18:04:05.123456Z", "updated_at": "2026-10-13T18:04:05.123456Z" } ]
Was this page helpful?
List scheduled test jobs
curl --request GET \
--url https://api.telnyx.com/v2/ai/tests/schedules/v1/cron-jobs \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.telnyx.com/v2/ai/tests/schedules/v1/cron-jobs"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.telnyx.com/v2/ai/tests/schedules/v1/cron-jobs', 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.telnyx.com/v2/ai/tests/schedules/v1/cron-jobs",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.telnyx.com/v2/ai/tests/schedules/v1/cron-jobs"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.telnyx.com/v2/ai/tests/schedules/v1/cron-jobs")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.telnyx.com/v2/ai/tests/schedules/v1/cron-jobs")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body[
{
"id": 1188,
"name": "Nightly regression",
"agent": 1259,
"crontab_expression": "0 3 * * *",
"timezone": "America/Chicago",
"scenario_ids": [
9512
],
"scenarios_data": [
{
"id": 9512,
"agent": 1259,
"name": "Refund escalation flow",
"personality": 4643,
"personality_name": "Interruptive (High)"
}
],
"personality": null,
"personalities": [
4643
],
"tags": [
"regression"
],
"frequency": 1,
"run_as_text": false,
"execution_mode": "voice",
"notify_on": "failure",
"is_active": true,
"created_at": "2026-10-13T18:04:05.123456Z",
"updated_at": "2026-10-13T18:04:05.123456Z"
}
]{
"errors": [
{
"code": "10015",
"title": "Bad Request",
"detail": "The AI Tests service rejected the request."
}
]
}{
"errors": [
{
"code": "10003",
"title": "Unauthorized",
"detail": "The API key is missing or invalid."
}
]
}{
"errors": [
{
"code": "10005",
"title": "Not Found",
"detail": "The requested resource or URL could not be found."
}
]
}{
"errors": [
{
"code": "10018",
"title": "Unprocessable Entity",
"detail": "Validation failed for the request payload."
}
]
}{
"errors": [
{
"code": "10029",
"title": "Too Many Requests",
"detail": "Too many requests; retry later."
}
]
}{
"errors": [
{
"code": "10063",
"title": "Service Unavailable",
"detail": "The test framework service is temporarily unavailable."
}
]
}