curl --request POST \
--url https://api.recursion.labelbox.com/managed-agents/v1/automations/{automationId}/resume \
--header 'Authorization: Bearer <token>' \
--header 'If-Match: <if-match>'import requests
url = "https://api.recursion.labelbox.com/managed-agents/v1/automations/{automationId}/resume"
headers = {
"If-Match": "<if-match>",
"Authorization": "Bearer <token>"
}
response = requests.post(url, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'If-Match': '<if-match>', Authorization: 'Bearer <token>'}
};
fetch('https://api.recursion.labelbox.com/managed-agents/v1/automations/{automationId}/resume', 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.recursion.labelbox.com/managed-agents/v1/automations/{automationId}/resume",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"If-Match: <if-match>"
],
]);
$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.recursion.labelbox.com/managed-agents/v1/automations/{automationId}/resume"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("If-Match", "<if-match>")
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.post("https://api.recursion.labelbox.com/managed-agents/v1/automations/{automationId}/resume")
.header("If-Match", "<if-match>")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.recursion.labelbox.com/managed-agents/v1/automations/{automationId}/resume")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["If-Match"] = '<if-match>'
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"agentId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"agentVersionId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"automationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"createdAt": "2023-11-07T05:31:56Z",
"displayName": "<string>",
"environmentId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"initialPrompt": {
"text": "<string>",
"type": "literal"
},
"revision": 4503599627370496,
"runDefaults": {
"metadata": {},
"credentialRefs": [
{
"credentialId": "<string>",
"vaultId": "<string>"
}
],
"memoryStores": [
{
"access": "read_only",
"memoryStoreId": "<string>",
"instructions": "<string>"
}
],
"resources": [
{
"fileId": "<string>",
"mountPath": "<string>"
}
],
"vaultIds": [
"<string>"
]
},
"status": "paused",
"triggers": [
{
"enabled": true,
"schedule": {
"cron": "<string>",
"timezone": "<string>",
"catchupWindowSeconds": 900,
"endAt": "2023-11-07T05:31:56Z",
"jitterSeconds": 10,
"overlapPolicy": "skip",
"startAt": "2023-11-07T05:31:56Z"
},
"triggerId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "schedule"
}
],
"updatedAt": "2023-11-07T05:31:56Z"
}{
"code": "invalid_request",
"message": "<string>",
"details": {
"field": "<string>",
"issues": [
"<string>"
],
"requestId": "<string>",
"retryable": true
}
}{
"code": "unauthorized",
"message": "<string>",
"details": {
"field": "<string>",
"issues": [
"<string>"
],
"requestId": "<string>",
"retryable": true
}
}{
"code": "forbidden",
"message": "<string>",
"details": {
"field": "<string>",
"issues": [
"<string>"
],
"requestId": "<string>",
"retryable": true
}
}{
"code": "not_found",
"message": "<string>",
"details": {
"field": "<string>",
"issues": [
"<string>"
],
"requestId": "<string>",
"retryable": true
}
}{
"code": "precondition_failed",
"message": "<string>",
"details": {
"field": "<string>",
"issues": [
"<string>"
],
"requestId": "<string>",
"retryable": true
}
}{
"code": "payload_too_large",
"message": "<string>",
"details": {
"field": "<string>",
"issues": [
"<string>"
],
"requestId": "<string>",
"retryable": true
}
}{
"code": "unsupported_media_type",
"message": "<string>",
"details": {
"field": "<string>",
"issues": [
"<string>"
],
"requestId": "<string>",
"retryable": true
}
}{
"code": "precondition_required",
"message": "<string>",
"details": {
"field": "<string>",
"issues": [
"<string>"
],
"requestId": "<string>",
"retryable": true
}
}{
"code": "rate_limit_exceeded",
"message": "<string>",
"details": {
"field": "<string>",
"issues": [
"<string>"
],
"requestId": "<string>",
"retryable": true
}
}{
"code": "internal_error",
"message": "<string>",
"details": {
"field": "<string>",
"issues": [
"<string>"
],
"requestId": "<string>",
"retryable": true
}
}{
"code": "bad_gateway",
"message": "<string>",
"details": {
"field": "<string>",
"issues": [
"<string>"
],
"requestId": "<string>",
"retryable": true
}
}{
"code": "automations_unconfigured",
"message": "<string>",
"details": {
"field": "<string>",
"issues": [
"<string>"
],
"requestId": "<string>",
"retryable": true
}
}{
"code": "gateway_timeout",
"message": "<string>",
"details": {
"field": "<string>",
"issues": [
"<string>"
],
"requestId": "<string>",
"retryable": true
}
}Resume canonical automation admission
Allows enabled stored triggers to admit new runs. Requires the latest strong ETag in If-Match.
curl --request POST \
--url https://api.recursion.labelbox.com/managed-agents/v1/automations/{automationId}/resume \
--header 'Authorization: Bearer <token>' \
--header 'If-Match: <if-match>'import requests
url = "https://api.recursion.labelbox.com/managed-agents/v1/automations/{automationId}/resume"
headers = {
"If-Match": "<if-match>",
"Authorization": "Bearer <token>"
}
response = requests.post(url, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'If-Match': '<if-match>', Authorization: 'Bearer <token>'}
};
fetch('https://api.recursion.labelbox.com/managed-agents/v1/automations/{automationId}/resume', 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.recursion.labelbox.com/managed-agents/v1/automations/{automationId}/resume",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"If-Match: <if-match>"
],
]);
$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.recursion.labelbox.com/managed-agents/v1/automations/{automationId}/resume"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("If-Match", "<if-match>")
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.post("https://api.recursion.labelbox.com/managed-agents/v1/automations/{automationId}/resume")
.header("If-Match", "<if-match>")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.recursion.labelbox.com/managed-agents/v1/automations/{automationId}/resume")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["If-Match"] = '<if-match>'
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"agentId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"agentVersionId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"automationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"createdAt": "2023-11-07T05:31:56Z",
"displayName": "<string>",
"environmentId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"initialPrompt": {
"text": "<string>",
"type": "literal"
},
"revision": 4503599627370496,
"runDefaults": {
"metadata": {},
"credentialRefs": [
{
"credentialId": "<string>",
"vaultId": "<string>"
}
],
"memoryStores": [
{
"access": "read_only",
"memoryStoreId": "<string>",
"instructions": "<string>"
}
],
"resources": [
{
"fileId": "<string>",
"mountPath": "<string>"
}
],
"vaultIds": [
"<string>"
]
},
"status": "paused",
"triggers": [
{
"enabled": true,
"schedule": {
"cron": "<string>",
"timezone": "<string>",
"catchupWindowSeconds": 900,
"endAt": "2023-11-07T05:31:56Z",
"jitterSeconds": 10,
"overlapPolicy": "skip",
"startAt": "2023-11-07T05:31:56Z"
},
"triggerId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "schedule"
}
],
"updatedAt": "2023-11-07T05:31:56Z"
}{
"code": "invalid_request",
"message": "<string>",
"details": {
"field": "<string>",
"issues": [
"<string>"
],
"requestId": "<string>",
"retryable": true
}
}{
"code": "unauthorized",
"message": "<string>",
"details": {
"field": "<string>",
"issues": [
"<string>"
],
"requestId": "<string>",
"retryable": true
}
}{
"code": "forbidden",
"message": "<string>",
"details": {
"field": "<string>",
"issues": [
"<string>"
],
"requestId": "<string>",
"retryable": true
}
}{
"code": "not_found",
"message": "<string>",
"details": {
"field": "<string>",
"issues": [
"<string>"
],
"requestId": "<string>",
"retryable": true
}
}{
"code": "precondition_failed",
"message": "<string>",
"details": {
"field": "<string>",
"issues": [
"<string>"
],
"requestId": "<string>",
"retryable": true
}
}{
"code": "payload_too_large",
"message": "<string>",
"details": {
"field": "<string>",
"issues": [
"<string>"
],
"requestId": "<string>",
"retryable": true
}
}{
"code": "unsupported_media_type",
"message": "<string>",
"details": {
"field": "<string>",
"issues": [
"<string>"
],
"requestId": "<string>",
"retryable": true
}
}{
"code": "precondition_required",
"message": "<string>",
"details": {
"field": "<string>",
"issues": [
"<string>"
],
"requestId": "<string>",
"retryable": true
}
}{
"code": "rate_limit_exceeded",
"message": "<string>",
"details": {
"field": "<string>",
"issues": [
"<string>"
],
"requestId": "<string>",
"retryable": true
}
}{
"code": "internal_error",
"message": "<string>",
"details": {
"field": "<string>",
"issues": [
"<string>"
],
"requestId": "<string>",
"retryable": true
}
}{
"code": "bad_gateway",
"message": "<string>",
"details": {
"field": "<string>",
"issues": [
"<string>"
],
"requestId": "<string>",
"retryable": true
}
}{
"code": "automations_unconfigured",
"message": "<string>",
"details": {
"field": "<string>",
"issues": [
"<string>"
],
"requestId": "<string>",
"retryable": true
}
}{
"code": "gateway_timeout",
"message": "<string>",
"details": {
"field": "<string>",
"issues": [
"<string>"
],
"requestId": "<string>",
"retryable": true
}
}Authorizations
A Recursion API key, created in the console under API keys.
Headers
Strong ETag returned by the latest canonical automation member read.
Optional tenant consistency check. When present, it must name the tenant bound to the API key, including when x-organization-id is default.
1Organization in which to act. Required for a tenant-scoped API key. Optional for an organization-scoped key, where it must name that same organization. The value may be an organization id or default.
1Path Parameters
Stable canonical automation identifier.
Response
Full round-trippable canonical automation aggregate.
Full round-trippable canonical automation aggregate.
Managed agent selected by this automation.
Immutable agent version pinned for all admitted runs.
Stable canonical automation identifier.
Time the automation was created.
Human-readable automation name.
Execution environment selected for admitted sessions.
Prompt definition frozen onto admitted runs.
Show child attributes
Show child attributes
Monotonic aggregate revision represented by the response ETag.
1 <= x <= 9007199254740991Run defaults frozen onto admitted runs.
Show child attributes
Show child attributes
Lifecycle state. New automations start paused.
paused, active Complete ordered trigger set.
Closed schedule-trigger configuration.
- Option 1
- Option 2
- Option 3
- Option 4
Show child attributes
Show child attributes
Time the aggregate was last changed.