curl --request GET \
--url https://api.cyberdesk.io/v1/workflows \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.cyberdesk.io/v1/workflows"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.cyberdesk.io/v1/workflows', 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.cyberdesk.io/v1/workflows",
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.cyberdesk.io/v1/workflows"
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.cyberdesk.io/v1/workflows")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cyberdesk.io/v1/workflows")
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{
"items": [
{
"main_prompt": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"name": "<string>",
"input_schema": "<string>",
"output_schema": "<string>",
"includes_file_exports": false,
"is_webhooks_enabled": false,
"terminal_command_allowlist": [
"<string>"
],
"model_metadata": {
"main_agent_model_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"cache_detection_model_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"fallback_model_1_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"fallback_model_2_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"post_run_check_failure_cleanup_prompt": "<string>",
"user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"organization_id": "<string>",
"includes_input_variables": false,
"workflow_metadata": {
"has_unaddressed_error": true,
"last_errored_run_start": "2023-11-07T05:31:56Z",
"last_errored_run_uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"old_versions": [
{}
],
"tags": [
{
"name": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"organization_id": "<string>",
"order": 123,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"description": "<string>",
"emoji": "<string>",
"color": "<string>",
"group_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"is_archived": false,
"workflow_count": 123,
"group": {
"name": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"organization_id": "<string>",
"order": 123,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"description": "<string>",
"emoji": "<string>",
"color": "<string>"
}
}
],
"post_run_checks": [
{
"name": "<string>",
"type": "run_attachment_exists",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"organization_id": "<string>",
"order": 123,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"description": "<string>",
"file_target_mode": "exact",
"file_names": [
"<string>"
],
"file_name_regex": "<string>",
"expected_match_count": 2,
"expected_match_count_ref": "<string>",
"loop_input": "<string>",
"loop_item_filename_template": "<string>",
"allow_missing_attachments": false,
"check_prompt": "<string>",
"model": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
]
}
],
"total": 123,
"skip": 123,
"limit": 123,
"included": [
{
"type": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
]
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}List Workflows
List all workflows for the authenticated organization.
Supports pagination and returns workflows ordered by updated_at descending.
Use tag_ids to filter workflows that have ALL specified tags (AND logic).
Use include=tags,post_run_checks to include related workflow resources.
Legacy include_tags=true remains supported, but include wins when both are provided.
curl --request GET \
--url https://api.cyberdesk.io/v1/workflows \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.cyberdesk.io/v1/workflows"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.cyberdesk.io/v1/workflows', 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.cyberdesk.io/v1/workflows",
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.cyberdesk.io/v1/workflows"
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.cyberdesk.io/v1/workflows")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cyberdesk.io/v1/workflows")
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{
"items": [
{
"main_prompt": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"name": "<string>",
"input_schema": "<string>",
"output_schema": "<string>",
"includes_file_exports": false,
"is_webhooks_enabled": false,
"terminal_command_allowlist": [
"<string>"
],
"model_metadata": {
"main_agent_model_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"cache_detection_model_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"fallback_model_1_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"fallback_model_2_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"post_run_check_failure_cleanup_prompt": "<string>",
"user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"organization_id": "<string>",
"includes_input_variables": false,
"workflow_metadata": {
"has_unaddressed_error": true,
"last_errored_run_start": "2023-11-07T05:31:56Z",
"last_errored_run_uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"old_versions": [
{}
],
"tags": [
{
"name": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"organization_id": "<string>",
"order": 123,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"description": "<string>",
"emoji": "<string>",
"color": "<string>",
"group_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"is_archived": false,
"workflow_count": 123,
"group": {
"name": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"organization_id": "<string>",
"order": 123,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"description": "<string>",
"emoji": "<string>",
"color": "<string>"
}
}
],
"post_run_checks": [
{
"name": "<string>",
"type": "run_attachment_exists",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"organization_id": "<string>",
"order": 123,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"description": "<string>",
"file_target_mode": "exact",
"file_names": [
"<string>"
],
"file_name_regex": "<string>",
"expected_match_count": 2,
"expected_match_count_ref": "<string>",
"loop_input": "<string>",
"loop_item_filename_template": "<string>",
"allow_missing_attachments": false,
"check_prompt": "<string>",
"model": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
]
}
],
"total": 123,
"skip": 123,
"limit": 123,
"included": [
{
"type": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
]
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
Search workflows by id or name (case-insensitive substring match)
Filter workflows created at or after this ISO timestamp (UTC)
Filter workflows created at or before this ISO timestamp (UTC)
Filter workflows updated at or after this ISO timestamp (UTC)
Filter workflows updated at or before this ISO timestamp (UTC)
Comma-separated list of tag UUIDs. Returns workflows with ALL specified tags (AND logic).
Include tags in the response
Comma-separated list of related resources to include. Allowed values: tags, post_run_checks. If provided, overrides legacy include_tags.
x >= 01 <= x <= 1000Was this page helpful?