curl --request GET \
--url https://api.cekura.ai/schedules/v1/cron-jobs/{id}/ \
--header 'X-CEKURA-API-KEY: <api-key>'import requests
url = "https://api.cekura.ai/schedules/v1/cron-jobs/{id}/"
headers = {"X-CEKURA-API-KEY": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-CEKURA-API-KEY': '<api-key>'}};
fetch('https://api.cekura.ai/schedules/v1/cron-jobs/{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.cekura.ai/schedules/v1/cron-jobs/{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-CEKURA-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.cekura.ai/schedules/v1/cron-jobs/{id}/"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-CEKURA-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.cekura.ai/schedules/v1/cron-jobs/{id}/")
.header("X-CEKURA-API-KEY", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cekura.ai/schedules/v1/cron-jobs/{id}/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-CEKURA-API-KEY"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"crontab_expression": "<string>",
"id": 123,
"agent": 123,
"name": "<string>",
"timezone": "<string>",
"scenario_ids": [
123
],
"scenarios_data": [
{
"id": 123,
"agent": 123,
"name": "<string>",
"personality": 123,
"personality_name": "<string>"
}
],
"personality": 123,
"personalities": [
123
],
"tags": [
"<string>"
],
"frequency": 50,
"run_settings": "<unknown>",
"run_as_text": true,
"execution_mode": "voice",
"notify_on": "never",
"is_active": true,
"created_by": 123,
"created_via": "user",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}Get Schedule Job
Retrieve a scheduled job by id
curl --request GET \
--url https://api.cekura.ai/schedules/v1/cron-jobs/{id}/ \
--header 'X-CEKURA-API-KEY: <api-key>'import requests
url = "https://api.cekura.ai/schedules/v1/cron-jobs/{id}/"
headers = {"X-CEKURA-API-KEY": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-CEKURA-API-KEY': '<api-key>'}};
fetch('https://api.cekura.ai/schedules/v1/cron-jobs/{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.cekura.ai/schedules/v1/cron-jobs/{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-CEKURA-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.cekura.ai/schedules/v1/cron-jobs/{id}/"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-CEKURA-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.cekura.ai/schedules/v1/cron-jobs/{id}/")
.header("X-CEKURA-API-KEY", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cekura.ai/schedules/v1/cron-jobs/{id}/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-CEKURA-API-KEY"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"crontab_expression": "<string>",
"id": 123,
"agent": 123,
"name": "<string>",
"timezone": "<string>",
"scenario_ids": [
123
],
"scenarios_data": [
{
"id": 123,
"agent": 123,
"name": "<string>",
"personality": 123,
"personality_name": "<string>"
}
],
"personality": 123,
"personalities": [
123
],
"tags": [
"<string>"
],
"frequency": 50,
"run_settings": "<unknown>",
"run_as_text": true,
"execution_mode": "voice",
"notify_on": "never",
"is_active": true,
"created_by": 123,
"created_via": "user",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}Authorizations
API Key Authentication. It should be included in the header of each request.
Path Parameters
A unique integer value identifying this cron job.
Response
Crontab expression for the cron job Example:
"0 9 * * 1-5""0 0 * * 0"
255Agent ID for the cron job
Example: 123
Name for the cronjob
255Timezone for the cron job
Example: "America/Los_Angeles"
List of scenario IDs for the cron job
Example: [123, 456, 789]
Show child attributes
Show child attributes
(Deprecated) Use personalities field instead.
Example: 1 (personality ID)
List of personalities to use for test execution. Multiple personalities can be assigned to run tests with different configurations.
Example: [1, 2, 3] (personality IDs)
List of tags for the cron job
Example: ["tag1", "tag2", "tag3"]
Frequency for the cron job
Example: 1
1 <= x <= 100Connection overrides applied on every scheduled run. Keys must match what the matching run endpoint accepts, and depend on execution_mode:
- voice:
mode,outbound_phone_number,agent_number - text:
websocket_url,outbound_phone_number,agent_number - sip:
sip_endpoint - vapi_webrtc:
vapi_assistant_id - retell_webrtc:
retell_agent_id - elevenlabs:
elevenlabs_agent_id,elevenlabs_data - livekit_v2:
livekit_data - pipecat_v2:
pipecat_dataExample:{"livekit_data": {"agent_name": "support-agent", "config": {"greeting": "hi"}}}
DEPRECATED: Use execution_mode instead. Kept for backward compatibility.
Run the cron job as text
Example: true or false
Execution mode for the cron job
Choices: voice, text, sip, vapi_webrtc, elevenlabs, pipecat_v2, livekit_v2, retell_webrtc, ello, agora
Example: "voice", "text", "sip", "pipecat_v2", "elevenlabs", or "livekit_v2"
voice- Voicetext- Textsip- SIPvapi_webrtc- VAPI WebRTCretell_webrtc- Retell WebRTCelevenlabs- ElevenLabsello- Ellolivekit_v2- LiveKitpipecat_v2- Pipecatagora- Agora
voice, text, sip, vapi_webrtc, retell_webrtc, elevenlabs, ello, livekit_v2, pipecat_v2, agora Select when to notify
never- Neversuccess- Successfailure- Failureboth- Both
never, success, failure, both How the cron job was created: user (UI), api (API key), or mcp (MCP client)
user- Userapi- APImcp- MCPcli- CLIsdk- SDK
user, api, mcp, cli, sdk, null Timestamp when the cron job was created
Example: 2021-01-01 00:00:00
Timestamp when the cron job was last updated
Example: 2021-01-01 00:00:00