List workflows
curl --request GET \
--url https://api.getcortexapp.com/api/v1/workflows \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.getcortexapp.com/api/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.getcortexapp.com/api/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.getcortexapp.com/api/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.getcortexapp.com/api/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.getcortexapp.com/api/v1/workflows")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getcortexapp.com/api/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{
"page": 123,
"total": 123,
"totalPages": 123,
"workflows": [
{
"actions": [
{
"isRootAction": true,
"name": "<string>",
"outgoingActions": [
"<string>"
],
"schema": {
"headers": {},
"httpMethod": "GET",
"type": "<string>",
"url": "<string>",
"integration": "AzureDevops",
"integrationAlias": "<string>",
"payload": "<string>",
"targetHost": "<string>"
},
"slug": "<string>"
}
],
"filter": {
"type": "GLOBAL"
},
"isDraft": true,
"name": "<string>",
"restrictActionCompletionToRunnerUser": true,
"tag": "<string>",
"variables": [
{
"slug": "<string>",
"type": "STRING",
"defaultValue": {},
"description": "<string>"
}
],
"createdAt": "<string>",
"createdBy": {
"name": "Cristina Buenahora",
"email": "cristina@cortex.io"
},
"description": "<string>",
"failedRunResponseTemplate": "<string>",
"iconTag": "<string>",
"isRunnableViaApi": true,
"lastUpdatedAt": "<string>",
"lastUpdatedBy": {
"name": "Cristina Buenahora",
"email": "cristina@cortex.io"
},
"runResponseTemplate": "<string>",
"runRestrictionPolicies": [
{
"id": "<string>",
"type": "USER"
}
]
}
]
}{
"message": "<string>",
"type": "INTEGRATION_MISSING",
"details": "<string>",
"errorCode": "<string>",
"gatewayHttpStatus": 123,
"httpStatus": 123,
"requestId": "<string>"
}{
"status": 429,
"title": "<string>",
"type": "<string>",
"detail": "<string>",
"instance": "<string>",
"retryAfter": 1
}List workflows
List workflows.
API key must have the View workflows permission.
GET
/
api
/
v1
/
workflows
List workflows
curl --request GET \
--url https://api.getcortexapp.com/api/v1/workflows \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.getcortexapp.com/api/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.getcortexapp.com/api/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.getcortexapp.com/api/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.getcortexapp.com/api/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.getcortexapp.com/api/v1/workflows")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getcortexapp.com/api/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{
"page": 123,
"total": 123,
"totalPages": 123,
"workflows": [
{
"actions": [
{
"isRootAction": true,
"name": "<string>",
"outgoingActions": [
"<string>"
],
"schema": {
"headers": {},
"httpMethod": "GET",
"type": "<string>",
"url": "<string>",
"integration": "AzureDevops",
"integrationAlias": "<string>",
"payload": "<string>",
"targetHost": "<string>"
},
"slug": "<string>"
}
],
"filter": {
"type": "GLOBAL"
},
"isDraft": true,
"name": "<string>",
"restrictActionCompletionToRunnerUser": true,
"tag": "<string>",
"variables": [
{
"slug": "<string>",
"type": "STRING",
"defaultValue": {},
"description": "<string>"
}
],
"createdAt": "<string>",
"createdBy": {
"name": "Cristina Buenahora",
"email": "cristina@cortex.io"
},
"description": "<string>",
"failedRunResponseTemplate": "<string>",
"iconTag": "<string>",
"isRunnableViaApi": true,
"lastUpdatedAt": "<string>",
"lastUpdatedBy": {
"name": "Cristina Buenahora",
"email": "cristina@cortex.io"
},
"runResponseTemplate": "<string>",
"runRestrictionPolicies": [
{
"id": "<string>",
"type": "USER"
}
]
}
]
}{
"message": "<string>",
"type": "INTEGRATION_MISSING",
"details": "<string>",
"errorCode": "<string>",
"gatewayHttpStatus": 123,
"httpStatus": 123,
"requestId": "<string>"
}{
"status": 429,
"title": "<string>",
"type": "<string>",
"detail": "<string>",
"instance": "<string>",
"retryAfter": 1
}Authorizations
All requests to the Cortex API need to provide an Authorization: Bearer <token> header, where <token> is an API key created in the Settings page of your workspace.
Query Parameters
When true, returns the list of actions for each workflow. Defaults to false.
When set, only returns workflows with the given substring in the name or description.
Number of results to return per page, between 1 and 1000. Default 250.
Page number to return, 0-indexed. Default 0.
Last modified on September 24, 2026