curl --request POST \
--url https://api.openworklabs.com/v1/workflows/{configObjectId}/run \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"pluginId": "<string>",
"configObjectVersionId": "<string>",
"input": "<unknown>",
"mode": "adhoc",
"timeZone": "<string>"
}
'import requests
url = "https://api.openworklabs.com/v1/workflows/{configObjectId}/run"
payload = {
"pluginId": "<string>",
"configObjectVersionId": "<string>",
"input": "<unknown>",
"mode": "adhoc",
"timeZone": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
pluginId: '<string>',
configObjectVersionId: '<string>',
input: '<unknown>',
mode: 'adhoc',
timeZone: '<string>'
})
};
fetch('https://api.openworklabs.com/v1/workflows/{configObjectId}/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/workflows/{configObjectId}/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([
'pluginId' => '<string>',
'configObjectVersionId' => '<string>',
'input' => '<unknown>',
'mode' => 'adhoc',
'timeZone' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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/workflows/{configObjectId}/run"
payload := strings.NewReader("{\n \"pluginId\": \"<string>\",\n \"configObjectVersionId\": \"<string>\",\n \"input\": \"<unknown>\",\n \"mode\": \"adhoc\",\n \"timeZone\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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/workflows/{configObjectId}/run")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"pluginId\": \"<string>\",\n \"configObjectVersionId\": \"<string>\",\n \"input\": \"<unknown>\",\n \"mode\": \"adhoc\",\n \"timeZone\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.openworklabs.com/v1/workflows/{configObjectId}/run")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"pluginId\": \"<string>\",\n \"configObjectVersionId\": \"<string>\",\n \"input\": \"<unknown>\",\n \"mode\": \"adhoc\",\n \"timeZone\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"status": "succeeded",
"executionType": "saved-workflow",
"mode": "adhoc",
"fetchedAt": "2023-11-07T05:31:56Z",
"value": "<unknown>",
"markdown": "<string>",
"receiptId": "<string>",
"resultDigest": "<string>",
"inputSchemaDigest": "<string>",
"outputSchemaDigest": "<string>",
"rendererVersion": "codemode-markdown-v1",
"timeZone": "<string>"
}{
"error": "invalid_request",
"details": [
{
"message": "<string>",
"path": [
"<string>"
]
}
],
"capability": "<string>"
}Run an exact Workflow version
Executes the version identified by configObjectVersionId of this Workflow, under the Plugin named by pluginId, with input as the script’s input, using the caller’s live tools, and records a snapshot receipt. For a live app, pass mode: live and optional IANA timeZone (UTC default), omitting input: the server generates input.runtime (now, today, timeZone, dayStart, dayEnd) and enforces read-only capabilities, exactly like live authoring tests and renders. After receipt-backed saveWorkflow, run this saved version in live mode before save_artifact_view; authoring test receipts alone are not saved snapshots. The input is validated against the version’s inputSchema and the result against its outputSchema; a mismatch is rejected with 400 invalid_capability_arguments, a required capability that is unavailable with capability_unavailable, and a thrown script error with script_failed. The caller needs a Workflow, Plugin, or Marketplace grant that covers this Workflow; an unknown Workflow or Plugin returns unknown_capability and a missing grant returns forbidden, both as 400.
curl --request POST \
--url https://api.openworklabs.com/v1/workflows/{configObjectId}/run \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"pluginId": "<string>",
"configObjectVersionId": "<string>",
"input": "<unknown>",
"mode": "adhoc",
"timeZone": "<string>"
}
'import requests
url = "https://api.openworklabs.com/v1/workflows/{configObjectId}/run"
payload = {
"pluginId": "<string>",
"configObjectVersionId": "<string>",
"input": "<unknown>",
"mode": "adhoc",
"timeZone": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
pluginId: '<string>',
configObjectVersionId: '<string>',
input: '<unknown>',
mode: 'adhoc',
timeZone: '<string>'
})
};
fetch('https://api.openworklabs.com/v1/workflows/{configObjectId}/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/workflows/{configObjectId}/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([
'pluginId' => '<string>',
'configObjectVersionId' => '<string>',
'input' => '<unknown>',
'mode' => 'adhoc',
'timeZone' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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/workflows/{configObjectId}/run"
payload := strings.NewReader("{\n \"pluginId\": \"<string>\",\n \"configObjectVersionId\": \"<string>\",\n \"input\": \"<unknown>\",\n \"mode\": \"adhoc\",\n \"timeZone\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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/workflows/{configObjectId}/run")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"pluginId\": \"<string>\",\n \"configObjectVersionId\": \"<string>\",\n \"input\": \"<unknown>\",\n \"mode\": \"adhoc\",\n \"timeZone\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.openworklabs.com/v1/workflows/{configObjectId}/run")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"pluginId\": \"<string>\",\n \"configObjectVersionId\": \"<string>\",\n \"input\": \"<unknown>\",\n \"mode\": \"adhoc\",\n \"timeZone\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"status": "succeeded",
"executionType": "saved-workflow",
"mode": "adhoc",
"fetchedAt": "2023-11-07T05:31:56Z",
"value": "<unknown>",
"markdown": "<string>",
"receiptId": "<string>",
"resultDigest": "<string>",
"inputSchemaDigest": "<string>",
"outputSchemaDigest": "<string>",
"rendererVersion": "codemode-markdown-v1",
"timeZone": "<string>"
}{
"error": "invalid_request",
"details": [
{
"message": "<string>",
"path": [
"<string>"
]
}
],
"capability": "<string>"
}Authorizations
Session token passed as Authorization: Bearer <session-token> for user-authenticated Den routes.
Path Parameters
Body
Response
Workflow executed.
"succeeded""saved-workflow"adhoc, live ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$"codemode-markdown-v1"Was this page helpful?