curl --request GET \
--url https://api.openworklabs.com/v1/automation-runs \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.openworklabs.com/v1/automation-runs"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.openworklabs.com/v1/automation-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.openworklabs.com/v1/automation-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 => [
"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.openworklabs.com/v1/automation-runs"
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.openworklabs.com/v1/automation-runs")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.openworklabs.com/v1/automation-runs")
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": [
{
"id": "<string>",
"automationId": "<string>",
"revisionId": "<string>",
"trigger": "scheduled",
"scheduledFor": 4503599627370495,
"idempotencyKey": "<string>",
"status": "queued",
"leaseOwner": "<string>",
"leaseExpiresAt": 4503599627370495,
"heartbeatAt": 4503599627370495,
"attemptCount": 1,
"executionTarget": "desktop",
"executionThread": {
"id": "<string>",
"threadKind": "automation",
"executionLocation": "desktop",
"automationId": "<string>",
"automationRunId": "<string>",
"engineKind": "<string>",
"nativeThreadId": "<string>",
"workspaceId": "<string>"
},
"providerId": "<string>",
"modelId": "<string>",
"startedAt": 4503599627370495,
"finishedAt": 4503599627370495,
"error": {
"code": "owner_membership_lost",
"message": "<string>",
"retryable": true
},
"resultSummary": "<string>",
"usage": {
"inputTokens": 4503599627370495,
"outputTokens": 4503599627370495,
"costMicros": 4503599627370495
},
"createdAt": 4503599627370495,
"updatedAt": 4503599627370495,
"modelVariant": "<string>",
"codemodeReceiptId": "<string>",
"validatedResult": "<unknown>"
}
],
"nextCursor": "<string>"
}{
"error": "invalid_request",
"details": [
{
"message": "<string>",
"path": [
"<string>"
]
}
],
"message": "<string>",
"capability": "<string>"
}{
"error": "unauthorized"
}List the caller's Automation runs in a time range
Den schedules Automations and keeps durable run history. A Desktop Automation runs on any of the owner’s connected desktops (one pinned to a workspace, on a desktop that has it); a Cloud Automation runs in OpenWork Cloud. If no desktop runner is connected when a desktop occurrence is due, that occurrence is recorded as missed. Creation makes an Automation active immediately and uses the owner’s current OpenWork Connect integrations. Deactivation stops future runs but does not cancel a run already in progress. Returns runs of every Automation the caller owns whose scheduled time (else start, else creation) falls in [from, to), for calendar views. At most 45 days per request.
curl --request GET \
--url https://api.openworklabs.com/v1/automation-runs \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.openworklabs.com/v1/automation-runs"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.openworklabs.com/v1/automation-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.openworklabs.com/v1/automation-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 => [
"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.openworklabs.com/v1/automation-runs"
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.openworklabs.com/v1/automation-runs")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.openworklabs.com/v1/automation-runs")
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": [
{
"id": "<string>",
"automationId": "<string>",
"revisionId": "<string>",
"trigger": "scheduled",
"scheduledFor": 4503599627370495,
"idempotencyKey": "<string>",
"status": "queued",
"leaseOwner": "<string>",
"leaseExpiresAt": 4503599627370495,
"heartbeatAt": 4503599627370495,
"attemptCount": 1,
"executionTarget": "desktop",
"executionThread": {
"id": "<string>",
"threadKind": "automation",
"executionLocation": "desktop",
"automationId": "<string>",
"automationRunId": "<string>",
"engineKind": "<string>",
"nativeThreadId": "<string>",
"workspaceId": "<string>"
},
"providerId": "<string>",
"modelId": "<string>",
"startedAt": 4503599627370495,
"finishedAt": 4503599627370495,
"error": {
"code": "owner_membership_lost",
"message": "<string>",
"retryable": true
},
"resultSummary": "<string>",
"usage": {
"inputTokens": 4503599627370495,
"outputTokens": 4503599627370495,
"costMicros": 4503599627370495
},
"createdAt": 4503599627370495,
"updatedAt": 4503599627370495,
"modelVariant": "<string>",
"codemodeReceiptId": "<string>",
"validatedResult": "<unknown>"
}
],
"nextCursor": "<string>"
}{
"error": "invalid_request",
"details": [
{
"message": "<string>",
"path": [
"<string>"
]
}
],
"message": "<string>",
"capability": "<string>"
}{
"error": "unauthorized"
}Authorizations
Session token passed as Authorization: Bearer <session-token> for user-authenticated Den routes.
Query Parameters
Inclusive lower bound, epoch milliseconds.
0 <= x <= 9007199254740991Exclusive upper bound, epoch milliseconds.
x <= 9007199254740991nextCursor from the previous page.
1 - 160Maximum runs to scan for this page (default 200).
1 <= x <= 500Was this page helpful?