curl --request POST \
--url https://api.getcortexapp.com/api/v1/workflows/{tagOrId}/runs \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"scope": {
"type": "<string>"
},
"initialContext": {},
"notificationRecipients": [
"<string>"
],
"runAs": "<string>"
}
'import requests
url = "https://api.getcortexapp.com/api/v1/workflows/{tagOrId}/runs"
payload = {
"scope": { "type": "<string>" },
"initialContext": {},
"notificationRecipients": ["<string>"],
"runAs": "<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({
scope: {type: '<string>'},
initialContext: {},
notificationRecipients: ['<string>'],
runAs: '<string>'
})
};
fetch('https://api.getcortexapp.com/api/v1/workflows/{tagOrId}/runs', 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/{tagOrId}/runs",
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([
'scope' => [
'type' => '<string>'
],
'initialContext' => [
],
'notificationRecipients' => [
'<string>'
],
'runAs' => '<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.getcortexapp.com/api/v1/workflows/{tagOrId}/runs"
payload := strings.NewReader("{\n \"scope\": {\n \"type\": \"<string>\"\n },\n \"initialContext\": {},\n \"notificationRecipients\": [\n \"<string>\"\n ],\n \"runAs\": \"<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.getcortexapp.com/api/v1/workflows/{tagOrId}/runs")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"scope\": {\n \"type\": \"<string>\"\n },\n \"initialContext\": {},\n \"notificationRecipients\": [\n \"<string>\"\n ],\n \"runAs\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getcortexapp.com/api/v1/workflows/{tagOrId}/runs")
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 \"scope\": {\n \"type\": \"<string>\"\n },\n \"initialContext\": {},\n \"notificationRecipients\": [\n \"<string>\"\n ],\n \"runAs\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"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>",
"state": {
"status": "NOT_INITIATED",
"inputs": {},
"metadata": {},
"outputs": {},
"variables": {}
},
"completedAt": "<string>",
"startedAt": "<string>"
}
],
"context": {},
"id": "<string>",
"status": "<string>",
"variables": {},
"workflow": {
"cid": "<string>",
"name": "<string>"
},
"completedAt": "<string>",
"initiatedBy": {
"type": "<string>",
"apiKey": {
"id": "<string>",
"last4": "<string>",
"type": "<string>",
"name": "<string>"
}
},
"runResponse": "<string>",
"startedAt": "<string>"
}{
"message": "<string>",
"type": "INTEGRATION_MISSING",
"details": "<string>",
"errorCode": "<string>",
"gatewayHttpStatus": 123,
"httpStatus": 123,
"requestId": "<string>"
}{
"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
}Run a workflow
Start a new run for a workflow.
API key must have the Run workflows permission and the workflow must be runnable via API
curl --request POST \
--url https://api.getcortexapp.com/api/v1/workflows/{tagOrId}/runs \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"scope": {
"type": "<string>"
},
"initialContext": {},
"notificationRecipients": [
"<string>"
],
"runAs": "<string>"
}
'import requests
url = "https://api.getcortexapp.com/api/v1/workflows/{tagOrId}/runs"
payload = {
"scope": { "type": "<string>" },
"initialContext": {},
"notificationRecipients": ["<string>"],
"runAs": "<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({
scope: {type: '<string>'},
initialContext: {},
notificationRecipients: ['<string>'],
runAs: '<string>'
})
};
fetch('https://api.getcortexapp.com/api/v1/workflows/{tagOrId}/runs', 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/{tagOrId}/runs",
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([
'scope' => [
'type' => '<string>'
],
'initialContext' => [
],
'notificationRecipients' => [
'<string>'
],
'runAs' => '<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.getcortexapp.com/api/v1/workflows/{tagOrId}/runs"
payload := strings.NewReader("{\n \"scope\": {\n \"type\": \"<string>\"\n },\n \"initialContext\": {},\n \"notificationRecipients\": [\n \"<string>\"\n ],\n \"runAs\": \"<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.getcortexapp.com/api/v1/workflows/{tagOrId}/runs")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"scope\": {\n \"type\": \"<string>\"\n },\n \"initialContext\": {},\n \"notificationRecipients\": [\n \"<string>\"\n ],\n \"runAs\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getcortexapp.com/api/v1/workflows/{tagOrId}/runs")
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 \"scope\": {\n \"type\": \"<string>\"\n },\n \"initialContext\": {},\n \"notificationRecipients\": [\n \"<string>\"\n ],\n \"runAs\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"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>",
"state": {
"status": "NOT_INITIATED",
"inputs": {},
"metadata": {},
"outputs": {},
"variables": {}
},
"completedAt": "<string>",
"startedAt": "<string>"
}
],
"context": {},
"id": "<string>",
"status": "<string>",
"variables": {},
"workflow": {
"cid": "<string>",
"name": "<string>"
},
"completedAt": "<string>",
"initiatedBy": {
"type": "<string>",
"apiKey": {
"id": "<string>",
"last4": "<string>",
"type": "<string>",
"name": "<string>"
}
},
"runResponse": "<string>",
"startedAt": "<string>"
}{
"message": "<string>",
"type": "INTEGRATION_MISSING",
"details": "<string>",
"errorCode": "<string>",
"gatewayHttpStatus": 123,
"httpStatus": 123,
"requestId": "<string>"
}{
"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.
Path Parameters
The tag or unique, auto-generated identifier for the workflow. Entity identifier - can be a tag or CID
Body
Scope of the workflow run (e.g., target entities)
- GLOBAL
- ENTITY
Show child attributes
Show child attributes
List of email addresses to notify of workflow updates.
List of email addresses to notify of workflow updates.
User's email to run the workflow as
Response
Workflow run started successfully
Actions and their states
Show child attributes
Show child attributes
Context of the run
Show child attributes
Show child attributes
Id of the run
Status of the workflow run
Variable values
Show child attributes
Show child attributes
Summary of the workflow
Show child attributes
Show child attributes
Time the workflow run completed
Who initiated the workflow run
- Option 1
- Option 2
Show child attributes
Show child attributes
Time the workflow run started