curl --request PUT \
--url https://devtune.ai/api/v2/projects/{projectId}/agents/{agentKey}/schedule \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"modelId": "<string>",
"schedule": {
"cadence": "daily",
"time": "<string>",
"timezone": "<string>",
"modelId": "<string>"
}
}
'import requests
url = "https://devtune.ai/api/v2/projects/{projectId}/agents/{agentKey}/schedule"
payload = {
"modelId": "<string>",
"schedule": {
"cadence": "daily",
"time": "<string>",
"timezone": "<string>",
"modelId": "<string>"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
modelId: '<string>',
schedule: {cadence: 'daily', time: '<string>', timezone: '<string>', modelId: '<string>'}
})
};
fetch('https://devtune.ai/api/v2/projects/{projectId}/agents/{agentKey}/schedule', 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://devtune.ai/api/v2/projects/{projectId}/agents/{agentKey}/schedule",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'modelId' => '<string>',
'schedule' => [
'cadence' => 'daily',
'time' => '<string>',
'timezone' => '<string>',
'modelId' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://devtune.ai/api/v2/projects/{projectId}/agents/{agentKey}/schedule"
payload := strings.NewReader("{\n \"modelId\": \"<string>\",\n \"schedule\": {\n \"cadence\": \"daily\",\n \"time\": \"<string>\",\n \"timezone\": \"<string>\",\n \"modelId\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://devtune.ai/api/v2/projects/{projectId}/agents/{agentKey}/schedule")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"modelId\": \"<string>\",\n \"schedule\": {\n \"cadence\": \"daily\",\n \"time\": \"<string>\",\n \"timezone\": \"<string>\",\n \"modelId\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://devtune.ai/api/v2/projects/{projectId}/agents/{agentKey}/schedule")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"modelId\": \"<string>\",\n \"schedule\": {\n \"cadence\": \"daily\",\n \"time\": \"<string>\",\n \"timezone\": \"<string>\",\n \"modelId\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"data": {
"agentKey": "<string>",
"autonomyLevel": "manual",
"schedule": {
"cadence": "daily",
"time": "<string>",
"timezone": "<string>",
"modelId": "<string>"
},
"modelId": "<string>",
"scheduledAt": "2023-11-07T05:31:56Z"
},
"meta": {
"timestamp": "2023-11-07T05:31:56Z",
"projectId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": "<string>",
"message": "<string>",
"status": 123,
"reason": "<string>",
"details": {}
}{
"error": "<string>",
"message": "<string>",
"status": 123,
"reason": "<string>",
"details": {}
}{
"error": "<string>",
"message": "<string>",
"status": 123,
"reason": "<string>",
"details": {}
}{
"error": "<string>",
"message": "<string>",
"status": 123,
"reason": "<string>",
"details": {}
}{
"error": "<string>",
"message": "<string>",
"status": 123,
"reason": "<string>",
"details": {}
}Set an agent schedule
Turns an agent’s schedule on or changes it (autonomyLevel scheduled, with schedule and modelId), or turns it off (autonomyLevel manual, without a schedule), as Schedule does on the Agents page, for built-in and custom agents. Refusals carry the page’s messages as 400. Each scheduled run is a metered run that uses agent credits. Refused with 403 and reason trialing while the account is on a trial. The change records which API key or OAuth connection made it. An agent outside this project returns 404. The OAuth member, or the member who created the API key, must belong to the project and hold the manage permission; otherwise 403. Requires the agents.write scope.
curl --request PUT \
--url https://devtune.ai/api/v2/projects/{projectId}/agents/{agentKey}/schedule \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"modelId": "<string>",
"schedule": {
"cadence": "daily",
"time": "<string>",
"timezone": "<string>",
"modelId": "<string>"
}
}
'import requests
url = "https://devtune.ai/api/v2/projects/{projectId}/agents/{agentKey}/schedule"
payload = {
"modelId": "<string>",
"schedule": {
"cadence": "daily",
"time": "<string>",
"timezone": "<string>",
"modelId": "<string>"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
modelId: '<string>',
schedule: {cadence: 'daily', time: '<string>', timezone: '<string>', modelId: '<string>'}
})
};
fetch('https://devtune.ai/api/v2/projects/{projectId}/agents/{agentKey}/schedule', 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://devtune.ai/api/v2/projects/{projectId}/agents/{agentKey}/schedule",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'modelId' => '<string>',
'schedule' => [
'cadence' => 'daily',
'time' => '<string>',
'timezone' => '<string>',
'modelId' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://devtune.ai/api/v2/projects/{projectId}/agents/{agentKey}/schedule"
payload := strings.NewReader("{\n \"modelId\": \"<string>\",\n \"schedule\": {\n \"cadence\": \"daily\",\n \"time\": \"<string>\",\n \"timezone\": \"<string>\",\n \"modelId\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://devtune.ai/api/v2/projects/{projectId}/agents/{agentKey}/schedule")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"modelId\": \"<string>\",\n \"schedule\": {\n \"cadence\": \"daily\",\n \"time\": \"<string>\",\n \"timezone\": \"<string>\",\n \"modelId\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://devtune.ai/api/v2/projects/{projectId}/agents/{agentKey}/schedule")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"modelId\": \"<string>\",\n \"schedule\": {\n \"cadence\": \"daily\",\n \"time\": \"<string>\",\n \"timezone\": \"<string>\",\n \"modelId\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"data": {
"agentKey": "<string>",
"autonomyLevel": "manual",
"schedule": {
"cadence": "daily",
"time": "<string>",
"timezone": "<string>",
"modelId": "<string>"
},
"modelId": "<string>",
"scheduledAt": "2023-11-07T05:31:56Z"
},
"meta": {
"timestamp": "2023-11-07T05:31:56Z",
"projectId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": "<string>",
"message": "<string>",
"status": 123,
"reason": "<string>",
"details": {}
}{
"error": "<string>",
"message": "<string>",
"status": 123,
"reason": "<string>",
"details": {}
}{
"error": "<string>",
"message": "<string>",
"status": 123,
"reason": "<string>",
"details": {}
}{
"error": "<string>",
"message": "<string>",
"status": 123,
"reason": "<string>",
"details": {}
}{
"error": "<string>",
"message": "<string>",
"status": 123,
"reason": "<string>",
"details": {}
}Authorizations
API key with dtk_live_ prefix. Obtain it from API Keys in the account sidebar. New keys start with all supported scopes selected for the chosen project, and you can narrow them to specific read/write scopes as needed.