Get Workflow Runs
curl --request GET \
--url https://athena.tryopencomputer.com/api/v1/workflow/{workflow_id}/runs \
--header 'X-API-Key: <api-key>'import requests
url = "https://athena.tryopencomputer.com/api/v1/workflow/{workflow_id}/runs"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://athena.tryopencomputer.com/api/v1/workflow/{workflow_id}/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://athena.tryopencomputer.com/api/v1/workflow/{workflow_id}/runs",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$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://athena.tryopencomputer.com/api/v1/workflow/{workflow_id}/runs"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://athena.tryopencomputer.com/api/v1/workflow/{workflow_id}/runs")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://athena.tryopencomputer.com/api/v1/workflow/{workflow_id}/runs")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"runs": [
{
"id": 123,
"workflow_id": 123,
"name": "<string>",
"mode": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"is_completed": true,
"transcript_url": "<string>",
"recording_url": "<string>",
"cost_info": {},
"definition_id": 123,
"call_type": "inbound",
"workflow_name": "<string>",
"version_number": 123,
"user_recording_url": "<string>",
"bot_recording_url": "<string>",
"transcript_public_url": "<string>",
"recording_public_url": "<string>",
"user_recording_public_url": "<string>",
"bot_recording_public_url": "<string>",
"public_access_token": "<string>",
"usage_info": {},
"initial_context": {},
"gathered_context": {},
"logs": {},
"annotations": {}
}
],
"total_count": 123,
"page": 123,
"limit": 123,
"total_pages": 123,
"applied_filters": [
{}
]
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Workflow
Get Workflow Runs
Read executions for one workflow using the supported filters and pagination. Keep the returned run id to retrieve its final state and activity.
Get Workflow Runs
curl --request GET \
--url https://athena.tryopencomputer.com/api/v1/workflow/{workflow_id}/runs \
--header 'X-API-Key: <api-key>'import requests
url = "https://athena.tryopencomputer.com/api/v1/workflow/{workflow_id}/runs"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://athena.tryopencomputer.com/api/v1/workflow/{workflow_id}/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://athena.tryopencomputer.com/api/v1/workflow/{workflow_id}/runs",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$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://athena.tryopencomputer.com/api/v1/workflow/{workflow_id}/runs"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://athena.tryopencomputer.com/api/v1/workflow/{workflow_id}/runs")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://athena.tryopencomputer.com/api/v1/workflow/{workflow_id}/runs")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"runs": [
{
"id": 123,
"workflow_id": 123,
"name": "<string>",
"mode": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"is_completed": true,
"transcript_url": "<string>",
"recording_url": "<string>",
"cost_info": {},
"definition_id": 123,
"call_type": "inbound",
"workflow_name": "<string>",
"version_number": 123,
"user_recording_url": "<string>",
"bot_recording_url": "<string>",
"transcript_public_url": "<string>",
"recording_public_url": "<string>",
"user_recording_public_url": "<string>",
"bot_recording_public_url": "<string>",
"public_access_token": "<string>",
"usage_info": {},
"initial_context": {},
"gathered_context": {},
"logs": {},
"annotations": {}
}
],
"total_count": 123,
"page": 123,
"limit": 123,
"total_pages": 123,
"applied_filters": [
{}
]
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
ApiKeyAuthBearerAuth
Path Parameters
Query Parameters
Page number (starts from 1)
Required range:
x >= 1Number of items per page
Required range:
1 <= x <= 100JSON-encoded filter criteria
Field to sort by (e.g., 'duration', 'created_at')
Sort order ('asc' or 'desc')