Workflows
Get a workflow
One workflow with its steps, its last 5 runs, and run stats.
GET
/
v2
/
workflows
/
{id}
Get a workflow
curl --request GET \
--url https://api.opennous.cloud/v2/workflows/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.opennous.cloud/v2/workflows/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.opennous.cloud/v2/workflows/{id}', 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.opennous.cloud/v2/workflows/{id}",
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.opennous.cloud/v2/workflows/{id}"
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.opennous.cloud/v2/workflows/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.opennous.cloud/v2/workflows/{id}")
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{
"workflow": {
"id": "6a5b4c3d-2e1f-4a0b-9c8d-7e6f5a4b3c2d",
"name": "Daily pipeline digest",
"enabled": true,
"trigger": {
"type": "clock",
"frequency": "daily",
"at": "08:00"
},
"steps_count": 2,
"last_run_at": null,
"created_at": "2026-09-30T10:00:00Z",
"steps": [
{
"id": "step_1",
"type": "agent",
"prompt": "Summarise what moved in the pipeline since yesterday."
},
{
"id": "step_2",
"type": "email",
"to": "team@yourco.com"
}
],
"owner_user_id": "u1",
"updated_at": "2026-09-30T10:00:00Z",
"artifact": null,
"prompt": "Summarise what moved in the pipeline since yesterday.",
"destination": "email"
},
"recent_runs": [],
"run_stats": {
"runs": 0,
"failed": 0,
"reports": 0
}
}
Workflows are in beta. Today the runner executes the first agent step and the first send step. Email and webhook sends are delivered. A Slack step is recorded, but Slack delivery is not wired yet. Other step types are validated and saved but not executed yet.
artifact, prompt, and destination show what the runner will actually execute.Authorizations
bearerAuthapiKeyHeader
Workspace API key. Create one in Settings → API keys.
Path Parameters
Workflow id.
⌘I
Get a workflow
curl --request GET \
--url https://api.opennous.cloud/v2/workflows/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.opennous.cloud/v2/workflows/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.opennous.cloud/v2/workflows/{id}', 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.opennous.cloud/v2/workflows/{id}",
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.opennous.cloud/v2/workflows/{id}"
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.opennous.cloud/v2/workflows/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.opennous.cloud/v2/workflows/{id}")
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{
"workflow": {
"id": "6a5b4c3d-2e1f-4a0b-9c8d-7e6f5a4b3c2d",
"name": "Daily pipeline digest",
"enabled": true,
"trigger": {
"type": "clock",
"frequency": "daily",
"at": "08:00"
},
"steps_count": 2,
"last_run_at": null,
"created_at": "2026-09-30T10:00:00Z",
"steps": [
{
"id": "step_1",
"type": "agent",
"prompt": "Summarise what moved in the pipeline since yesterday."
},
{
"id": "step_2",
"type": "email",
"to": "team@yourco.com"
}
],
"owner_user_id": "u1",
"updated_at": "2026-09-30T10:00:00Z",
"artifact": null,
"prompt": "Summarise what moved in the pipeline since yesterday.",
"destination": "email"
},
"recent_runs": [],
"run_stats": {
"runs": 0,
"failed": 0,
"reports": 0
}
}