List Automations
curl --request GET \
--url https://api.openworklabs.com/v1/automations \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.openworklabs.com/v1/automations"
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/automations', 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/automations",
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/automations"
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/automations")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.openworklabs.com/v1/automations")
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": [
{
"automation": {
"id": "<string>",
"organizationId": "<string>",
"ownerMemberId": "<string>",
"name": "<string>",
"state": "active",
"currentRevisionId": "<string>",
"nextDueAt": 4503599627370495,
"latestRunAt": 4503599627370495,
"needsAttentionReason": {
"code": "owner_membership_lost",
"message": "<string>",
"occurredAt": 4503599627370495
},
"createdAt": 4503599627370495,
"updatedAt": 4503599627370495,
"archivedAt": 4503599627370495,
"latestSuccessfulRunId": "<string>",
"latestSuccessfulResult": "<unknown>"
},
"revision": {
"id": "<string>",
"automationId": "<string>",
"version": 123,
"instructions": "<string>",
"schedule": {
"kind": "once",
"timezone": "<string>",
"at": 4503599627370495
},
"model": {
"providerId": "<string>",
"modelId": "<string>",
"variant": "<string>"
},
"maximumRuntimeMs": 1805000,
"digest": "<string>",
"createdAt": 4503599627370495,
"action": {
"kind": "agent",
"instructions": "<string>",
"model": {
"providerId": "<string>",
"modelId": "<string>",
"variant": "<string>"
}
},
"executionTarget": "desktop",
"workspaceId": "<string>"
},
"latestRun": {
"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": "unauthorized"
}Automations
List Automations
Den schedules Automations and keeps durable run history. Automations created by Desktop run on the owner’s connected desktop; Automations created by Web run 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.
GET
/
v1
/
automations
List Automations
curl --request GET \
--url https://api.openworklabs.com/v1/automations \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.openworklabs.com/v1/automations"
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/automations', 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/automations",
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/automations"
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/automations")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.openworklabs.com/v1/automations")
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": [
{
"automation": {
"id": "<string>",
"organizationId": "<string>",
"ownerMemberId": "<string>",
"name": "<string>",
"state": "active",
"currentRevisionId": "<string>",
"nextDueAt": 4503599627370495,
"latestRunAt": 4503599627370495,
"needsAttentionReason": {
"code": "owner_membership_lost",
"message": "<string>",
"occurredAt": 4503599627370495
},
"createdAt": 4503599627370495,
"updatedAt": 4503599627370495,
"archivedAt": 4503599627370495,
"latestSuccessfulRunId": "<string>",
"latestSuccessfulResult": "<unknown>"
},
"revision": {
"id": "<string>",
"automationId": "<string>",
"version": 123,
"instructions": "<string>",
"schedule": {
"kind": "once",
"timezone": "<string>",
"at": 4503599627370495
},
"model": {
"providerId": "<string>",
"modelId": "<string>",
"variant": "<string>"
},
"maximumRuntimeMs": 1805000,
"digest": "<string>",
"createdAt": 4503599627370495,
"action": {
"kind": "agent",
"instructions": "<string>",
"model": {
"providerId": "<string>",
"modelId": "<string>",
"variant": "<string>"
}
},
"executionTarget": "desktop",
"workspaceId": "<string>"
},
"latestRun": {
"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": "unauthorized"
}Authorizations
bearerAuthdenApiKey
Session token passed as Authorization: Bearer <session-token> for user-authenticated Den routes.
Query Parameters
Required string length:
1 - 160Required range:
1 <= x <= 100Was this page helpful?