Run an Automation now
curl --request POST \
--url https://api.openworklabs.com/v1/automations/{id}/run \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '{}'import requests
url = "https://api.openworklabs.com/v1/automations/{id}/run"
payload = {}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({})
};
fetch('https://api.openworklabs.com/v1/automations/{id}/run', 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/{id}/run",
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([
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.openworklabs.com/v1/automations/{id}/run"
payload := strings.NewReader("{}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
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.openworklabs.com/v1/automations/{id}/run")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.openworklabs.com/v1/automations/{id}/run")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{}"
response = http.request(request)
puts response.read_body{
"run": {
"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>",
"triggerContext": {
"kind": "calendar_meeting",
"eventId": "<string>",
"title": "<string>",
"start": 4503599627370495,
"end": 4503599627370495,
"attendeeDomains": [
"<string>"
],
"externalAttendees": 4503599627370495,
"link": "<string>"
}
}
}{
"error": "invalid_request",
"details": [
{
"message": "<string>",
"path": [
"<string>"
]
}
],
"message": "<string>",
"capability": "<string>"
}{
"error": "openwork_web_access_required",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "invalid_request",
"details": [
{
"message": "<string>",
"path": [
"<string>"
]
}
],
"message": "<string>",
"capability": "<string>"
}Automations
Run an Automation now
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. Send executionTarget “cloud” to run a Desktop Automation once in OpenWork Cloud without changing it. Agents cannot run a Cloud Automation on a desktop.
POST
/
v1
/
automations
/
{id}
/
run
Run an Automation now
curl --request POST \
--url https://api.openworklabs.com/v1/automations/{id}/run \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '{}'import requests
url = "https://api.openworklabs.com/v1/automations/{id}/run"
payload = {}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({})
};
fetch('https://api.openworklabs.com/v1/automations/{id}/run', 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/{id}/run",
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([
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.openworklabs.com/v1/automations/{id}/run"
payload := strings.NewReader("{}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
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.openworklabs.com/v1/automations/{id}/run")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.openworklabs.com/v1/automations/{id}/run")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{}"
response = http.request(request)
puts response.read_body{
"run": {
"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>",
"triggerContext": {
"kind": "calendar_meeting",
"eventId": "<string>",
"title": "<string>",
"start": 4503599627370495,
"end": 4503599627370495,
"attendeeDomains": [
"<string>"
],
"externalAttendees": 4503599627370495,
"link": "<string>"
}
}
}{
"error": "invalid_request",
"details": [
{
"message": "<string>",
"path": [
"<string>"
]
}
],
"message": "<string>",
"capability": "<string>"
}{
"error": "openwork_web_access_required",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "invalid_request",
"details": [
{
"message": "<string>",
"path": [
"<string>"
]
}
],
"message": "<string>",
"capability": "<string>"
}Authorizations
denApiKeybearerAuth
Body
application/json
Was this page helpful?