Delete artifact content while retaining its audit receipt
curl --request DELETE \
--url https://api.openworklabs.com/v1/workflows/{configObjectId}/snapshots/{receiptId}/content \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.openworklabs.com/v1/workflows/{configObjectId}/snapshots/{receiptId}/content"
headers = {"Authorization": "Bearer <token>"}
response = requests.delete(url, headers=headers)
print(response.text)const options = {method: 'DELETE', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.openworklabs.com/v1/workflows/{configObjectId}/snapshots/{receiptId}/content', 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}/snapshots/{receiptId}/content",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "DELETE",
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/workflows/{configObjectId}/snapshots/{receiptId}/content"
req, _ := http.NewRequest("DELETE", 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.delete("https://api.openworklabs.com/v1/workflows/{configObjectId}/snapshots/{receiptId}/content")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.openworklabs.com/v1/workflows/{configObjectId}/snapshots/{receiptId}/content")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"receiptId": "<string>",
"pluginId": "<string>",
"configObjectId": "<string>",
"configObjectVersionId": "<string>",
"automationRunId": "<string>",
"value": null,
"markdown": "<string>",
"codeDigest": "<string>",
"resultDigest": "<string>",
"inputSchemaDigest": "<string>",
"outputSchemaDigest": "<string>",
"rendererVersion": "codemode-markdown-v1",
"toolCalls": [
{
"name": "<string>"
}
],
"status": "succeeded",
"errorKind": "<string>",
"errorMessage": "<string>",
"source": "manual",
"startedAt": "2023-11-07T05:31:56Z",
"finishedAt": "2023-11-07T05:31:56Z",
"contentDeletedAt": "2023-11-07T05:31:56Z"
}{
"error": "invalid_request",
"details": [
{
"message": "<string>",
"path": [
"<string>"
]
}
],
"capability": "<string>"
}{
"error": "unauthorized"
}{
"error": "<string>",
"message": "<string>"
}Workflows
Delete artifact content while retaining its audit receipt
Clears the stored input, result value, and Markdown of one snapshot and stamps contentDeletedAt, while the receipt itself (digests, tool calls, status, timings) stays in history. When the snapshot came from an Automation, that Automation’s latest successful result is re-pointed to its newest remaining readable snapshot. Idempotent: deleting already-deleted content returns the snapshot unchanged. Requires manager access to the Workflow.
DELETE
/
v1
/
workflows
/
{configObjectId}
/
snapshots
/
{receiptId}
/
content
Delete artifact content while retaining its audit receipt
curl --request DELETE \
--url https://api.openworklabs.com/v1/workflows/{configObjectId}/snapshots/{receiptId}/content \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.openworklabs.com/v1/workflows/{configObjectId}/snapshots/{receiptId}/content"
headers = {"Authorization": "Bearer <token>"}
response = requests.delete(url, headers=headers)
print(response.text)const options = {method: 'DELETE', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.openworklabs.com/v1/workflows/{configObjectId}/snapshots/{receiptId}/content', 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}/snapshots/{receiptId}/content",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "DELETE",
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/workflows/{configObjectId}/snapshots/{receiptId}/content"
req, _ := http.NewRequest("DELETE", 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.delete("https://api.openworklabs.com/v1/workflows/{configObjectId}/snapshots/{receiptId}/content")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.openworklabs.com/v1/workflows/{configObjectId}/snapshots/{receiptId}/content")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"receiptId": "<string>",
"pluginId": "<string>",
"configObjectId": "<string>",
"configObjectVersionId": "<string>",
"automationRunId": "<string>",
"value": null,
"markdown": "<string>",
"codeDigest": "<string>",
"resultDigest": "<string>",
"inputSchemaDigest": "<string>",
"outputSchemaDigest": "<string>",
"rendererVersion": "codemode-markdown-v1",
"toolCalls": [
{
"name": "<string>"
}
],
"status": "succeeded",
"errorKind": "<string>",
"errorMessage": "<string>",
"source": "manual",
"startedAt": "2023-11-07T05:31:56Z",
"finishedAt": "2023-11-07T05:31:56Z",
"contentDeletedAt": "2023-11-07T05:31:56Z"
}{
"error": "invalid_request",
"details": [
{
"message": "<string>",
"path": [
"<string>"
]
}
],
"capability": "<string>"
}{
"error": "unauthorized"
}{
"error": "<string>",
"message": "<string>"
}Authorizations
bearerAuthdenApiKey
Session token passed as Authorization: Bearer <session-token> for user-authenticated Den routes.
Response
Artifact content deleted.
Required string length:
1 - 160Required string length:
1 - 160Required string length:
1 - 160Required string length:
1 - 160Required string length:
1 - 160Pattern:
^sha256:[a-f0-9]{64}$Pattern:
^sha256:[a-f0-9]{64}$Pattern:
^sha256:[a-f0-9]{64}$Pattern:
^sha256:[a-f0-9]{64}$Allowed value:
"codemode-markdown-v1"Show child attributes
Show child attributes
Available options:
succeeded, failed Available options:
manual, scheduled Pattern:
^(?:(?:\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))$Pattern:
^(?:(?:\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))$Pattern:
^(?:(?:\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))$Was this page helpful?