curl --request POST \
--url https://api.devin.ai/v3/organizations/{org_id}/schedules \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"prompt": "<string>",
"agent": "devin",
"bypass_approval": false,
"create_as_user_id": "<string>",
"frequency": "<string>",
"interval_count": 1,
"notify_on": "failure",
"platform": "<string>",
"playbook_id": "<string>",
"schedule_type": "recurring",
"scheduled_at": "2023-11-07T05:31:56Z",
"skill_ref": {
"plugin_identity": "<string>",
"skill_name": "<string>"
},
"slack_channel_id": "<string>",
"slack_team_id": "<string>",
"tags": [
"<string>"
],
"target_devin_id": "<string>"
}
'import requests
url = "https://api.devin.ai/v3/organizations/{org_id}/schedules"
payload = {
"name": "<string>",
"prompt": "<string>",
"agent": "devin",
"bypass_approval": False,
"create_as_user_id": "<string>",
"frequency": "<string>",
"interval_count": 1,
"notify_on": "failure",
"platform": "<string>",
"playbook_id": "<string>",
"schedule_type": "recurring",
"scheduled_at": "2023-11-07T05:31:56Z",
"skill_ref": {
"plugin_identity": "<string>",
"skill_name": "<string>"
},
"slack_channel_id": "<string>",
"slack_team_id": "<string>",
"tags": ["<string>"],
"target_devin_id": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
prompt: '<string>',
agent: 'devin',
bypass_approval: false,
create_as_user_id: '<string>',
frequency: '<string>',
interval_count: 1,
notify_on: 'failure',
platform: '<string>',
playbook_id: '<string>',
schedule_type: 'recurring',
scheduled_at: '2023-11-07T05:31:56Z',
skill_ref: {plugin_identity: '<string>', skill_name: '<string>'},
slack_channel_id: '<string>',
slack_team_id: '<string>',
tags: ['<string>'],
target_devin_id: '<string>'
})
};
fetch('https://api.devin.ai/v3/organizations/{org_id}/schedules', 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.devin.ai/v3/organizations/{org_id}/schedules",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'prompt' => '<string>',
'agent' => 'devin',
'bypass_approval' => false,
'create_as_user_id' => '<string>',
'frequency' => '<string>',
'interval_count' => 1,
'notify_on' => 'failure',
'platform' => '<string>',
'playbook_id' => '<string>',
'schedule_type' => 'recurring',
'scheduled_at' => '2023-11-07T05:31:56Z',
'skill_ref' => [
'plugin_identity' => '<string>',
'skill_name' => '<string>'
],
'slack_channel_id' => '<string>',
'slack_team_id' => '<string>',
'tags' => [
'<string>'
],
'target_devin_id' => '<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://api.devin.ai/v3/organizations/{org_id}/schedules"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"prompt\": \"<string>\",\n \"agent\": \"devin\",\n \"bypass_approval\": false,\n \"create_as_user_id\": \"<string>\",\n \"frequency\": \"<string>\",\n \"interval_count\": 1,\n \"notify_on\": \"failure\",\n \"platform\": \"<string>\",\n \"playbook_id\": \"<string>\",\n \"schedule_type\": \"recurring\",\n \"scheduled_at\": \"2023-11-07T05:31:56Z\",\n \"skill_ref\": {\n \"plugin_identity\": \"<string>\",\n \"skill_name\": \"<string>\"\n },\n \"slack_channel_id\": \"<string>\",\n \"slack_team_id\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"target_devin_id\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.devin.ai/v3/organizations/{org_id}/schedules")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"prompt\": \"<string>\",\n \"agent\": \"devin\",\n \"bypass_approval\": false,\n \"create_as_user_id\": \"<string>\",\n \"frequency\": \"<string>\",\n \"interval_count\": 1,\n \"notify_on\": \"failure\",\n \"platform\": \"<string>\",\n \"playbook_id\": \"<string>\",\n \"schedule_type\": \"recurring\",\n \"scheduled_at\": \"2023-11-07T05:31:56Z\",\n \"skill_ref\": {\n \"plugin_identity\": \"<string>\",\n \"skill_name\": \"<string>\"\n },\n \"slack_channel_id\": \"<string>\",\n \"slack_team_id\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"target_devin_id\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.devin.ai/v3/organizations/{org_id}/schedules")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"prompt\": \"<string>\",\n \"agent\": \"devin\",\n \"bypass_approval\": false,\n \"create_as_user_id\": \"<string>\",\n \"frequency\": \"<string>\",\n \"interval_count\": 1,\n \"notify_on\": \"failure\",\n \"platform\": \"<string>\",\n \"playbook_id\": \"<string>\",\n \"schedule_type\": \"recurring\",\n \"scheduled_at\": \"2023-11-07T05:31:56Z\",\n \"skill_ref\": {\n \"plugin_identity\": \"<string>\",\n \"skill_name\": \"<string>\"\n },\n \"slack_channel_id\": \"<string>\",\n \"slack_team_id\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"target_devin_id\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"agent": "devin",
"consecutive_failures": 123,
"created_at": "2023-11-07T05:31:56Z",
"created_by": "<string>",
"enabled": true,
"frequency": "<string>",
"last_error_at": "2023-11-07T05:31:56Z",
"last_error_message": "<string>",
"last_executed_at": "2023-11-07T05:31:56Z",
"name": "<string>",
"notify_on": "always",
"org_id": "<string>",
"playbook": {
"playbook_id": "<string>",
"title": "<string>"
},
"prompt": "<string>",
"scheduled_session_id": "<string>",
"updated_at": "2023-11-07T05:31:56Z",
"bypass_approval": false,
"interval_count": 1,
"last_edited_by": "<string>",
"platform": "<string>",
"schedule_type": "recurring",
"scheduled_at": "2023-11-07T05:31:56Z",
"skill_ref": {
"plugin_identity": "<string>",
"skill_name": "<string>"
},
"slack_channel_id": "<string>",
"slack_team_id": "<string>",
"tags": [
"<string>"
],
"target_devin_id": "<string>"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"error_code": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"error_code": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"error_code": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"error_code": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"error_code": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"error_code": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}Zeitplan erstellen
Eine neue geplante Sitzung anlegen.
Veraltet. Zeitpläne wurden durch die Funktion Automatisierung abgelöst: Erstellen Sie stattdessen eine Automatisierung mit einem schedule:recurring-Auslöser über POST /v3/organizations/{org_id}/automations. Für Organisationen, die auf die Funktion Automatisierung umgestellt wurden, gibt dieser Endpunkt 403 zurück; bestehende Zeitpläne können weiterhin gelesen, aktualisiert und gelöscht werden.
curl --request POST \
--url https://api.devin.ai/v3/organizations/{org_id}/schedules \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"prompt": "<string>",
"agent": "devin",
"bypass_approval": false,
"create_as_user_id": "<string>",
"frequency": "<string>",
"interval_count": 1,
"notify_on": "failure",
"platform": "<string>",
"playbook_id": "<string>",
"schedule_type": "recurring",
"scheduled_at": "2023-11-07T05:31:56Z",
"skill_ref": {
"plugin_identity": "<string>",
"skill_name": "<string>"
},
"slack_channel_id": "<string>",
"slack_team_id": "<string>",
"tags": [
"<string>"
],
"target_devin_id": "<string>"
}
'import requests
url = "https://api.devin.ai/v3/organizations/{org_id}/schedules"
payload = {
"name": "<string>",
"prompt": "<string>",
"agent": "devin",
"bypass_approval": False,
"create_as_user_id": "<string>",
"frequency": "<string>",
"interval_count": 1,
"notify_on": "failure",
"platform": "<string>",
"playbook_id": "<string>",
"schedule_type": "recurring",
"scheduled_at": "2023-11-07T05:31:56Z",
"skill_ref": {
"plugin_identity": "<string>",
"skill_name": "<string>"
},
"slack_channel_id": "<string>",
"slack_team_id": "<string>",
"tags": ["<string>"],
"target_devin_id": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
prompt: '<string>',
agent: 'devin',
bypass_approval: false,
create_as_user_id: '<string>',
frequency: '<string>',
interval_count: 1,
notify_on: 'failure',
platform: '<string>',
playbook_id: '<string>',
schedule_type: 'recurring',
scheduled_at: '2023-11-07T05:31:56Z',
skill_ref: {plugin_identity: '<string>', skill_name: '<string>'},
slack_channel_id: '<string>',
slack_team_id: '<string>',
tags: ['<string>'],
target_devin_id: '<string>'
})
};
fetch('https://api.devin.ai/v3/organizations/{org_id}/schedules', 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.devin.ai/v3/organizations/{org_id}/schedules",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'prompt' => '<string>',
'agent' => 'devin',
'bypass_approval' => false,
'create_as_user_id' => '<string>',
'frequency' => '<string>',
'interval_count' => 1,
'notify_on' => 'failure',
'platform' => '<string>',
'playbook_id' => '<string>',
'schedule_type' => 'recurring',
'scheduled_at' => '2023-11-07T05:31:56Z',
'skill_ref' => [
'plugin_identity' => '<string>',
'skill_name' => '<string>'
],
'slack_channel_id' => '<string>',
'slack_team_id' => '<string>',
'tags' => [
'<string>'
],
'target_devin_id' => '<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://api.devin.ai/v3/organizations/{org_id}/schedules"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"prompt\": \"<string>\",\n \"agent\": \"devin\",\n \"bypass_approval\": false,\n \"create_as_user_id\": \"<string>\",\n \"frequency\": \"<string>\",\n \"interval_count\": 1,\n \"notify_on\": \"failure\",\n \"platform\": \"<string>\",\n \"playbook_id\": \"<string>\",\n \"schedule_type\": \"recurring\",\n \"scheduled_at\": \"2023-11-07T05:31:56Z\",\n \"skill_ref\": {\n \"plugin_identity\": \"<string>\",\n \"skill_name\": \"<string>\"\n },\n \"slack_channel_id\": \"<string>\",\n \"slack_team_id\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"target_devin_id\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.devin.ai/v3/organizations/{org_id}/schedules")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"prompt\": \"<string>\",\n \"agent\": \"devin\",\n \"bypass_approval\": false,\n \"create_as_user_id\": \"<string>\",\n \"frequency\": \"<string>\",\n \"interval_count\": 1,\n \"notify_on\": \"failure\",\n \"platform\": \"<string>\",\n \"playbook_id\": \"<string>\",\n \"schedule_type\": \"recurring\",\n \"scheduled_at\": \"2023-11-07T05:31:56Z\",\n \"skill_ref\": {\n \"plugin_identity\": \"<string>\",\n \"skill_name\": \"<string>\"\n },\n \"slack_channel_id\": \"<string>\",\n \"slack_team_id\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"target_devin_id\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.devin.ai/v3/organizations/{org_id}/schedules")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"prompt\": \"<string>\",\n \"agent\": \"devin\",\n \"bypass_approval\": false,\n \"create_as_user_id\": \"<string>\",\n \"frequency\": \"<string>\",\n \"interval_count\": 1,\n \"notify_on\": \"failure\",\n \"platform\": \"<string>\",\n \"playbook_id\": \"<string>\",\n \"schedule_type\": \"recurring\",\n \"scheduled_at\": \"2023-11-07T05:31:56Z\",\n \"skill_ref\": {\n \"plugin_identity\": \"<string>\",\n \"skill_name\": \"<string>\"\n },\n \"slack_channel_id\": \"<string>\",\n \"slack_team_id\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"target_devin_id\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"agent": "devin",
"consecutive_failures": 123,
"created_at": "2023-11-07T05:31:56Z",
"created_by": "<string>",
"enabled": true,
"frequency": "<string>",
"last_error_at": "2023-11-07T05:31:56Z",
"last_error_message": "<string>",
"last_executed_at": "2023-11-07T05:31:56Z",
"name": "<string>",
"notify_on": "always",
"org_id": "<string>",
"playbook": {
"playbook_id": "<string>",
"title": "<string>"
},
"prompt": "<string>",
"scheduled_session_id": "<string>",
"updated_at": "2023-11-07T05:31:56Z",
"bypass_approval": false,
"interval_count": 1,
"last_edited_by": "<string>",
"platform": "<string>",
"schedule_type": "recurring",
"scheduled_at": "2023-11-07T05:31:56Z",
"skill_ref": {
"plugin_identity": "<string>",
"skill_name": "<string>"
},
"slack_channel_id": "<string>",
"slack_team_id": "<string>",
"tags": [
"<string>"
],
"target_devin_id": "<string>"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"error_code": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"error_code": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"error_code": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"error_code": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"error_code": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"error_code": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}POST /v3/organizations/{org_id}/automations als Automatisierung mit einem schedule:recurring-Trigger an. Ab dem 24. September 2026 gibt dieser Endpunkt für Organisationen, die zu Automatisierungen migriert wurden, 403 zurück; Organisationen, deren Migration noch läuft, können bis zum Abschluss der Migration weiterhin Zeitpläne erstellen.Berechtigungen
Erfordert einen Servicebenutzer oder ein persönliches Zugriffstoken mit der BerechtigungManageOrgSchedules auf Organisationsebene.
Zeitplantyp
Das Feldschedule_type gibt an, ob der Zeitplan wiederkehrend oder einmalig ist:
recurring(Standard) — Erfordert das Feldfrequencymit einem Cron-Ausdruckone_time— Erfordert das Feldscheduled_atmit einem zukünftigen Datum/Uhrzeitwert im ISO-8601-Format
Frequency
Für wiederkehrende Zeitpläne akzeptiert das Feldfrequency einen Standard-Cron-Ausdruck (z. B. 0 9 * * 1-5 für Werktage um 9:00 Uhr UTC).
Ausführungszeitpunkt
Für einmalige Zeitpläne akzeptiert das Feldscheduled_at einen ISO-8601-Datum-Uhrzeit-Wert mit Zeitzone (z. B. 2026-03-01T09:00:00Z). Dieser Zeitpunkt muss in der Zukunft liegen. Nach der Ausführung wird der Zeitplan automatisch deaktiviert.
Agententypen
| Agent | Beschreibung |
|---|---|
devin | Standard-Devin-Agent (Standardagent) |
data_analyst | Datenanalyse-Agent |
agent-Werte werden mit einem 422-Validierungsfehler abgelehnt.
Benutzer-Impersonation
Der Parametercreate_as_user_id ermöglicht es, einen Zeitplan im Namen eines anderen Benutzers zu erstellen. Dafür müssen folgende Voraussetzungen erfüllt sein:
- Der Servicebenutzer muss die Berechtigung
ImpersonateOrgSessionshaben - Der Zielbenutzer muss Mitglied der Organisation sein
- Der Zielbenutzer muss die Berechtigung
UseDevinSessionshaben
Autorisierungen
Servicebenutzer-Anmeldedaten (Präfix: cog_)
Pfadparameter
Organisations-ID (Präfix: org-)
"org-abc123def456"
Body
devin, data_analyst always, failure, never VM-Plattform für Sitzungen, die durch diesen Zeitplan gestartet werden (z. B. 'windows'). Wenn kein Wert angegeben ist, verwenden Sitzungen zum Auslösezeitpunkt die Standardplattform der Organisation. Der Wert muss mit einer für die Organisation konfigurierten Plattform übereinstimmen (Groß-/Kleinschreibung wird nicht beachtet); unbekannte Werte werden mit einem 400-Fehler abgelehnt, der die verfügbaren Plattformbezeichnungen auflistet.
recurring, one_time Eindeutig festgelegter Skill, mit dem die Sitzungen ausgeführt werden. Für neue Konfigurationen anstelle von playbook_id verwenden.
Show child attributes
Show child attributes
Antwort
Antwort bei Erfolg
devin, data_analyst always, failure, never Show child attributes
Show child attributes
recurring, one_time Eindeutig festgelegter Skill, mit dem die Sitzungen ausgeführt werden. Für neue Konfigurationen anstelle von playbook_id verwenden.
Show child attributes
Show child attributes

