Asks the AI filter the given question about a sample message, its text and up to four screenshots, and returns the answer, every answer’s probability, and whether the agent would wake. Nothing is saved and no run starts. The model call is billed to the organization like a filter evaluation on a real message.
POST
/
managed-agents
/
v1
/
automation-classifier-tests
Test an AI filter on a sample message
curl --request POST \
--url https://api.recursion.labelbox.com/managed-agents/v1/automation-classifier-tests \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"classifier": {
"answers": [
{
"description": "A problem, a question, or a request for action.",
"value": "active_issue"
},
{
"description": "A status update or FYI with no ask.",
"value": "informational"
}
],
"mode": "preview",
"question": "Does this message report a problem or ask for help?",
"rule": {
"conditions": [
{
"answer": "active_issue",
"atLeastPercent": 80
}
],
"when": "wake"
},
"send": "text_and_images"
},
"message": {
"images": [
{
"data": "<string>"
}
],
"text": "<string>"
}
}
'
import requests
url = "https://api.recursion.labelbox.com/managed-agents/v1/automation-classifier-tests"
payload = {
"classifier": {
"answers": [
{
"description": "A problem, a question, or a request for action.",
"value": "active_issue"
},
{
"description": "A status update or FYI with no ask.",
"value": "informational"
}
],
"mode": "preview",
"question": "Does this message report a problem or ask for help?",
"rule": {
"conditions": [
{
"answer": "active_issue",
"atLeastPercent": 80
}
],
"when": "wake"
},
"send": "text_and_images"
},
"message": {
"images": [{ "data": "<string>" }],
"text": "<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({
classifier: {
answers: [
{
description: 'A problem, a question, or a request for action.',
value: 'active_issue'
},
{description: 'A status update or FYI with no ask.', value: 'informational'}
],
mode: 'preview',
question: 'Does this message report a problem or ask for help?',
rule: {conditions: [{answer: 'active_issue', atLeastPercent: 80}], when: 'wake'},
send: 'text_and_images'
},
message: {images: [{data: '<string>'}], text: '<string>'}
})
};
fetch('https://api.recursion.labelbox.com/managed-agents/v1/automation-classifier-tests', 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/automation-classifier-tests",
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([
'classifier' => [
'answers' => [
[
'description' => 'A problem, a question, or a request for action.',
'value' => 'active_issue'
],
[
'description' => 'A status update or FYI with no ask.',
'value' => 'informational'
]
],
'mode' => 'preview',
'question' => 'Does this message report a problem or ask for help?',
'rule' => [
'conditions' => [
[
'answer' => 'active_issue',
'atLeastPercent' => 80
]
],
'when' => 'wake'
],
'send' => 'text_and_images'
],
'message' => [
'images' => [
[
'data' => '<string>'
]
],
'text' => '<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.recursion.labelbox.com/managed-agents/v1/automation-classifier-tests"
payload := strings.NewReader("{\n \"classifier\": {\n \"answers\": [\n {\n \"description\": \"A problem, a question, or a request for action.\",\n \"value\": \"active_issue\"\n },\n {\n \"description\": \"A status update or FYI with no ask.\",\n \"value\": \"informational\"\n }\n ],\n \"mode\": \"preview\",\n \"question\": \"Does this message report a problem or ask for help?\",\n \"rule\": {\n \"conditions\": [\n {\n \"answer\": \"active_issue\",\n \"atLeastPercent\": 80\n }\n ],\n \"when\": \"wake\"\n },\n \"send\": \"text_and_images\"\n },\n \"message\": {\n \"images\": [\n {\n \"data\": \"<string>\"\n }\n ],\n \"text\": \"<string>\"\n }\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.recursion.labelbox.com/managed-agents/v1/automation-classifier-tests")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"classifier\": {\n \"answers\": [\n {\n \"description\": \"A problem, a question, or a request for action.\",\n \"value\": \"active_issue\"\n },\n {\n \"description\": \"A status update or FYI with no ask.\",\n \"value\": \"informational\"\n }\n ],\n \"mode\": \"preview\",\n \"question\": \"Does this message report a problem or ask for help?\",\n \"rule\": {\n \"conditions\": [\n {\n \"answer\": \"active_issue\",\n \"atLeastPercent\": 80\n }\n ],\n \"when\": \"wake\"\n },\n \"send\": \"text_and_images\"\n },\n \"message\": {\n \"images\": [\n {\n \"data\": \"<string>\"\n }\n ],\n \"text\": \"<string>\"\n }\n}")
.asString();
require 'uri'
require 'net/http'
url = URI("https://api.recursion.labelbox.com/managed-agents/v1/automation-classifier-tests")
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 \"classifier\": {\n \"answers\": [\n {\n \"description\": \"A problem, a question, or a request for action.\",\n \"value\": \"active_issue\"\n },\n {\n \"description\": \"A status update or FYI with no ask.\",\n \"value\": \"informational\"\n }\n ],\n \"mode\": \"preview\",\n \"question\": \"Does this message report a problem or ask for help?\",\n \"rule\": {\n \"conditions\": [\n {\n \"answer\": \"active_issue\",\n \"atLeastPercent\": 80\n }\n ],\n \"when\": \"wake\"\n },\n \"send\": \"text_and_images\"\n },\n \"message\": {\n \"images\": [\n {\n \"data\": \"<string>\"\n }\n ],\n \"text\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body
Organization 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.
Minimum string length: 1
Body
application/json
An AI filter and a sample message to test it on. Nothing is saved and no run starts; the model call is billed like any other.
The AI filter to test, as it would be saved on the trigger.
Show child attributes
Example:
{
"answers": [
{
"description": "A problem, a question, or a request for action.",
"value": "active_issue"
},
{
"description": "A status update or FYI with no ask.",
"value": "informational"
}
],
"mode": "preview",
"question": "Does this message report a problem or ask for help?",
"rule": {
"conditions": [
{
"answer": "active_issue",
"atLeastPercent": 80
}
],
"when": "wake"
},
"send": "text_and_images"
}
Whether this message would wake the agent with the filter saved as given. In preview mode the agent always wakes; this says what mode on would do.
{"docsConfig":{"theme":"aspen","$schema":"https://mintlify.com/docs.json","name":"Labelbox","description":"Documentation for Recursion Managed Agents and the Labelbox platform.","colors":{"primary":"#36707F","light":"#7EB3C1","dark":"#274E58"},"logo":{"light":"https://mintcdn.com/labelbox-1db23ff4/badqlfNjN52ySAbU/logo/light.svg?fit=max\u0026auto=format\u0026n=badqlfNjN52ySAbU\u0026q=85\u0026s=2e7592619836dadfb7384597f9e48bec","dark":"https://mintcdn.com/labelbox-1db23ff4/badqlfNjN52ySAbU/logo/dark.svg?fit=max\u0026auto=format\u0026n=badqlfNjN52ySAbU\u0026q=85\u0026s=080727ffefbdc01f5e275a0f13cdd5c2","href":"/"},"favicon":"https://mintcdn.com/labelbox-1db23ff4/badqlfNjN52ySAbU/favicon.svg?fit=max\u0026auto=format\u0026n=badqlfNjN52ySAbU\u0026q=85\u0026s=35e9a808129eb1b044e5cc202e88eaa7","appearance":{"default":"light"},"background":{"color":{"light":"#FFFDF8","dark":"#202020"}},"navbar":{"primary":{"type":"button","label":"Open console","href":"https://recursion.labelbox.com"}},"footer":{"socials":{"github":"https://github.com/Labelbox","linkedin":"https://www.linkedin.com/company/labelbox"},"links":[{"header":"Products","items":[{"label":"Recursion","href":"/recursion"},{"label":"Horizon","href":"/horizon"}]},{"header":"Resources","items":[{"label":"Release notes","href":"/horizon/release-notes"},{"label":"Status","href":"https://status.labelbox.com"},{"label":"Blog","href":"https://labelbox.com/blog"}]},{"header":"Company","items":[{"label":"labelbox.com","href":"https://labelbox.com"},{"label":"Contact sales","href":"https://labelbox.com/sales"}]}]},"fonts":{"heading":{"family":"The Future","source":"https://labelbox.com/static/fonts/The-future/the-future-regular.woff2","format":"woff2"},"body":{"family":"IBM Plex Sans"}},"styling":{"eyebrows":"section","codeblocks":{"theme":"css-variables"},"latex":true},"integrations":{"amplitude":{"apiKey":"b375bb454cbc0ba0b780648b3f4ddc18"}},"contextual":{"options":["copy","view","chatgpt","claude","cursor","mcp"],"display":"header"},"variables":{"recursion-api-base":"https://api.recursion.labelbox.com","recursion-console-url":"https://recursion.labelbox.com","recursion-docs-mcp-url":"https://docs.labelbox.com/mcp","recursion-mcp-url":"https://api.recursion.labelbox.com/mcp"},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"labelbox-1db23ff4","hasAudioNarration":false,"actualSubdomain":"labelbox-1db23ff4","customDomains":["docs.labelbox.com"],"gitSource":{"_id":"6ad7fa91692c7c940ff17a10","type":"github","owner":"labelbox","repo":"lbx-docs-mintlify","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":"","isBase":true},"chroma":{"liveDeploymentHistoryId":"6ae89948d2f0a6b0237e313d","collectionId":"9bcd44e3-0583-4d7b-b808-794669b206bd","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae89948d2f0a6b0237e313d"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"ENABLED"},"CONTEXTUAL_FEEDBACK":{"status":"ENABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae8ba1c5d89f58bdbcfa82b","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"default","tag":"Recursion","count":214},{"language":"default","tag":"API reference","count":185},{"language":"default","tag":"Horizon","count":179},{"language":"default","tag":"Endpoints","count":171},{"language":"default","tag":"Guides","count":129},{"language":"default","tag":"Developer guides","count":83},{"language":"default","tag":"Import/Export","count":43},{"language":"default","tag":"Label data","count":35},{"language":"default","tag":"Sessions","count":32},{"language":"default","tag":"Environments","count":24}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[{"filePath":"styles/design-tokens.css","content":":root{--lb-color-primary-50:#eff6f8;--lb-color-primary-100:#dcecef;--lb-color-primary-200:#bcd9e0;--lb-color-primary-300:#9cc6d1;--lb-color-primary-400:#7eb3c1;--lb-color-primary-500:#5a98a7;--lb-color-primary-600:#36707f;--lb-color-primary-700:#2b5965;--lb-color-primary-800:#21454e;--lb-color-primary-900:#173138;--lb-color-secondary-50:#fbf1eb;--lb-color-secondary-100:#f4ddd0;--lb-color-secondary-200:#e7bda4;--lb-color-secondary-300:#dba47f;--lb-color-secondary-400:#d09372;--lb-color-secondary-500:#c1764f;--lb-color-secondary-600:#b15e3a;--lb-color-secondary-700:#8f4a2d;--lb-color-secondary-800:#6d3922;--lb-color-secondary-900:#4b2718;--lb-color-error-50:#fbeef0;--lb-color-error-100:#f3d4da;--lb-color-error-200:#e8aeb8;--lb-color-error-300:#df97a4;--lb-color-error-400:#db8090;--lb-color-error-500:#bd5e72;--lb-color-error-600:#9e3b52;--lb-color-error-700:#7e2f42;--lb-color-error-800:#5e2331;--lb-color-error-900:#3f1721;--lb-color-warning-50:#fdf3e4;--lb-color-warning-100:#f9e2bf;--lb-color-warning-200:#f4cd8f;--lb-color-warning-300:#efb162;--lb-color-warning-400:#e89a3e;--lb-color-warning-500:#e0892a;--lb-color-warning-600:#c2701a;--lb-color-warning-700:#9b5614;--lb-color-warning-800:#74400f;--lb-color-warning-900:#4e2b0a;--lb-color-info-50:#eef5fa;--lb-color-info-100:#d4e7f2;--lb-color-info-200:#b3d3e6;--lb-color-info-300:#9cc3df;--lb-color-info-400:#7bb0d4;--lb-color-info-500:#5390bb;--lb-color-info-600:#2f6f9e;--lb-color-info-700:#275d84;--lb-color-info-800:#1f4a6a;--lb-color-info-900:#163750;--lb-color-success-50:#eef7f2;--lb-color-success-100:#d3ece0;--lb-color-success-200:#aedcc4;--lb-color-success-300:#8fcdab;--lb-color-success-400:#74bd97;--lb-color-success-500:#519a76;--lb-color-success-600:#3a785c;--lb-color-success-700:#2f6149;--lb-color-success-800:#244a38;--lb-color-success-900:#183227;--lb-color-grey-50:#faf8f5;--lb-color-grey-100:#f1ede6;--lb-color-grey-200:#e5dfd5;--lb-color-grey-300:#d4ccbf;--lb-color-grey-400:#b0a89b;--lb-color-grey-500:#847c70;--lb-color-grey-600:#5f574d;--lb-color-grey-700:#46403a;--lb-color-grey-800:#2b2724;--lb-color-grey-900:#1a1714;--lb-color-grey-a100:#efe9e0;--lb-color-grey-a200:#e0d8cc;--lb-color-grey-a400:#b0a89b;--lb-color-grey-a700:#6b6359;--lb-font-sans:\"IBM Plex Sans\", \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;--lb-font-display:\"The Future\", \"IBM Plex Sans\", sans-serif;--lb-ease:cubic-bezier(0.22, 1, 0.36, 1);--lb-duration-fast:200ms;--lb-duration-base:300ms;--lb-duration-slow:500ms;--lb-font-mono:\"IBM Plex Mono\", \"JetBrains Mono\", \"SFMono-Regular\", Menlo, Consolas,\n \"Courier New\", monospace;--lb-radius:8px;--lb-blur-panel:blur(12px) saturate(180%);--lb-blur-scrim:blur(6px);--lb-tag-teal:#4d97a5;--lb-tag-petrol:#2f7e86;--lb-tag-sky:#5b8ec9;--lb-tag-steel:#41699e;--lb-tag-indigo:#6a6ec7;--lb-tag-violet:#8567bf;--lb-tag-plum:#9b5fae;--lb-tag-mauve:#ab7196;--lb-tag-magenta:#b85792;--lb-tag-rose:#c65f81;--lb-tag-crimson:#b94a59;--lb-tag-red:#cf6253;--lb-tag-terracotta:#c9774f;--lb-tag-clay:#a96a4a;--lb-tag-orange:#d2883c;--lb-tag-amber:#c39a39;--lb-tag-gold:#ab9a3f;--lb-tag-olive:#8b9a48;--lb-tag-moss:#6f9a4f;--lb-tag-green:#4f9e63;--lb-tag-emerald:#3a9d7e;--lb-tag-sage:#7fae93;--lb-tag-slate:#6b7a8c;--lb-tag-taupe:#9a8a78;--lb-tag-cyan:#3fa7b5;--lb-tag-navy:#3a5687;--lb-tag-periwinkle:#8a9fd6;--lb-tag-lavender:#b3a3d6;--lb-tag-fuchsia:#c473ad;--lb-tag-coral:#d97f6a;--lb-tag-peach:#dba074;--lb-tag-khaki:#bcae6a;--lb-tag-lime:#a3b94f;--lb-tag-mint:#84c4a6;--lb-tag-cocoa:#8a6a52;--lb-tag-pewter:#8c8a86;--lb-card-teal-accent:var(--lb-tag-teal);--lb-card-teal-surface:color-mix(\n in srgb,\n var(--lb-tag-teal) 14%,\n var(--lb-bg-light)\n );--lb-card-teal-border:color-mix(\n in srgb,\n var(--lb-tag-teal) 36%,\n var(--lb-border-main)\n );--lb-card-teal-glow:color-mix(\n in srgb,\n var(--lb-tag-teal) 26%,\n transparent\n );--lb-card-petrol-accent:var(--lb-tag-petrol);--lb-card-petrol-surface:color-mix(\n in srgb,\n var(--lb-tag-petrol) 14%,\n var(--lb-bg-light)\n );--lb-card-petrol-border:color-mix(\n in srgb,\n var(--lb-tag-petrol) 36%,\n var(--lb-border-main)\n );--lb-card-petrol-glow:color-mix(\n in srgb,\n var(--lb-tag-petrol) 26%,\n transparent\n );--lb-card-sky-accent:var(--lb-tag-sky);--lb-card-sky-surface:color-mix(\n in srgb,\n var(--lb-tag-sky) 14%,\n var(--lb-bg-light)\n );--lb-card-sky-border:color-mix(\n in srgb,\n var(--lb-tag-sky) 36%,\n var(--lb-border-main)\n );--lb-card-sky-glow:color-mix(\n in srgb,\n var(--lb-tag-sky) 26%,\n transparent\n );--lb-card-steel-accent:var(--lb-tag-steel);--lb-card-steel-surface:color-mix(\n in srgb,\n var(--lb-tag-steel) 14%,\n var(--lb-bg-light)\n );--lb-card-steel-border:color-mix(\n in srgb,\n var(--lb-tag-steel) 36%,\n var(--lb-border-main)\n );--lb-card-steel-glow:color-mix(\n in srgb,\n var(--lb-tag-steel) 26%,\n transparent\n );--lb-card-indigo-accent:var(--lb-tag-indigo);--lb-card-indigo-surface:color-mix(\n in srgb,\n var(--lb-tag-indigo) 14%,\n var(--lb-bg-light)\n );--lb-card-indigo-border:color-mix(\n in srgb,\n var(--lb-tag-indigo) 36%,\n var(--lb-border-main)\n );--lb-card-indigo-glow:color-mix(\n in srgb,\n var(--lb-tag-indigo) 26%,\n transparent\n );--lb-card-violet-accent:var(--lb-tag-violet);--lb-card-violet-surface:color-mix(\n in srgb,\n var(--lb-tag-violet) 14%,\n var(--lb-bg-light)\n );--lb-card-violet-border:color-mix(\n in srgb,\n var(--lb-tag-violet) 36%,\n var(--lb-border-main)\n );--lb-card-violet-glow:color-mix(\n in srgb,\n var(--lb-tag-violet) 26%,\n transparent\n );--lb-card-plum-accent:var(--lb-tag-plum);--lb-card-plum-surface:color-mix(\n in srgb,\n var(--lb-tag-plum) 14%,\n var(--lb-bg-light)\n );--lb-card-plum-border:color-mix(\n in srgb,\n var(--lb-tag-plum) 36%,\n var(--lb-border-main)\n );--lb-card-plum-glow:color-mix(\n in srgb,\n var(--lb-tag-plum) 26%,\n transparent\n );--lb-card-mauve-accent:var(--lb-tag-mauve);--lb-card-mauve-surface:color-mix(\n in srgb,\n var(--lb-tag-mauve) 14%,\n var(--lb-bg-light)\n );--lb-card-mauve-border:color-mix(\n in srgb,\n var(--lb-tag-mauve) 36%,\n var(--lb-border-main)\n );--lb-card-mauve-glow:color-mix(\n in srgb,\n var(--lb-tag-mauve) 26%,\n transparent\n );--lb-card-magenta-accent:var(--lb-tag-magenta);--lb-card-magenta-surface:color-mix(\n in srgb,\n var(--lb-tag-magenta) 14%,\n var(--lb-bg-light)\n );--lb-card-magenta-border:color-mix(\n in srgb,\n var(--lb-tag-magenta) 36%,\n var(--lb-border-main)\n );--lb-card-magenta-glow:color-mix(\n in srgb,\n var(--lb-tag-magenta) 26%,\n transparent\n );--lb-card-rose-accent:var(--lb-tag-rose);--lb-card-rose-surface:color-mix(\n in srgb,\n var(--lb-tag-rose) 14%,\n var(--lb-bg-light)\n );--lb-card-rose-border:color-mix(\n in srgb,\n var(--lb-tag-rose) 36%,\n var(--lb-border-main)\n );--lb-card-rose-glow:color-mix(\n in srgb,\n var(--lb-tag-rose) 26%,\n transparent\n );--lb-card-crimson-accent:var(--lb-tag-crimson);--lb-card-crimson-surface:color-mix(\n in srgb,\n var(--lb-tag-crimson) 14%,\n var(--lb-bg-light)\n );--lb-card-crimson-border:color-mix(\n in srgb,\n var(--lb-tag-crimson) 36%,\n var(--lb-border-main)\n );--lb-card-crimson-glow:color-mix(\n in srgb,\n var(--lb-tag-crimson) 26%,\n transparent\n );--lb-card-red-accent:var(--lb-tag-red);--lb-card-red-surface:color-mix(\n in srgb,\n var(--lb-tag-red) 14%,\n var(--lb-bg-light)\n );--lb-card-red-border:color-mix(\n in srgb,\n var(--lb-tag-red) 36%,\n var(--lb-border-main)\n );--lb-card-red-glow:color-mix(\n in srgb,\n var(--lb-tag-red) 26%,\n transparent\n );--lb-card-terracotta-accent:var(--lb-tag-terracotta);--lb-card-terracotta-surface:color-mix(\n in srgb,\n var(--lb-tag-terracotta) 14%,\n var(--lb-bg-light)\n );--lb-card-terracotta-border:color-mix(\n in srgb,\n var(--lb-tag-terracotta) 36%,\n var(--lb-border-main)\n );--lb-card-terracotta-glow:color-mix(\n in srgb,\n var(--lb-tag-terracotta) 26%,\n transparent\n );--lb-card-clay-accent:var(--lb-tag-clay);--lb-card-clay-surface:color-mix(\n in srgb,\n var(--lb-tag-clay) 14%,\n var(--lb-bg-light)\n );--lb-card-clay-border:color-mix(\n in srgb,\n var(--lb-tag-clay) 36%,\n var(--lb-border-main)\n );--lb-card-clay-glow:color-mix(\n in srgb,\n var(--lb-tag-clay) 26%,\n transparent\n );--lb-card-orange-accent:var(--lb-tag-orange);--lb-card-orange-surface:color-mix(\n in srgb,\n var(--lb-tag-orange) 14%,\n var(--lb-bg-light)\n );--lb-card-orange-border:color-mix(\n in srgb,\n var(--lb-tag-orange) 36%,\n var(--lb-border-main)\n );--lb-card-orange-glow:color-mix(\n in srgb,\n var(--lb-tag-orange) 26%,\n transparent\n );--lb-card-amber-accent:var(--lb-tag-amber);--lb-card-amber-surface:color-mix(\n in srgb,\n var(--lb-tag-amber) 14%,\n var(--lb-bg-light)\n );--lb-card-amber-border:color-mix(\n in srgb,\n var(--lb-tag-amber) 36%,\n var(--lb-border-main)\n );--lb-card-amber-glow:color-mix(\n in srgb,\n var(--lb-tag-amber) 26%,\n transparent\n );--lb-card-gold-accent:var(--lb-tag-gold);--lb-card-gold-surface:color-mix(\n in srgb,\n var(--lb-tag-gold) 14%,\n var(--lb-bg-light)\n );--lb-card-gold-border:color-mix(\n in srgb,\n var(--lb-tag-gold) 36%,\n var(--lb-border-main)\n );--lb-card-gold-glow:color-mix(\n in srgb,\n var(--lb-tag-gold) 26%,\n transparent\n );--lb-card-olive-accent:var(--lb-tag-olive);--lb-card-olive-surface:color-mix(\n in srgb,\n var(--lb-tag-olive) 14%,\n var(--lb-bg-light)\n );--lb-card-olive-border:color-mix(\n in srgb,\n var(--lb-tag-olive) 36%,\n var(--lb-border-main)\n );--lb-card-olive-glow:color-mix(\n in srgb,\n var(--lb-tag-olive) 26%,\n transparent\n );--lb-card-moss-accent:var(--lb-tag-moss);--lb-card-moss-surface:color-mix(\n in srgb,\n var(--lb-tag-moss) 14%,\n var(--lb-bg-light)\n );--lb-card-moss-border:color-mix(\n in srgb,\n var(--lb-tag-moss) 36%,\n var(--lb-border-main)\n );--lb-card-moss-glow:color-mix(\n in srgb,\n var(--lb-tag-moss) 26%,\n transparent\n );--lb-card-green-accent:var(--lb-tag-green);--lb-card-green-surface:color-mix(\n in srgb,\n var(--lb-tag-green) 14%,\n var(--lb-bg-light)\n );--lb-card-green-border:color-mix(\n in srgb,\n var(--lb-tag-green) 36%,\n var(--lb-border-main)\n );--lb-card-green-glow:color-mix(\n in srgb,\n var(--lb-tag-green) 26%,\n transparent\n );--lb-card-emerald-accent:var(--lb-tag-emerald);--lb-card-emerald-surface:color-mix(\n in srgb,\n var(--lb-tag-emerald) 14%,\n var(--lb-bg-light)\n );--lb-card-emerald-border:color-mix(\n in srgb,\n var(--lb-tag-emerald) 36%,\n var(--lb-border-main)\n );--lb-card-emerald-glow:color-mix(\n in srgb,\n var(--lb-tag-emerald) 26%,\n transparent\n );--lb-card-sage-accent:var(--lb-tag-sage);--lb-card-sage-surface:color-mix(\n in srgb,\n var(--lb-tag-sage) 14%,\n var(--lb-bg-light)\n );--lb-card-sage-border:color-mix(\n in srgb,\n var(--lb-tag-sage) 36%,\n var(--lb-border-main)\n );--lb-card-sage-glow:color-mix(\n in srgb,\n var(--lb-tag-sage) 26%,\n transparent\n );--lb-card-slate-accent:var(--lb-tag-slate);--lb-card-slate-surface:color-mix(\n in srgb,\n var(--lb-tag-slate) 14%,\n var(--lb-bg-light)\n );--lb-card-slate-border:color-mix(\n in srgb,\n var(--lb-tag-slate) 36%,\n var(--lb-border-main)\n );--lb-card-slate-glow:color-mix(\n in srgb,\n var(--lb-tag-slate) 26%,\n transparent\n );--lb-card-taupe-accent:var(--lb-tag-taupe);--lb-card-taupe-surface:color-mix(\n in srgb,\n var(--lb-tag-taupe) 14%,\n var(--lb-bg-light)\n );--lb-card-taupe-border:color-mix(\n in srgb,\n var(--lb-tag-taupe) 36%,\n var(--lb-border-main)\n );--lb-card-taupe-glow:color-mix(\n in srgb,\n var(--lb-tag-taupe) 26%,\n transparent\n );--lb-card-cyan-accent:var(--lb-tag-cyan);--lb-card-cyan-surface:color-mix(\n in srgb,\n var(--lb-tag-cyan) 14%,\n var(--lb-bg-light)\n );--lb-card-cyan-border:color-mix(\n in srgb,\n var(--lb-tag-cyan) 36%,\n var(--lb-border-main)\n );--lb-card-cyan-glow:color-mix(\n in srgb,\n var(--lb-tag-cyan) 26%,\n transparent\n );--lb-card-navy-accent:var(--lb-tag-navy);--lb-card-navy-surface:color-mix(\n in srgb,\n var(--lb-tag-navy) 14%,\n var(--lb-bg-light)\n );--lb-card-navy-border:color-mix(\n in srgb,\n var(--lb-tag-navy) 36%,\n var(--lb-border-main)\n );--lb-card-navy-glow:color-mix(\n in srgb,\n var(--lb-tag-navy) 26%,\n transparent\n );--lb-card-periwinkle-accent:var(--lb-tag-periwinkle);--lb-card-periwinkle-surface:color-mix(\n in srgb,\n var(--lb-tag-periwinkle) 14%,\n var(--lb-bg-light)\n );--lb-card-periwinkle-border:color-mix(\n in srgb,\n var(--lb-tag-periwinkle) 36%,\n var(--lb-border-main)\n );--lb-card-periwinkle-glow:color-mix(\n in srgb,\n var(--lb-tag-periwinkle) 26%,\n transparent\n );--lb-card-lavender-accent:var(--lb-tag-lavender);--lb-card-lavender-surface:color-mix(\n in srgb,\n var(--lb-tag-lavender) 14%,\n var(--lb-bg-light)\n );--lb-card-lavender-border:color-mix(\n in srgb,\n var(--lb-tag-lavender) 36%,\n var(--lb-border-main)\n );--lb-card-lavender-glow:color-mix(\n in srgb,\n var(--lb-tag-lavender) 26%,\n transparent\n );--lb-card-fuchsia-accent:var(--lb-tag-fuchsia);--lb-card-fuchsia-surface:color-mix(\n in srgb,\n var(--lb-tag-fuchsia) 14%,\n var(--lb-bg-light)\n );--lb-card-fuchsia-border:color-mix(\n in srgb,\n var(--lb-tag-fuchsia) 36%,\n var(--lb-border-main)\n );--lb-card-fuchsia-glow:color-mix(\n in srgb,\n var(--lb-tag-fuchsia) 26%,\n transparent\n );--lb-card-coral-accent:var(--lb-tag-coral);--lb-card-coral-surface:color-mix(\n in srgb,\n var(--lb-tag-coral) 14%,\n var(--lb-bg-light)\n );--lb-card-coral-border:color-mix(\n in srgb,\n var(--lb-tag-coral) 36%,\n var(--lb-border-main)\n );--lb-card-coral-glow:color-mix(\n in srgb,\n var(--lb-tag-coral) 26%,\n transparent\n );--lb-card-peach-accent:var(--lb-tag-peach);--lb-card-peach-surface:color-mix(\n in srgb,\n var(--lb-tag-peach) 14%,\n var(--lb-bg-light)\n );--lb-card-peach-border:color-mix(\n in srgb,\n var(--lb-tag-peach) 36%,\n var(--lb-border-main)\n );--lb-card-peach-glow:color-mix(\n in srgb,\n var(--lb-tag-peach) 26%,\n transparent\n );--lb-card-khaki-accent:var(--lb-tag-khaki);--lb-card-khaki-surface:color-mix(\n in srgb,\n var(--lb-tag-khaki) 14%,\n var(--lb-bg-light)\n );--lb-card-khaki-border:color-mix(\n in srgb,\n var(--lb-tag-khaki) 36%,\n var(--lb-border-main)\n );--lb-card-khaki-glow:color-mix(\n in srgb,\n var(--lb-tag-khaki) 26%,\n transparent\n );--lb-card-lime-accent:var(--lb-tag-lime);--lb-card-lime-surface:color-mix(\n in srgb,\n var(--lb-tag-lime) 14%,\n var(--lb-bg-light)\n );--lb-card-lime-border:color-mix(\n in srgb,\n var(--lb-tag-lime) 36%,\n var(--lb-border-main)\n );--lb-card-lime-glow:color-mix(\n in srgb,\n var(--lb-tag-lime) 26%,\n transparent\n );--lb-card-mint-accent:var(--lb-tag-mint);--lb-card-mint-surface:color-mix(\n in srgb,\n var(--lb-tag-mint) 14%,\n var(--lb-bg-light)\n );--lb-card-mint-border:color-mix(\n in srgb,\n var(--lb-tag-mint) 36%,\n var(--lb-border-main)\n );--lb-card-mint-glow:color-mix(\n in srgb,\n var(--lb-tag-mint) 26%,\n transparent\n );--lb-card-cocoa-accent:var(--lb-tag-cocoa);--lb-card-cocoa-surface:color-mix(\n in srgb,\n var(--lb-tag-cocoa) 14%,\n var(--lb-bg-light)\n );--lb-card-cocoa-border:color-mix(\n in srgb,\n var(--lb-tag-cocoa) 36%,\n var(--lb-border-main)\n );--lb-card-cocoa-glow:color-mix(\n in srgb,\n var(--lb-tag-cocoa) 26%,\n transparent\n );--lb-card-pewter-accent:var(--lb-tag-pewter);--lb-card-pewter-surface:color-mix(\n in srgb,\n var(--lb-tag-pewter) 14%,\n var(--lb-bg-light)\n );--lb-card-pewter-border:color-mix(\n in srgb,\n var(--lb-tag-pewter) 36%,\n var(--lb-border-main)\n );--lb-card-pewter-glow:color-mix(\n in srgb,\n var(--lb-tag-pewter) 26%,\n transparent\n )}.dark,.light{--lb-warning-contrast-text:#2a1c06;--lb-focus-outline-offset:2px;--lb-scrollbar-size:8px;--lb-scrollbar-size-thin:5px;--lb-scrollbar-radius:9999px;--lb-scrollbar-track:transparent;--lb-scrollbar-rail:var(--lb-action-hover);--lb-scrollbar-thumb-border:3px solid var(--lb-bg-default);--lb-scrollbar-fade-duration:0.28s;--lb-scrollbar-thumb-solid-active:var(--lb-primary-main);--lb-scrollbar-thumb-gradient-hover:linear-gradient(\n 180deg,\n var(--lb-primary-light) 0%,\n var(--lb-primary-main) 100%\n );--lb-scrollbar-thumb-gradient-active:linear-gradient(\n 180deg,\n var(--lb-primary-main) 0%,\n var(--lb-primary-dark) 100%\n )}.light{--lb-primary-main:#36707f;--lb-primary-light:#5d99a8;--lb-primary-dark:#274e58;--lb-primary-contrast-text:#ffffff;--lb-secondary-main:#b15e3a;--lb-secondary-light:#c8855f;--lb-secondary-dark:#854227;--lb-secondary-contrast-text:#ffffff;--lb-error-main:#9e3b52;--lb-error-light:#b9697a;--lb-error-dark:#6f2737;--lb-error-contrast-text:#ffffff;--lb-warning-main:#e0892a;--lb-warning-light:#eaa658;--lb-warning-dark:#a8631a;--lb-info-main:#2f6f9e;--lb-info-light:#5e93bb;--lb-info-dark:#21506f;--lb-info-contrast-text:#ffffff;--lb-success-main:#3a785c;--lb-success-light:#6aae89;--lb-success-dark:#25503c;--lb-success-contrast-text:#ffffff;--lb-text-primary:#2a2622;--lb-text-secondary:rgba(42, 38, 34, 0.74);--lb-text-muted:rgba(42, 38, 34, 0.68);--lb-text-disabled:rgba(42, 38, 34, 0.4);--lb-bg-default:var(--lb-color-grey-100);--lb-bg-paper:color-mix(\n in srgb,\n var(--lb-color-grey-100) 50%,\n var(--lb-color-grey-50)\n );--lb-bg-light:#fffdf8;--lb-divider:rgba(67, 126, 142, 0.18);--lb-border-main:rgba(67, 126, 142, 0.22);--lb-border-dark:rgba(67, 126, 142, 0.34);--lb-border-transparent:rgba(67, 126, 142, 0);--lb-action-active:rgba(42, 38, 34, 0.54);--lb-action-hover:rgba(54, 112, 127, 0.06);--lb-action-selected:rgba(54, 112, 127, 0.12);--lb-action-disabled:rgba(42, 38, 34, 0.26);--lb-action-disabled-bg:rgba(42, 38, 34, 0.12);--lb-action-focus:rgba(54, 112, 127, 0.16);--lb-focus-ring:#36707f;--lb-focus-glow:rgba(54, 112, 127, 0.24);--lb-focus-shadow:0 0 0 2px var(--lb-bg-paper), 0 0 0 4px #36707f,\n 0 0 0 7px rgba(54, 112, 127, 0.24);--lb-focus-outline:2px solid #36707f;--lb-shadow-xs:0 1px 2px rgba(42, 38, 34, 0.06);--lb-shadow-sm:0 1px 2px rgba(42, 38, 34, 0.06), 0 2px 6px rgba(42, 38, 34, 0.06);--lb-shadow-md:0 2px 6px rgba(42, 38, 34, 0.06), 0 8px 16px rgba(42, 38, 34, 0.08);--lb-shadow-lg:0 6px 16px rgba(42, 38, 34, 0.08), 0 16px 32px rgba(42, 38, 34, 0.1);--lb-shadow-xl:0 12px 28px rgba(42, 38, 34, 0.1), 0 28px 56px rgba(42, 38, 34, 0.14);--lb-glass-bg:color-mix(in srgb, var(--lb-bg-paper) 72%, transparent);--lb-glass-bg-subtle:color-mix(in srgb, var(--lb-bg-paper) 42%, transparent);--lb-glass-border:rgba(67, 126, 142, 0.22);--lb-scrim:rgba(42, 38, 34, 0.2);--lb-scrollbar-thumb-solid:color-mix(\n in srgb,\n var(--lb-primary-main) 26%,\n transparent\n );--lb-scrollbar-thumb-solid-hover:color-mix(\n in srgb,\n var(--lb-primary-main) 52%,\n transparent\n );--lb-scrollbar-thumb-gradient:linear-gradient(\n 180deg,\n color-mix(in srgb, var(--lb-soft-primary-bg) 88%, var(--lb-primary-light)) 0%,\n color-mix(in srgb, var(--lb-soft-primary-bg-active) 82%, var(--lb-primary-main)) 100%\n );--lb-scrollbar-thumb-shadow:0 1px 2px rgba(42, 38, 34, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.28);--lb-scrollbar-thumb-shadow-hover:0 2px 6px rgba(42, 38, 34, 0.14), 0 0 10px var(--lb-focus-glow),\n inset 0 1px 0 rgba(255, 255, 255, 0.34);--lb-soft-primary-text:#274e58;--lb-soft-primary-bg:#dcecef;--lb-soft-primary-bg-hover:#bcd9e0;--lb-soft-primary-bg-active:#9cc6d1;--lb-soft-secondary-text:#854227;--lb-soft-secondary-bg:#f4ddd0;--lb-soft-secondary-bg-hover:#e7bda4;--lb-soft-secondary-bg-active:#dba47f;--lb-soft-error-text:#6f2737;--lb-soft-error-bg:#f3d4da;--lb-soft-error-bg-hover:#e8aeb8;--lb-soft-error-bg-active:#df97a4;--lb-soft-warning-text:#a8631a;--lb-soft-warning-bg:#f9e2bf;--lb-soft-warning-bg-hover:#f4cd8f;--lb-soft-warning-bg-active:#efb162;--lb-soft-info-text:#21506f;--lb-soft-info-bg:#d4e7f2;--lb-soft-info-bg-hover:#b3d3e6;--lb-soft-info-bg-active:#9cc3df;--lb-soft-success-text:#25503c;--lb-soft-success-bg:#d3ece0;--lb-soft-success-bg-hover:#aedcc4;--lb-soft-success-bg-active:#8fcdab}.dark{--lb-primary-main:#7eb3c1;--lb-primary-light:#a3c9d2;--lb-primary-dark:#5d99a8;--lb-primary-contrast-text:#0f242b;--lb-secondary-main:#d09372;--lb-secondary-light:#e2b095;--lb-secondary-dark:#a86f4f;--lb-secondary-contrast-text:#2b160c;--lb-error-main:#db8090;--lb-error-light:#e8a6b1;--lb-error-dark:#b3596b;--lb-error-contrast-text:#2b1015;--lb-warning-main:#e89a3e;--lb-warning-light:#f2bd78;--lb-warning-dark:#c17a22;--lb-info-main:#7bb0d4;--lb-info-light:#a6cce5;--lb-info-dark:#5891bb;--lb-info-contrast-text:#0e1f2b;--lb-success-main:#74bd97;--lb-success-light:#9ed5b6;--lb-success-dark:#4c9670;--lb-success-contrast-text:#0f2419;--lb-text-primary:#f5f5f4;--lb-text-secondary:rgba(245, 245, 244, 0.78);--lb-text-muted:rgba(245, 245, 244, 0.64);--lb-text-disabled:rgba(245, 245, 244, 0.42);--lb-bg-default:#181818;--lb-bg-paper:#202020;--lb-bg-light:#262626;--lb-divider:rgba(126, 179, 193, 0.14);--lb-border-main:rgba(126, 179, 193, 0.18);--lb-border-dark:rgba(126, 179, 193, 0.3);--lb-border-transparent:rgba(126, 179, 193, 0);--lb-action-active:rgba(245, 245, 244, 0.56);--lb-action-hover:rgba(126, 179, 193, 0.08);--lb-action-selected:rgba(126, 179, 193, 0.16);--lb-action-disabled:rgba(245, 245, 244, 0.3);--lb-action-disabled-bg:rgba(245, 245, 244, 0.12);--lb-action-focus:rgba(126, 179, 193, 0.24);--lb-focus-ring:#7eb3c1;--lb-focus-glow:rgba(126, 179, 193, 0.34);--lb-focus-shadow:0 0 0 2px #202020, 0 0 0 4px #7eb3c1, 0 0 0 7px rgba(126, 179, 193, 0.34);--lb-focus-outline:2px solid #7eb3c1;--lb-shadow-xs:0 1px 2px rgba(0, 0, 0, 0.22);--lb-shadow-sm:0 1px 2px rgba(0, 0, 0, 0.22), 0 2px 4px rgba(0, 0, 0, 0.18);--lb-shadow-md:0 2px 5px rgba(0, 0, 0, 0.22), 0 6px 12px rgba(0, 0, 0, 0.24);--lb-shadow-lg:0 4px 10px rgba(0, 0, 0, 0.26), 0 12px 24px rgba(0, 0, 0, 0.3);--lb-shadow-xl:0 8px 16px rgba(0, 0, 0, 0.28), 0 18px 36px rgba(0, 0, 0, 0.34);--lb-glass-bg:rgba(32, 32, 32, 0.62);--lb-glass-bg-subtle:rgba(32, 32, 32, 0.38);--lb-glass-border:rgba(126, 179, 193, 0.18);--lb-scrim:rgba(0, 0, 0, 0.45);--lb-scrollbar-thumb-solid:color-mix(\n in srgb,\n var(--lb-primary-main) 30%,\n transparent\n );--lb-scrollbar-thumb-solid-hover:color-mix(\n in srgb,\n var(--lb-primary-main) 56%,\n transparent\n );--lb-scrollbar-thumb-gradient:linear-gradient(\n 180deg,\n color-mix(in srgb, var(--lb-soft-primary-bg) 92%, var(--lb-primary-light)) 0%,\n color-mix(in srgb, var(--lb-soft-primary-bg-hover) 88%, var(--lb-primary-main)) 100%\n );--lb-scrollbar-thumb-shadow:0 1px 3px rgba(0, 0, 0, 0.32), inset 0 1px 0 rgba(255, 255, 255, 0.08);--lb-scrollbar-thumb-shadow-hover:0 2px 8px rgba(0, 0, 0, 0.36), 0 0 12px var(--lb-focus-glow),\n inset 0 1px 0 rgba(255, 255, 255, 0.12);--lb-soft-primary-text:#a3c9d2;--lb-soft-primary-bg:rgba(126, 179, 193, 0.16);--lb-soft-primary-bg-hover:rgba(126, 179, 193, 0.26);--lb-soft-primary-bg-active:rgba(126, 179, 193, 0.32);--lb-soft-secondary-text:#e2b095;--lb-soft-secondary-bg:rgba(208, 147, 114, 0.16);--lb-soft-secondary-bg-hover:rgba(208, 147, 114, 0.26);--lb-soft-secondary-bg-active:rgba(208, 147, 114, 0.32);--lb-soft-error-text:#e8a6b1;--lb-soft-error-bg:rgba(219, 128, 144, 0.16);--lb-soft-error-bg-hover:rgba(219, 128, 144, 0.26);--lb-soft-error-bg-active:rgba(219, 128, 144, 0.32);--lb-soft-warning-text:#f2bd78;--lb-soft-warning-bg:rgba(232, 154, 62, 0.16);--lb-soft-warning-bg-hover:rgba(232, 154, 62, 0.26);--lb-soft-warning-bg-active:rgba(232, 154, 62, 0.32);--lb-soft-info-text:#a6cce5;--lb-soft-info-bg:rgba(123, 176, 212, 0.16);--lb-soft-info-bg-hover:rgba(123, 176, 212, 0.26);--lb-soft-info-bg-active:rgba(123, 176, 212, 0.32);--lb-soft-success-text:#9ed5b6;--lb-soft-success-bg:rgba(116, 189, 151, 0.16);--lb-soft-success-bg-hover:rgba(116, 189, 151, 0.26);--lb-soft-success-bg-active:rgba(116, 189, 151, 0.32)}"},{"filePath":"styles/docs-theme.css","content":"@font-face{font-family:\"The Future\";src:url(https://labelbox.com/static/fonts/The-future/the-future-light.woff2) format(\"woff2\");font-weight:300;font-display:swap}@font-face{font-family:\"The Future\";src:url(https://labelbox.com/static/fonts/The-future/the-future-regular.woff2) format(\"woff2\");font-weight:400;font-display:swap}@font-face{font-family:\"The Future\";src:url(https://labelbox.com/static/fonts/The-future/the-future-medium.woff2) format(\"woff2\");font-weight:500 700;font-display:swap}@font-face{font-family:\"IBM Plex Mono\";src:url(https://labelbox.com/static/fonts/IBM-Plex-Mono/woff2/IBMPlexMono-Regular.woff2) format(\"woff2\");font-weight:400;font-display:swap}@font-face{font-family:\"IBM Plex Mono\";src:url(https://labelbox.com/static/fonts/IBM-Plex-Mono/woff2/IBMPlexMono-Medium.woff2) format(\"woff2\");font-weight:500;font-display:swap}@font-face{font-family:\"IBM Plex Mono\";src:url(https://labelbox.com/static/fonts/IBM-Plex-Mono/woff2/IBMPlexMono-SemiBold.woff2) format(\"woff2\");font-weight:600 700;font-display:swap}html:root{--gray-50:250 248 245;--gray-100:241 237 230;--gray-200:229 223 213;--gray-300:212 204 191;--gray-400:176 168 155;--gray-500:132 124 112;--gray-600:95 87 77;--gray-700:70 64 58;--gray-800:43 39 36;--gray-900:26 23 20;--gray-950:17 15 13;--lb-font-mono:\"IBM Plex Mono\", \"JetBrains Mono\", ui-monospace, SFMono-Regular, Menlo, monospace;--font-family-mono-custom:var(--lb-font-mono);--lb-panel:var(--lb-bg-light);--lb-code-bg:var(--lb-color-grey-900);--lb-code-border:color-mix(in srgb, var(--lb-primary-main) 22%, transparent);color-scheme:light;--mint-background:var(--lb-code-bg);--mint-color-background:var(--lb-code-bg);--mint-color-text:var(--lb-color-grey-100);--mint-token-keyword:var(--lb-color-primary-300);--mint-token-string:var(--lb-color-success-300);--mint-token-string-expression:var(--lb-tag-mint);--mint-token-constant:var(--lb-color-warning-300);--mint-token-function:var(--lb-color-secondary-300);--mint-token-parameter:var(--lb-tag-lavender);--mint-token-comment:var(--lb-color-grey-500);--mint-token-punctuation:var(--lb-color-grey-400);--mint-token-link:var(--lb-color-primary-300);--mint-ansi-black:var(--lb-color-grey-800);--mint-ansi-red:var(--lb-color-error-300);--mint-ansi-green:var(--lb-color-success-300);--mint-ansi-yellow:var(--lb-color-warning-300);--mint-ansi-blue:var(--lb-color-info-300);--mint-ansi-magenta:var(--lb-tag-fuchsia);--mint-ansi-cyan:var(--lb-color-primary-300);--mint-ansi-white:var(--lb-color-grey-100);--mint-ansi-bright-black:var(--lb-color-grey-600);--mint-ansi-bright-red:var(--lb-color-error-200);--mint-ansi-bright-green:var(--lb-color-success-200);--mint-ansi-bright-yellow:var(--lb-color-warning-200);--mint-ansi-bright-blue:var(--lb-color-info-200);--mint-ansi-bright-magenta:var(--lb-tag-lavender);--mint-ansi-bright-cyan:var(--lb-color-primary-200);--mint-ansi-bright-white:var(--lb-color-grey-50)}html.dark:root{--lb-panel:var(--lb-bg-paper);--lb-code-bg:var(--lb-bg-default);color-scheme:dark}body,html{background-color:var(--lb-panel)}::selection{background:var(--lb-soft-primary-bg-active);color:var(--lb-text-primary)}:focus-visible{outline:var(--lb-focus-outline);outline-offset:var(--lb-focus-outline-offset)}*{scrollbar-width:thin;scrollbar-color:var(--lb-scrollbar-thumb-solid) transparent}html #navbar>.border-b,html #sidebar-content{border-color:var(--lb-divider)}html #navbar>.bg-background-light{background:var(--lb-panel)}html img:is([src$=\"recursion-mark.svg\"], [src$=\"labelbox-mark.svg\"])[class]{object-position:-9999px 0;background-color:var(--lb-text-primary);-webkit-mask:center/contain no-repeat;mask:center/contain no-repeat}html img[src$=\"recursion-mark.svg\"][class]{-webkit-mask-image:url(/images/recursion-mark.svg);mask-image:url(/images/recursion-mark.svg)}html img[src$=\"labelbox-mark.svg\"][class]{-webkit-mask-image:url(/images/labelbox-mark.svg);mask-image:url(/images/labelbox-mark.svg)}html #navbar .nav-dropdown-products-selector-trigger{gap:.55rem;height:2.125rem;padding:0 .75rem 0 .4rem;border:1px solid var(--lb-border-main);border-radius:9999px;background:var(--lb-glass-bg);color:var(--lb-text-primary);font-weight:500;transition:border-color var(--lb-duration-fast) var(--lb-ease),background-color var(--lb-duration-fast) var(--lb-ease)}html #navbar .nav-dropdown-products-selector-trigger:hover,html #navbar .nav-dropdown-products-selector-trigger[aria-expanded=true]{border-color:var(--lb-border-dark);background:var(--lb-soft-primary-bg)!important}html #navbar .nav-dropdown-products-selector-trigger>svg:first-child{box-sizing:content-box;width:.875rem;height:.875rem;padding:.3rem;border-radius:9999px;background:var(--lb-primary-main);color:var(--lb-primary-contrast-text)}html .nav-dropdown-products-selector-content{border:1px solid var(--lb-border-main);border-radius:1rem;background:var(--lb-glass-bg);box-shadow:var(--lb-shadow-lg);backdrop-filter:var(--lb-blur-panel);-webkit-backdrop-filter:var(--lb-blur-panel)}html .nav-dropdown-products-selector-item{border-radius:.75rem}html .mdx-content tbody tr:hover td,html .nav-dropdown-products-selector-item:hover,html .nav-dropdown-products-selector-item[data-active]{background:var(--lb-action-hover)}html .nav-dropdown-products-selector-item-icon{color:var(--lb-primary-main)}html .nav-dropdown-products-selector-item-title{color:var(--lb-text-primary);font-weight:600}html .nav-dropdown-products-selector-item-description{color:var(--lb-text-muted)}html #navbar .navbar-link a,html #navbar a.navbar-link,html .nav-tabs-item{color:var(--lb-text-secondary)}html #navbar .navbar-link a:hover,html #navbar a.navbar-link:hover,html .nav-tabs-item:hover,html .nav-tabs-item[data-active]{color:var(--lb-text-primary)}html #topbar-cta-button a,html a#topbar-cta-button{border-radius:var(--lb-radius);background:var(--lb-primary-main);color:var(--lb-primary-contrast-text);box-shadow:var(--lb-shadow-xs),inset 0 1px 0 color-mix(in srgb,var(--lb-color-grey-50) 16%,transparent);transition:background-color var(--lb-duration-fast) var(--lb-ease)}html #topbar-cta-button a:hover,html a#topbar-cta-button:hover{background:var(--lb-primary-dark)}html #topbar-cta-button a>span.absolute{display:none}html #topbar-cta-button :is(span, svg){color:var(--lb-primary-contrast-text)}html #navbar div:has(>#search-bar-entry){gap:.5rem}html :is(#search-bar-entry, #assistant-entry){height:2.25rem;border:1px solid var(--lb-border-main);border-radius:9999px;background:var(--lb-bg-paper);color:var(--lb-text-muted);box-shadow:none;filter:none;transition:border-color var(--lb-duration-fast) var(--lb-ease),background-color var(--lb-duration-fast) var(--lb-ease)}html :is(#search-bar-entry, #assistant-entry):hover{border-color:var(--lb-border-dark);background:var(--lb-bg-paper);filter:none}html #assistant-entry>span:not(:last-child){color:var(--lb-text-secondary)}html :is(#search-bar-entry > span, #assistant-entry > span:last-child){padding:.05rem .4rem;border:1px solid var(--lb-divider);border-radius:.375rem;color:var(--lb-text-muted);font-family:var(--lb-font-mono);font-weight:500}html .sidebar-group-header{font-family:var(--lb-font-mono);font-size:.6875rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--lb-text-muted)}html #sidebar-content li>a,html #sidebar-content li>button{border-radius:.625rem;color:var(--lb-text-secondary);transition:background-color var(--lb-duration-fast) var(--lb-ease),color var(--lb-duration-fast) var(--lb-ease)}html #sidebar-content li>a:hover,html #sidebar-content li>button:hover{background:var(--lb-action-hover);color:var(--lb-text-primary)}html #sidebar-content li[data-active-nav-item]>a{position:relative;background:var(--lb-soft-primary-bg);color:var(--lb-soft-primary-text);text-shadow:none;font-weight:500}html #sidebar-content li[data-active-nav-item]>a::before{content:\"\";position:absolute;left:.3rem;top:50%;width:3px;height:1rem;border-radius:9999px;background:var(--lb-primary-main);transform:translateY(-50%)}html .eyebrow{display:none}html #page-title{font-family:var(--lb-font-display);font-weight:400;font-size:clamp(1.875rem,1.5rem + .9vw,2.25rem);line-height:1.1;letter-spacing:-.02em;color:var(--lb-text-primary)}html .mdx-content{--tw-prose-body:var(--lb-text-secondary);--tw-prose-headings:var(--lb-text-primary);--tw-prose-bold:var(--lb-text-primary);--tw-prose-links:var(--lb-primary-main);--tw-prose-counters:var(--lb-text-muted);--tw-prose-bullets:var(--lb-color-primary-400);--tw-prose-hr:var(--lb-divider);--tw-prose-quotes:var(--lb-text-primary);--tw-prose-quote-borders:var(--lb-primary-main);--tw-prose-th-borders:var(--lb-border-main);--tw-prose-td-borders:var(--lb-divider);--tw-prose-invert-body:var(--lb-text-secondary);--tw-prose-invert-headings:var(--lb-text-primary);--tw-prose-invert-bold:var(--lb-text-primary);--tw-prose-invert-links:var(--lb-primary-main);--tw-prose-invert-bullets:var(--lb-color-primary-400);color:var(--lb-text-secondary)}html .mdx-content :is(h2, h3, h4){font-family:var(--lb-font-display);font-weight:400;color:var(--lb-text-primary);letter-spacing:-.012em}html .mdx-content>h2{margin-top:3rem;padding-top:2rem;border-top:1px solid var(--lb-divider);font-size:1.625rem;line-height:1.2}html .mdx-content>h2:first-child{margin-top:0;padding-top:0;border-top:0}html .mdx-content>h3{font-size:1.25rem}html .mdx-content a:not(.card,[class*=not-prose],.hub *){color:var(--lb-primary-main);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--lb-primary-main) 35%,transparent);text-decoration-thickness:1px;text-underline-offset:3px;border-bottom:0;font-weight:500;transition:text-decoration-color var(--lb-duration-fast) var(--lb-ease)}html .mdx-content a:not(.card,[class*=not-prose],.hub *):hover{text-decoration-color:currentColor}html .mdx-content :not(pre)>code{padding:.12em .4em;border:1px solid var(--lb-divider);border-radius:.375rem;background:color-mix(in srgb,var(--lb-primary-main) 6%,var(--lb-panel));color:var(--lb-text-primary);font-family:var(--lb-font-mono);font-size:.85em;font-weight:500}html .mdx-content :not(pre)>code::after,html .mdx-content :not(pre)>code::before{content:none}html .mdx-content table{border-collapse:separate;border-spacing:0;font-size:.875rem}html .mdx-content thead th{background:var(--lb-bg-paper);color:var(--lb-text-primary);font-weight:600;border-bottom:1px solid var(--lb-border-main)}html .mdx-content tbody td{border-bottom:1px solid var(--lb-divider)}html .mdx-content :is(thead th, tbody td){padding:.625rem .875rem}html .code-block,html .code-group{border:1px solid var(--lb-code-border);border-radius:.875rem;background:var(--lb-code-bg);box-shadow:var(--lb-shadow-md),inset 0 1px 0 color-mix(in srgb,var(--lb-color-grey-50) 5%,transparent);overflow:hidden}html .code-group .code-block{border:0;box-shadow:none}html .code-block [data-component-part=code-block-root],html .code-block pre{background-color:var(--lb-code-bg)!important}html :is(.code-block, .code-group) :is(pre, code, .line){font-family:var(--lb-font-mono)}html :is(.code-block, .code-group) :is(.whitespace-pre, pre, code, .line){white-space:pre-wrap;overflow-wrap:anywhere}html :is(.code-block, .code-group) pre>code{width:auto!important}html #content-side-layout :is(.whitespace-pre, pre, code, .line){white-space:pre;overflow-wrap:normal}html #content-side-layout pre>code{width:max-content!important}html .code-block-copy-button button{background:0 0!important;color:var(--lb-color-grey-400)}html .code-block-copy-button button:hover{color:var(--lb-color-grey-50)}html .callout{--callout-bg:var(--lb-soft-primary-bg);--callout-accent:var(--lb-primary-main);border:1px solid color-mix(in srgb,var(--callout-accent) 22%,transparent);border-radius:.875rem;background:color-mix(in srgb,var(--callout-bg) 70%,var(--lb-panel));box-shadow:inset 3px 0 0 var(--callout-accent)}html .callout [data-component-part=callout-icon]{color:var(--callout-accent)}html .callout [data-component-part=callout-icon] svg{fill:currentColor;color:currentColor}html .callout [data-component-part=callout-content],html .toc-item>a:hover{color:var(--lb-text-primary)}html .callout[data-callout-type=info]{--callout-bg:var(--lb-soft-info-bg);--callout-accent:var(--lb-info-main)}html .callout[data-callout-type=check],html .callout[data-callout-type=tip]{--callout-bg:var(--lb-soft-success-bg);--callout-accent:var(--lb-success-main)}html .callout[data-callout-type=warning]{--callout-bg:var(--lb-soft-warning-bg);--callout-accent:var(--lb-warning-main)}html .callout[data-callout-type=danger]{--callout-bg:var(--lb-soft-error-bg);--callout-accent:var(--lb-error-main)}html .card{border:1px solid var(--lb-border-main);border-radius:1rem;background:var(--lb-bg-light);box-shadow:var(--lb-shadow-xs);transition:transform var(--lb-duration-base) var(--lb-ease),box-shadow var(--lb-duration-base) var(--lb-ease),border-color var(--lb-duration-base) var(--lb-ease)}html .card:hover{transform:translateY(-2px);border-color:var(--lb-border-dark)!important;box-shadow:var(--lb-shadow-md),0 0 0 4px var(--lb-card-teal-glow)}html .card [data-component-part=card-icon]{box-sizing:content-box;width:1.125rem;height:1.125rem;padding:.5rem;border-radius:.625rem;background:var(--lb-soft-primary-bg);color:var(--lb-soft-primary-text);fill:var(--lb-soft-primary-text)}html .card [data-component-part=card-icon]>svg{width:1.125rem;height:1.125rem;background-color:var(--lb-soft-primary-text)!important}html .card [data-component-part=card-title]{font-family:var(--lb-font-display);font-weight:500;letter-spacing:-.005em;color:var(--lb-text-primary)}html .card [data-component-part=card-content]{color:var(--lb-text-muted);font-size:.9375rem}html .step [data-component-part=step-indicator]{background:var(--lb-soft-primary-bg);color:var(--lb-soft-primary-text);box-shadow:0 0 0 4px var(--lb-panel),0 0 0 5px var(--lb-border-main);font-family:var(--lb-font-mono)}html .step [data-component-part=step-line]{background:linear-gradient(var(--lb-border-dark),var(--lb-divider))}html #footer,html .tabs [data-component-part=tabs-list]{border-color:var(--lb-divider)}html .tabs [data-component-part=tab-button]{color:var(--lb-text-muted)}html .tabs [data-component-part=tab-button][data-active=true],html .toc-item[data-active-deepest]>a{color:var(--lb-primary-main);border-color:var(--lb-primary-main)}html .accordion,html .accordion-group{border-color:var(--lb-border-main);border-radius:.875rem;background:var(--lb-bg-light)}html .mermaid svg{--lb-diagram-edge:color-mix(in srgb, var(--lb-primary-main) 55%, var(--lb-color-grey-400));font-family:var(--lb-font-sans)!important}html .mermaid svg :where(.node rect, .node polygon, .node circle, .node path,\n rect.basic, rect.actor, .cluster rect){fill:var(--lb-bg-light)!important;stroke:var(--lb-border-dark)!important;stroke-width:1px!important;rx:8px;ry:8px}html .mermaid svg .statediagram-state rect.basic{stroke:var(--lb-primary-main)!important}html .mermaid svg :is(.nodeLabel, .node .label, .node text, text.actor, .actor tspan,\n .cluster-label, .cluster text){color:var(--lb-text-primary)!important;fill:var(--lb-text-primary)!important;font-size:14px!important;font-weight:500!important}html .mermaid svg :is(.flowchart-link, path.transition, .edgePath path, .messageLine0,\n .messageLine1, line.actor-line){stroke:var(--lb-diagram-edge)!important;stroke-width:1.5px!important}html .mermaid svg line.actor-line{stroke-dasharray:3 4;stroke-width:1px!important}html .mermaid svg :is(marker path, .arrowheadPath){fill:var(--lb-diagram-edge)!important;stroke:var(--lb-diagram-edge)!important}html .mermaid svg :is(.edgeLabel, .edgeLabel p, .edgeLabel span, .labelBkg, text.messageText){background-color:var(--lb-bg-light)!important;color:var(--lb-text-secondary)!important;fill:var(--lb-text-secondary)!important;font-size:12px!important;font-weight:400!important}html .mermaid svg .edgeLabel rect{fill:var(--lb-bg-light)!important;opacity:1!important}html .mermaid svg circle.state-start,html .mermaid svg[aria-roledescription=stateDiagram] .node .outer-path>g>path{fill:var(--lb-primary-main)!important;stroke:var(--lb-primary-main)!important}html .mermaid svg[aria-roledescription=stateDiagram] .node .outer-path>path{fill:var(--lb-bg-light)!important;stroke:var(--lb-primary-main)!important}html .toc-item>a{color:var(--lb-text-muted);border-color:var(--lb-divider)}html #pagination a{border:1px solid var(--lb-border-main);border-radius:1rem;background:var(--lb-bg-light);transition:border-color var(--lb-duration-fast) var(--lb-ease),box-shadow var(--lb-duration-fast) var(--lb-ease)}html #pagination a:hover{border-color:var(--lb-border-dark);box-shadow:var(--lb-shadow-sm)}html .method-nav-pill,html .method-pill{font-family:var(--lb-font-mono);letter-spacing:.02em}html .method-nav-pill>span[class*=bg-green],html .method-pill[class*=bg-green]{background-color:var(--lb-soft-success-bg);color:var(--lb-soft-success-text)}html .method-nav-pill>span[class*=bg-blue],html .method-pill[class*=bg-blue]{background-color:var(--lb-soft-info-bg);color:var(--lb-soft-info-text)}html .method-nav-pill>span[class*=bg-orange],html .method-nav-pill>span[class*=bg-yellow],html .method-pill[class*=bg-orange],html .method-pill[class*=bg-yellow]{background-color:var(--lb-soft-warning-bg);color:var(--lb-soft-warning-text)}html .method-nav-pill>span[class*=bg-red],html .method-pill[class*=bg-red],html [class*=\"bg-red-100/50\"][class*=text-red-600]{background-color:var(--lb-soft-error-bg);color:var(--lb-soft-error-text)}html .method-nav-pill>span[class*=\"3064E3\"],html .tryit-button{background-color:var(--lb-primary-main);color:var(--lb-primary-contrast-text)}html .tryit-button{border-radius:10px;transition:background-color var(--lb-duration-fast) var(--lb-ease)}html .tryit-button:hover{opacity:1;background-color:var(--lb-primary-dark)}@media (prefers-reduced-motion:reduce){html .card,html .card:hover{transform:none;transition:none}}"},{"filePath":"styles/home.css","content":"@keyframes hub-rise{0%{opacity:0;transform:translateY(6px)}}@keyframes hc-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes hc-pulse{50%{opacity:.35}}.hub{--hub-container:92rem;--hub-gutter:calc(var(--spacing, 0.25rem) * 4);position:relative;color:var(--lb-text-primary);font-family:var(--lb-font-sans);overflow-x:clip}@media (min-width:1024px){.hub{--hub-gutter:calc(var(--spacing, 0.25rem) * 9)}}html:has(.hub:not(.hub--embedded)),html:has(.hub:not(.hub--embedded)) body{background-color:var(--lb-bg-default)}html:has(.hub:not(.hub--embedded)) #navbar>.bg-background-light{background:color-mix(in srgb,var(--lb-bg-default) 82%,transparent);backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2)}html:has(.hub:not(.hub--embedded)) #navbar div:has(>.nav-tabs){display:none}.hub .hub-icon{display:block;flex:none}.hub-wrap{box-sizing:border-box;width:100%;max-width:var(--hub-container);margin:0 auto;padding:0 var(--hub-gutter)}.hub-hero{padding:clamp(48px,6vw,96px) 0 clamp(8px,2vw,24px)}.hub-hero__grid{display:grid;grid-template-columns:minmax(0,460px) minmax(0,1fr);gap:48px;align-items:center}.hub .hub-display{margin:0;font-family:var(--lb-font-display);font-size:clamp(2.4rem,1.1rem + 3.2vw,3.25rem);font-weight:400;line-height:1.04;letter-spacing:-.032em;color:var(--lb-text-primary)}.hub-display__accent{display:block;color:var(--lb-text-muted)}.hub .hub-lede{max-width:36rem;margin:22px 0 0;font-size:clamp(1.02rem,.98rem + .2vw,1.125rem);line-height:1.6;color:var(--lb-text-secondary)}.hub-ctas{display:flex;flex-wrap:wrap;gap:10px;margin-top:32px}.hub .hub-btn{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 16px;border:1px solid transparent;border-radius:10px;font-size:14.5px;font-weight:500;transition:background-color var(--lb-duration-fast) var(--lb-ease),border-color var(--lb-duration-fast) var(--lb-ease)}.hub .hub-btn .hub-icon{transition:transform var(--lb-duration-fast) var(--lb-ease)}.hub .hub-btn:hover .hub-icon{transform:translateX(2px)}.hub .hub-btn--primary{background:var(--lb-primary-main);color:var(--lb-primary-contrast-text)}.hub .hub-btn--primary:hover{background:var(--lb-primary-dark)}.hub .hub-btn--ghost{border-color:var(--lb-border-main);color:var(--lb-text-primary)}.hub .hub-btn--ghost:hover{border-color:var(--lb-border-dark);background:var(--lb-action-hover)}.hub-hero__copy{position:relative;z-index:20}.hub-hero__setup{display:flex;margin-top:14px}.hub-agents{position:relative;display:inline-flex;flex-direction:column;align-items:flex-start}.hub-agents__trigger{display:inline-flex;align-items:center;gap:10px;margin-left:-12px;padding:6px 12px;border:0;border-radius:10px;background:0 0;color:var(--lb-text-secondary);font:inherit;font-size:15px;line-height:24px;cursor:pointer;transition:background-color var(--lb-duration-fast) var(--lb-ease),color var(--lb-duration-fast) var(--lb-ease)}.hub-agents__trigger:hover,.hub-agents__trigger[aria-expanded=true]{background:var(--lb-action-hover);color:var(--lb-text-primary)}.hub-agents__marks{display:inline-flex;align-items:center;gap:6px;color:var(--lb-text-muted)}.hub-agents__chevron{display:inline-flex;transition:transform var(--lb-duration-base) var(--lb-ease)}.hub-agents__chevron.is-open{transform:rotate(180deg)}.hub-agents__panel{position:absolute;top:calc(100% + 8px);left:-12px;z-index:30;width:min(40rem,calc(100vw - 2rem));padding:12px;border:1px solid var(--lb-border-main);border-radius:16px;background:var(--lb-bg-paper);box-shadow:var(--lb-shadow-lg);animation:hub-rise var(--lb-duration-base) var(--lb-ease) both}.hub-agents__tabs{display:flex;gap:4px}.hub-agents__tab{padding:6px 12px;border:0;border-radius:10px;background:0 0;color:var(--lb-text-secondary);font:inherit;font-size:14px;line-height:20px;cursor:pointer;transition:background-color var(--lb-duration-fast) var(--lb-ease),color var(--lb-duration-fast) var(--lb-ease)}.hub-agents__tab:hover{background:var(--lb-action-hover);color:var(--lb-text-primary)}.hub-agents__tab.is-active{background:var(--lb-action-selected);color:var(--lb-text-primary)}.hub-agents__code{position:relative;margin-top:12px;overflow:hidden;border:1px solid var(--lb-border-main);border-radius:10px;background:var(--lb-bg-default)}.hub .hub-agents__pre{max-height:16rem;margin:0;padding:16px 48px 32px 16px;overflow:auto;background:0 0;color:var(--lb-text-primary);font-family:var(--lb-font-mono);font-size:12.5px;line-height:20px;white-space:pre-wrap;overflow-wrap:anywhere}.hub-agents__fade{position:absolute;right:0;bottom:0;left:0;height:40px;background:linear-gradient(to top,var(--lb-bg-default),transparent);pointer-events:none}.hub-agents__copy{position:absolute;top:8px;right:8px;display:grid;place-items:center;width:32px;height:32px;border:0;border-radius:10px;background:var(--lb-bg-default);color:var(--lb-text-secondary);cursor:pointer;transition:background-color var(--lb-duration-fast) var(--lb-ease),color var(--lb-duration-fast) var(--lb-ease)}.hub-agents__copy:hover{background:var(--lb-action-hover);color:var(--lb-text-primary)}.hub .hub-agents__hint{margin:10px 0 0;padding:0 4px;color:var(--lb-text-muted);font-size:14px;line-height:20px}.hub-agents__guide{margin-left:6px;color:var(--lb-primary-main);font-weight:500;text-decoration:none}.hub-agents__guide:hover{text-decoration:underline}.hub-hero__stage{min-width:0;padding:6px;border:1px solid var(--lb-divider);border-radius:18px;background:var(--lb-bg-paper)}.hub-console{--hub-console-canvas:var(--lb-bg-default);--hub-console-surface:var(--lb-bg-light);position:relative;width:100%;overflow:hidden;border-radius:12px;background:var(--hub-console-canvas);color:var(--lb-text-primary);font-family:var(--lb-font-sans);user-select:none}.dark .hub-console{--hub-console-surface:var(--lb-bg-paper)}.hub-console .hue-violet{--hue:var(--lb-tag-violet)}.hub-console .hue-teal{--hue:var(--lb-tag-teal)}.hub-console .hue-terracotta{--hue:var(--lb-tag-terracotta)}.hub-console .hue-sky{--hue:var(--lb-info-main)}.hub-console .hue-green{--hue:var(--lb-success-main)}.hub-console .hue-amber{--hue:var(--lb-warning-main)}.hub-console .hue-crimson{--hue:var(--lb-error-main)}.hub-console .hue-slate{--hue:var(--lb-text-muted)}.hc-stage{position:absolute;top:0;left:0;display:grid;grid-template-columns:188px minmax(0,1fr);transform-origin:0 0;font-size:12.5px;line-height:1.35}.hc-nav{display:flex;flex-direction:column;min-height:0;padding:12px 10px;border-right:1px solid var(--lb-divider);color:var(--lb-text-secondary)}.hc-brand{display:flex;align-items:center;gap:10px;padding:2px 6px 14px;color:var(--lb-text-muted)}.hc-brand__mark,.hc-brand__text b,.hub .hub-foot__links a:hover{color:var(--lb-text-primary)}.hc-brand__text{display:flex;flex:1;flex-direction:column;min-width:0}.hc-brand__text b{font-size:13px;font-weight:600}.hc-brand__text small{font-size:10.5px;color:var(--lb-text-muted)}.hc-nav__foot,.hc-nav__list{display:flex;flex-direction:column;gap:2px}.hc-nav__foot{margin-top:auto;padding-top:10px;border-top:1px solid var(--lb-divider)}.hc-nav__item{display:flex;align-items:center;gap:10px;height:30px;padding:0 8px;border-radius:7px;font-size:13px;white-space:nowrap}.hc-nav__item>span{flex:1}.hc-nav__item.is-sub{margin-left:12px}.hc-nav__item.is-active{background:var(--lb-action-selected);color:var(--lb-text-primary)}.hc-nav__item--small{height:26px;font-size:11.5px;color:var(--lb-text-muted)}.hc-header,.hc-main{display:flex;gap:10px}.hc-main{flex-direction:column;min-width:0;min-height:0;padding:10px 14px 14px}.hc-header{flex:none;align-items:center;height:40px}.hc-sqbtn{display:grid;flex:none;place-items:center;width:26px;height:26px;border:1px solid var(--lb-border-main);border-radius:7px;color:var(--lb-text-secondary)}.hc-sqbtn--sm{width:20px;height:20px;border-radius:5px}.hc-sqbtn--on{border-color:var(--lb-primary-main);color:var(--lb-primary-main)}.hc-state,.hc-title{font-size:14px;font-weight:600;white-space:nowrap}.hc-state{display:inline-flex;align-items:center;gap:6px;color:var(--hue);font-size:12.5px;font-weight:500}.hc-dot{flex:none;width:6px;height:6px;border-radius:50%;background:var(--hue, currentColor)}.hc-dot.is-live{animation:hc-pulse 1.2s ease-in-out infinite}.hc-id{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--lb-text-muted);font-family:var(--lb-font-mono);font-size:11.5px}.hc-metrics{display:flex;gap:22px;margin-left:auto}.hc-metric{display:flex;flex-direction:column;gap:1px;white-space:nowrap}.hc-metric small{font-size:9.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.hc-metric b{font-size:12.5px;font-variant-numeric:tabular-nums}.hc-metric small,.hc-more,.hc-msg>svg{color:var(--lb-text-muted)}.hc-btn,.hc-toolbar{flex:none;align-items:center}.hc-btn{display:inline-flex;justify-content:center;height:30px;padding:0 12px;border:1px solid var(--lb-border-main);border-radius:8px;background:var(--hub-console-surface);font-size:12.5px;font-weight:600;white-space:nowrap}.hc-toolbar{display:flex;gap:8px;height:28px}.hc-find,.hc-zoom i{color:var(--lb-text-muted)}.hc-find{display:inline-flex;align-items:center;gap:8px;width:176px;height:26px;padding:0 12px;border:1px solid var(--lb-border-main);border-radius:999px;font-size:12px}.hc-msg>span,.hc-spacer{flex:1}.hc-select,.hc-zoom{display:inline-flex;color:var(--lb-text-secondary)}.hc-select{align-items:center;gap:6px;height:26px;padding:0 8px 0 10px;border:1px solid var(--lb-border-main);border-radius:7px;font-size:12px}.hc-zoom{gap:10px;padding:0 6px;font-size:11.5px;font-variant-numeric:tabular-nums}.hc-zoom i{font-style:normal}.hc-card{border:1px solid var(--lb-border-main);border-radius:8px;background:var(--hub-console-surface)}.hc-strip{position:relative;display:flex;flex:none;flex-direction:column;gap:6px;padding:28px 14px 18px}.hc-lane{position:relative;height:18px;border:1px solid var(--lb-divider);border-radius:999px;background:var(--lb-bg-default)}.hc-mark{position:absolute;top:3px;bottom:3px;width:3px;margin-left:-1px;border-radius:2px;background:var(--hue)}.hc-mark.is-span{margin-left:0;border-radius:3px;background:color-mix(in srgb,var(--hue) 72%,transparent)}.hc-lane__pill{position:absolute;z-index:1;top:50%;margin-left:2px;padding:1px 8px;transform:translateY(-50%);border:1px solid color-mix(in srgb,var(--hue) 55%,transparent);border-radius:999px;background:color-mix(in srgb,var(--hue) 30%,var(--hub-console-surface));color:var(--lb-text-primary);font-size:10.5px;font-weight:600;white-space:nowrap}.hc-lane__pill.is-idle{opacity:.35}.hc-lane__end{position:absolute;top:1px;bottom:1px;width:10px;margin-left:-10px;border:1.5px solid var(--lb-text-muted);border-radius:5px}.hc-playhead{position:absolute;z-index:2;top:10px;bottom:12px;width:1px;background:var(--lb-primary-main)}.hc-playhead__time{position:absolute;top:-4px;left:50%;padding:1px 6px;transform:translateX(-50%);border:1px solid var(--lb-border-main);border-radius:4px;background:var(--lb-bg-light);font-family:var(--lb-font-mono);font-size:10px;white-space:nowrap}.hc-body{display:grid;flex:1;grid-template-columns:minmax(0,1fr) 272px;gap:12px;min-height:0}.hc-left{display:flex;flex-direction:column;gap:10px;min-width:0;min-height:0}.hc-outcome{display:flex;flex:none;align-items:center;gap:10px;height:36px;padding:0 12px;white-space:nowrap}.hc-metric b,.hc-outcome b{font-weight:600}.hc-objective{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;color:var(--lb-text-secondary)}.hc-details,.hc-tool b{color:var(--lb-text-secondary);font-size:12px;font-weight:600}.hc-feed,.hc-transcript{display:flex;flex:1;flex-direction:column;min-height:0;overflow:hidden}.hc-feed{justify-content:flex-end;gap:6px;padding:10px 12px;mask-image:linear-gradient(to bottom,transparent,#000 64px)}.hc-row{flex:none;animation:hc-in 420ms var(--lb-ease) both}.hc-tool{display:flex;align-items:center;gap:8px;min-width:0;height:30px;padding:0 10px;border:1px solid var(--lb-divider);border-radius:6px;color:var(--lb-text-muted);white-space:nowrap}.hc-tool b{color:var(--lb-text-primary)}.hc-arg,.hc-ms,.hc-tool b{font-family:var(--lb-font-mono)}.hc-arg{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;color:var(--lb-text-secondary);font-size:11.5px}.hc-ms{color:var(--lb-text-muted);font-size:11px}.hc-thread{padding:1px 7px;border-radius:999px;background:color-mix(in srgb,var(--hue) 30%,var(--hub-console-surface));color:var(--lb-text-primary)}.hc-chip,.hc-msg small,.hc-thread{font-size:10.5px;font-weight:600}.hc-chip{padding:2px 7px;border-radius:4px;background:var(--lb-action-selected);color:var(--lb-text-secondary)}.hc-msg,.hc-statusline{display:flex;align-items:center}.hc-msg{gap:10px;padding:9px 12px;border:1px solid var(--lb-divider);border-radius:6px;line-height:1.45}.hc-msg.is-user{flex-direction:column;align-items:flex-start;gap:2px;border-color:color-mix(in srgb,var(--lb-info-main) 35%,transparent);background:color-mix(in srgb,var(--lb-info-main) 8%,transparent)}.hc-msg small{color:var(--lb-info-main)}.hc-statusline{justify-content:center;gap:6px;height:22px;color:var(--lb-text-secondary);font-size:11px;font-weight:500}.hc-composer{flex:none;padding:10px 12px 12px;border-top:1px solid var(--lb-divider)}.hc-input,.hc-tabs span{color:var(--lb-text-muted)}.hc-input{height:44px;padding:9px 11px;border:1px solid var(--lb-border-main);border-radius:6px;background:var(--lb-bg-default)}.hc-composer__foot{display:flex;align-items:center;justify-content:space-between;margin-top:8px;color:var(--lb-text-muted);font-size:11px}.hc-send{padding:5px 14px;border-radius:6px;background:color-mix(in srgb,var(--lb-primary-main) 30%,var(--hub-console-surface));color:var(--lb-text-secondary);font-size:12px;font-weight:600}.hc-rail{display:flex;flex-direction:column;min-height:0;overflow:hidden}.hc-sect,.hc-tabs{flex:none;border-bottom:1px solid var(--lb-divider)}.hc-tabs{display:flex;gap:14px;padding:0 12px}.hc-tabs span{margin-bottom:-1px;padding:9px 0 8px;border-bottom:2px solid transparent;font-size:12px;font-weight:500}.hc-tabs .is-active{border-bottom-color:var(--lb-primary-main);color:var(--lb-primary-main)}.hc-sect{padding:10px 12px 12px}.hc-sect--last{border-bottom:0}.hc-sect__title{margin-bottom:6px;font-size:12.5px;font-weight:600;color:var(--lb-text-primary)}.hub-console .hc-note{margin:0 0 6px;font-size:12px;line-height:1.4}.hc-kv{display:grid;grid-template-columns:104px minmax(0,1fr);gap:8px;padding:3px 0;font-size:12px}.hc-kv span,.hub-console .hc-note{color:var(--lb-text-secondary)}.hc-kv b{font-weight:500;font-variant-numeric:tabular-nums;white-space:nowrap}.hc-kv--title{grid-template-columns:minmax(0,1fr) auto}.hc-kv--title .hc-sect__title{margin:0;color:var(--lb-text-primary)}.hc-spark{display:block;width:100%;height:44px;margin-top:6px}.hc-spark__area{fill:color-mix(in srgb,var(--lb-primary-main) 18%,transparent)}.hc-spark__line{fill:none;stroke:var(--lb-primary-main);stroke-width:1.5;vector-effect:non-scaling-stroke}.hc-stage.is-compact{grid-template-columns:minmax(0,1fr)}.hc-stage.is-compact .hc-metric--model,.hc-stage.is-compact .hc-nav,.hc-stage:is(.is-medium, .is-compact) .hc-id,.hc-stage:is(.is-medium, .is-compact) .hc-more,.hc-stage:is(.is-medium, .is-compact) .hc-rail,.hc-stage:is(.is-medium, .is-compact) .hc-sqbtn--sm{display:none}.hc-stage:is(.is-medium, .is-compact) .hc-body{grid-template-columns:minmax(0,1fr)}.hc-stage:is(.is-medium, .is-compact) .hc-sqbtn--on{border-color:var(--lb-border-main);color:var(--lb-text-secondary)}.hub-section{padding:clamp(56px,7vw,104px) 0 0}.hub-section__head{max-width:40rem;margin-bottom:clamp(24px,3vw,36px)}.hub .hub-h2{margin:0;font-family:var(--lb-font-display);font-size:clamp(1.75rem,1.25rem + 1.3vw,2.4rem);font-weight:400;line-height:1.1;letter-spacing:-.022em;color:var(--lb-text-primary);text-wrap:balance}.hub .hub-h2--spaced{margin:clamp(40px,5vw,64px) 0 20px;font-size:clamp(1.4rem,1.15rem + .7vw,1.75rem)}.hub .hub-section__desc{max-width:36rem;margin:12px 0 0;font-size:1.0625rem;line-height:1.6;color:var(--lb-text-secondary)}.hub-paths{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;overflow:hidden;border:1px solid var(--lb-divider);border-radius:14px;background:var(--lb-divider)}.hub .hub-path{display:flex;flex-direction:column;min-height:208px;padding:24px;background:var(--lb-bg-light);color:var(--lb-text-primary);transition:background-color var(--lb-duration-fast) var(--lb-ease)}.hub .hub-path:hover{background:color-mix(in srgb,var(--lb-action-hover) 60%,var(--lb-bg-light))}.hub-path__icon{color:var(--lb-text-secondary)}.hub-path__title{margin-top:28px;font-size:15.5px;font-weight:600;letter-spacing:-.005em}.hub-path__desc{flex:1;margin-top:6px;font-size:14px;line-height:1.55;color:var(--lb-text-secondary)}.hub-path__cta{display:inline-flex;align-items:center;gap:6px;margin-top:20px;font-size:13.5px;font-weight:500;color:var(--lb-primary-main)}.hub .hub-link .hub-icon,.hub-path__cta .hub-icon{transition:transform var(--lb-duration-fast) var(--lb-ease)}.hub .hub-link:hover .hub-icon,.hub .hub-path:hover .hub-path__cta .hub-icon{transform:translateX(3px)}.hub-split{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:clamp(28px,5vw,72px);align-items:center}.hub-links{display:flex;flex-wrap:wrap;gap:22px;margin-top:26px}.hub .hub-link{display:inline-flex;align-items:center;gap:6px;color:var(--lb-primary-main);font-size:14.5px;font-weight:500}html .hub-split__code .code-group{margin:0;box-shadow:none}.hub-caps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:32px}.hub .hub-cap{display:flex;gap:12px;padding:18px 0 20px;border-top:1px solid var(--lb-divider);color:var(--lb-text-primary)}.hub .hub-foot__links a,.hub-cap__icon{transition:color var(--lb-duration-fast) var(--lb-ease)}.hub-cap__icon{margin-top:2px;color:var(--lb-text-muted)}.hub .hub-band__link:hover .hub-band__title,.hub .hub-cap:hover .hub-cap__icon,.hub .hub-cap:hover .hub-cap__title{color:var(--lb-primary-main)}.hub-band__title,.hub-cap__title{display:flex;align-items:center;gap:6px;font-size:14.5px;font-weight:600;transition:color var(--lb-duration-fast) var(--lb-ease)}.hub-band__text,.hub-cap__text{display:block;margin-top:3px;font-size:13.5px;line-height:1.45;color:var(--lb-text-secondary)}.hub-band{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(28px,5vw,72px);padding:clamp(28px,4vw,52px);border:1px solid var(--lb-border-main);border-radius:18px;background:var(--lb-panel);color:var(--lb-text-primary)}.hub-band__copy{align-self:center}.hub-band__links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px}.hub .hub-band__link,.hub-foot{border-top:1px solid var(--lb-divider)}.hub .hub-band__link{display:block;padding:16px 0 18px;color:var(--lb-text-primary)}.hub-band__title .hub-icon{color:var(--lb-text-muted);transition:transform var(--lb-duration-fast) var(--lb-ease)}.hub .hub-band__link:hover .hub-band__title .hub-icon{transform:translateX(2px);color:var(--lb-primary-main)}.hub-foot{margin-top:clamp(64px,8vw,112px);padding:28px 0 44px}.hub-foot__row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px}.hub-foot__brand{display:inline-flex;align-items:center;gap:8px;color:var(--lb-text-primary);font-size:14px;font-weight:600}.hub-foot__links{display:flex;flex-wrap:wrap;gap:8px 22px}.hub .hub-foot__links a{font-size:14px;color:var(--lb-text-secondary)}.hub--embedded{margin-top:8px}.hub--embedded .hub-paths{grid-template-columns:repeat(3,minmax(0,1fr))}.hub--embedded .hub-path{min-height:196px;background:var(--lb-panel)}.hub--embedded .hub-split{margin-top:clamp(40px,5vw,64px);padding:clamp(24px,3vw,36px);border:1px solid var(--lb-divider);border-radius:14px}.hub--embedded .hub-caps{grid-template-columns:repeat(3,minmax(0,1fr))}@media (max-width:1180px){.hub-hero__grid{grid-template-columns:minmax(0,1fr);gap:clamp(40px,6vw,56px)}.hub-hero__copy{max-width:40rem}}@media (max-width:1100px){.hub-paths{grid-template-columns:repeat(2,minmax(0,1fr))}.hub-caps{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:1023px){.hub-band,.hub-split{grid-template-columns:minmax(0,1fr)}}@media (max-width:640px){.hub--embedded .hub-paths,.hub-band__links,.hub-paths{grid-template-columns:minmax(0,1fr)}.hub--embedded .hub-caps,.hub-caps{grid-template-columns:repeat(2,minmax(0,1fr))}.hub .hub-path,.hub--embedded .hub-path{min-height:0}.hub-path__title{margin-top:18px}.hub-hero__stage{padding:4px;border-radius:14px}}@media (prefers-reduced-motion:reduce){.hc-dot.is-live,.hc-row,.hub-agents__panel{animation:none}}"}],"page":{"pagePath":"api-reference/automations/test-an-ai-filter-on-a-sample-message","slug":"/api-reference/automations/test-an-ai-filter-on-a-sample-message","pageMetadata":{"title":"Test an AI filter on a sample message","description":"Asks the AI filter the given question about a sample message, its text and up to four screenshots, and returns the answer, every answer's probability, and whether the agent would wake. Nothing is saved and no run starts. The model call is billed to the organization like a filter evaluation on a real message.","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/automation-classifier-tests","href":"/api-reference/automations/test-an-ai-filter-on-a-sample-message","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Asks the AI filter the given question about a sample message, its text and up to four screenshots, and returns the answer, every answer’s probability, and whether the agent would wake. Nothing is saved and no run starts. The model call is billed to the organization like a filter evaluation on a real message.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"codeStyling":{"theme":"css-variables"},"config":{},"pageMetadata":{"title":"Test an AI filter on a sample message","description":"Asks the AI filter the given question about a sample message, its text and up to four screenshots, and returns the answer, every answer's probability, and whether the agent would wake. Nothing is saved and no run starts. The model call is billed to the organization like a filter evaluation on a real message.","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/automation-classifier-tests","href":"/api-reference/automations/test-an-ai-filter-on-a-sample-message","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/labelbox-1db23ff4/9ed4bd14b1b0eec8/navbar.js"],"openApiReferenceData":{"operation":{"tags":["Automations"],"summary":"Test an AI filter on a sample message","description":"Asks the AI filter the given question about a sample message, its text and up to four screenshots, and returns the answer, every answer's probability, and whether the agent would wake. Nothing is saved and no run starts. The model call is billed to the organization like a filter evaluation on a real message.","operationId":"managedAgentsRunAutomationClassifierTest","parameters":["faf2a1ed-dd0a-4d60-ba12-176283f6241c","afbb97db-e4e1-4940-94b5-6ad167704bbd"],"requestBody":"000ebd31-775b-412b-a421-9ec0d4a5671b","responses":{"200":"765c3787-7947-4921-b12a-9da41cfc7f75","400":"eda89c82-5af7-4d47-a320-0a1a9511cef6","401":"12569092-ac7b-48cf-ba75-08ee0093f295","403":"e2e7171e-53b0-40c6-aa76-1b8cfcaeafab","404":"371f8fd3-4008-4f35-9536-c6eb51d3dc9d","413":"f5b20c34-60da-4b36-98be-c75355235829","415":"76ede962-2322-4ccc-aeef-0c8042ae88b6","429":"955e41bf-73be-4f4f-aae8-d4794745c11b","500":"e969b0d4-5fe4-4c52-aba4-f6308710bc9a","502":"f3bcd4d9-eedb-4427-9ead-594ae6346c55","503":"4a6c4a57-7f24-467d-82ba-79a7a6136eaf","504":"475abf19-6d91-45c4-8417-e748db33e0c7"},"x-recursion-idempotency":{"reason":"Nothing is saved, so a replay is safe to send; it asks the model again and bills another call.","strategy":"retry-unsafe"},"method":"post","type":"path","servers":["8c419de8-88c2-4269-9b13-8963e05a8f49"],"security":["7829ce40-62d4-4613-b040-b17c8d493b67"],"path":"/managed-agents/v1/automation-classifier-tests","baseUrlOptions":["https://api.recursion.labelbox.com"],"title":"Test an AI filter on a sample message","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"faf2a1ed-dd0a-4d60-ba12-176283f6241c":{"name":"x-tenant-id","in":"header","required":false,"description":"Optional tenant consistency check. When present, it must name the tenant bound to the API key, including when x-organization-id is `default`.","schema":{"type":"string","minLength":1,"isRequired":false,"description":"Optional tenant consistency check. When present, it must name the tenant bound to the API key, including when x-organization-id is `default`.","uniqueKey":"","typeLabel":"string"}},"afbb97db-e4e1-4940-94b5-6ad167704bbd":{"name":"x-organization-id","in":"header","required":false,"description":"Organization 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`.","schema":{"type":"string","minLength":1,"isRequired":false,"description":"Organization 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`.","uniqueKey":"","typeLabel":"string"}}},"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"description":"An AI filter and a sample message to test it on. Nothing is saved and no run starts; the model call is billed like any other.","properties":{"classifier":{"additionalProperties":false,"description":"The AI filter to test, as it would be saved on the trigger.","examples":[{"answers":[{"description":"A problem, a question, or a request for action.","value":"active_issue"},{"description":"A status update or FYI with no ask.","value":"informational"}],"mode":"preview","question":"Does this message report a problem or ask for help?","rule":{"conditions":[{"answer":"active_issue","atLeastPercent":80}],"when":"wake"},"send":"text_and_images"}],"properties":{"answers":{"description":"The answers the model chooses between.","items":{"additionalProperties":false,"description":"One answer an AI filter may choose.","properties":{"description":{"description":"What this answer means, as the model reads it.","maxLength":500,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"classifier.answers.items.[INDEX].description","typeLabel":"string"},"value":{"description":"Stable code for this answer, recorded on the run.","pattern":"^[a-z0-9_]{1,32}$","type":"string","isRequired":true,"uniqueKey":"classifier.answers.items.[INDEX].value","typeLabel":"string"}},"required":["value","description"],"type":"object","uniqueKey":"classifier.answers.items.[INDEX]","typeLabel":"object"},"maxItems":10,"minItems":2,"type":"array","isRequired":true,"uniqueKey":"classifier.answers","typeLabel":"object[]"},"mode":{"description":"preview evaluates every message and records what the filter would have done, but always wakes the agent; on applies the rule, waking the agent or skipping the message.","enum":["preview","on"],"type":"string","isRequired":true,"uniqueKey":"classifier.mode","typeLabel":"enum\u003cstring>"},"question":{"description":"The question the model answers about each message.","maxLength":1000,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"classifier.question","typeLabel":"string"},"rule":{"additionalProperties":false,"description":"When the filter wakes the agent or skips the message.","properties":{"conditions":{"description":"The conditions, any one of which is enough. Each names a different answer.","items":{"additionalProperties":false,"description":"One condition of an AI filter's rule.","properties":{"answer":{"description":"The answer value the condition looks at.","pattern":"^[a-z0-9_]{1,32}$","type":"string","isRequired":true,"uniqueKey":"classifier.rule.conditions.items.[INDEX].answer","typeLabel":"string"},"atLeastPercent":{"description":"Holds when the model gives the answer at least this probability, in whole percent from 5 to 95.","maximum":95,"minimum":5,"type":"integer","isRequired":true,"uniqueKey":"classifier.rule.conditions.items.[INDEX].atLeastPercent","typeLabel":"integer"}},"required":["answer","atLeastPercent"],"type":"object","uniqueKey":"classifier.rule.conditions.items.[INDEX]","typeLabel":"object"},"maxItems":10,"minItems":1,"type":"array","isRequired":true,"uniqueKey":"classifier.rule.conditions","typeLabel":"object[]"},"when":{"description":"What the filter does when any condition holds. wake wakes the agent and skips the message otherwise, so a message no condition is sure about is skipped. skip skips the message and wakes the agent otherwise, so such a message wakes the agent.","enum":["wake","skip"],"type":"string","isRequired":true,"uniqueKey":"classifier.rule.when","typeLabel":"enum\u003cstring>"}},"required":["when","conditions"],"type":"object","isRequired":true,"uniqueKey":"classifier.rule","typeLabel":"object"},"send":{"description":"What the model sees: the message text with its PNG and JPEG attachments, or the text alone.","enum":["text_and_images","text"],"type":"string","isRequired":true,"uniqueKey":"classifier.send","typeLabel":"enum\u003cstring>"}},"required":["mode","question","answers","rule","send"],"type":"object","isRequired":true,"uniqueKey":"classifier","typeLabel":"object"},"message":{"additionalProperties":false,"description":"A sample message: its text and up to four screenshots.","properties":{"images":{"description":"PNG or JPEG screenshots, at most four and 10 MiB together.","items":{"additionalProperties":false,"description":"One screenshot of a sample message.","properties":{"data":{"description":"The image bytes, base64-encoded.","minLength":1,"type":"string","isRequired":true,"uniqueKey":"message.images.items.[INDEX].data","typeLabel":"string"},"mediaType":{"description":"The image format.","enum":["image/png","image/jpeg"],"type":"string","isRequired":true,"uniqueKey":"message.images.items.[INDEX].mediaType","typeLabel":"enum\u003cstring>"}},"required":["mediaType","data"],"type":"object","uniqueKey":"message.images.items.[INDEX]","typeLabel":"object"},"maxItems":4,"type":"array","x-recursion-omission":{"strategy":"absent"},"uniqueKey":"message.images","typeLabel":"object[]"},"text":{"description":"The message text, with any forwarded text appended.","maxLength":40000,"type":"string","x-recursion-omission":{"strategy":"absent"},"uniqueKey":"message.text","typeLabel":"string"}},"type":"object","isRequired":true,"uniqueKey":"message","typeLabel":"object"}},"required":["classifier","message"],"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"classifier":{"answers":[{"description":"A problem, a question, or a request for action.","value":"active_issue"},{"description":"A status update or FYI with no ask.","value":"informational"}],"mode":"preview","question":"Does this message report a problem or ask for help?","rule":{"conditions":[{"answer":"active_issue","atLeastPercent":80}],"when":"wake"},"send":"text_and_images"},"message":{"images":[{"data":"\u003cstring>"}],"text":"\u003cstring>"}}}},"exampleType":"generated"}},"required":true,"exampleType":"generated"},"responses":{"765c3787-7947-4921-b12a-9da41cfc7f75":{"content":{"application/json":{"schema":{"additionalProperties":false,"description":"What the AI filter decided for the sample message.","properties":{"decision":{"additionalProperties":false,"description":"The filter's decision, as a run would record it.","properties":{"billedAmountNanos":{"description":"Billed cost of the classifier call in nano-USD, as an exact base-10 integer string.","type":"string","isRequired":true,"uniqueKey":"decision.billedAmountNanos","typeLabel":"string"},"decidedAt":{"description":"Time the decision was made.","format":"date-time","type":"string","isRequired":true,"uniqueKey":"decision.decidedAt","typeLabel":"string\u003cdate-time>"},"imageCount":{"description":"Images sent with the text.","minimum":0,"type":"integer","maximum":9007199254740991,"isRequired":true,"uniqueKey":"decision.imageCount","typeLabel":"integer"},"mode":{"description":"The filter mode the run was evaluated under.","enum":["preview","on"],"type":"string","isRequired":true,"uniqueKey":"decision.mode","typeLabel":"enum\u003cstring>"},"outcome":{"description":"skipped: the run was skipped. would_skip: preview mode; on would have skipped it. wake: a wake condition held, or no skip condition did. fail_open: the filter could not decide (error, refusal, timeout, unreadable content), so the agent woke.","enum":["skipped","would_skip","wake","fail_open"],"type":"string","isRequired":true,"uniqueKey":"decision.outcome","typeLabel":"enum\u003cstring>"},"answer":{"description":"The most likely answer's value, when the model answered.","type":"string","uniqueKey":"decision.answer","typeLabel":"string"},"inputTokens":{"description":"Input tokens the provider reported.","minimum":0,"type":"integer","maximum":9007199254740991,"uniqueKey":"decision.inputTokens","typeLabel":"integer"},"latencyMs":{"description":"Round trip to the model in milliseconds.","format":"int64","minimum":0,"type":"integer","maximum":9007199254740991,"uniqueKey":"decision.latencyMs","typeLabel":"integer\u003cint64>"},"matchedAnswer":{"description":"The answer of the condition that held, if one did.","type":"string","uniqueKey":"decision.matchedAnswer","typeLabel":"string"},"model":{"description":"The model that answered.","type":"string","uniqueKey":"decision.model","typeLabel":"string"},"probabilities":{"additionalProperties":{"format":"double","type":"number","uniqueKey":"decision.probabilities.additionalProperties","typeLabel":"number\u003cdouble>"},"description":"Every answer's probability, by value.","type":"object","uniqueKey":"decision.probabilities","typeLabel":"object"},"reason":{"description":"Bounded code explaining the outcome when no condition held or the filter could not decide, such as mentions_agent, below_threshold, timeout, refused or content_incomplete.","type":"string","uniqueKey":"decision.reason","typeLabel":"string"},"rule":{"additionalProperties":false,"description":"The rule the decision applied. Present when the model answered.","properties":{"conditions":{"description":"The conditions, any one of which is enough. Each names a different answer.","items":{"additionalProperties":false,"description":"One condition of an AI filter's rule.","properties":{"answer":{"description":"The answer value the condition looks at.","pattern":"^[a-z0-9_]{1,32}$","type":"string","isRequired":true,"uniqueKey":"decision.rule.conditions.items.[INDEX].answer","typeLabel":"string"},"atLeastPercent":{"description":"Holds when the model gives the answer at least this probability, in whole percent from 5 to 95.","maximum":95,"minimum":5,"type":"integer","isRequired":true,"uniqueKey":"decision.rule.conditions.items.[INDEX].atLeastPercent","typeLabel":"integer"}},"required":["answer","atLeastPercent"],"type":"object","uniqueKey":"decision.rule.conditions.items.[INDEX]","typeLabel":"object"},"maxItems":10,"minItems":1,"type":"array","isRequired":true,"uniqueKey":"decision.rule.conditions","typeLabel":"object[]"},"when":{"description":"What the filter does when any condition holds. wake wakes the agent and skips the message otherwise, so a message no condition is sure about is skipped. skip skips the message and wakes the agent otherwise, so such a message wakes the agent.","enum":["wake","skip"],"type":"string","isRequired":true,"uniqueKey":"decision.rule.when","typeLabel":"enum\u003cstring>"}},"required":["when","conditions"],"type":"object","uniqueKey":"decision.rule","typeLabel":"object"}},"required":["mode","outcome","imageCount","billedAmountNanos","decidedAt"],"type":"object","isRequired":true,"uniqueKey":"decision","typeLabel":"object"},"wouldWake":{"description":"Whether this message would wake the agent with the filter saved as given. In preview mode the agent always wakes; this says what mode on would do.","type":"boolean","isRequired":true,"uniqueKey":"wouldWake","typeLabel":"boolean"}},"required":["wouldWake","decision"],"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"decision":{"billedAmountNanos":"\u003cstring>","decidedAt":"2023-11-07T05:31:56Z","imageCount":4503599627370495,"mode":"preview","outcome":"skipped","answer":"\u003cstring>","inputTokens":4503599627370495,"latencyMs":4503599627370495,"matchedAnswer":"\u003cstring>","model":"\u003cstring>","probabilities":{},"reason":"\u003cstring>","rule":{"conditions":[{"answer":"\u003cstring>","atLeastPercent":50}],"when":"wake"}},"wouldWake":true}}},"exampleType":"generated"}},"description":"What the AI filter decided for the sample message.","headers":{"recursion-organization-id":{"description":"Organization id resolved for this request.","schema":{"type":"string","minLength":1}},"recursion-tenant-id":{"description":"Tenant id resolved for this request.","schema":{"type":"string","minLength":1}}},"exampleType":"generated"},"eda89c82-5af7-4d47-a320-0a1a9511cef6":{"description":"Bad Request.","content":{"application/json":{"schema":{"oneOf":[{"type":"object","description":"Standard flat error response.","required":["code","message"],"x-recursion-error-codes":["invalid_json","invalid_request"],"properties":{"code":{"type":"string","minLength":1,"description":"Stable machine-readable error code.","enum":["invalid_json"],"isRequired":true,"uniqueKey":"oneOf.0.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"description":"Human-readable error message.","isRequired":true,"uniqueKey":"oneOf.0.message","typeLabel":"string"},"details":{"type":"object","properties":{"field":{"description":"Request field or header responsible for the error, when one can be identified.","type":"string","uniqueKey":"oneOf.0.details.field","typeLabel":"string"},"issues":{"description":"Boundary-validation failures as path-prefixed human-readable messages.","type":"array","items":{"type":"string","uniqueKey":"oneOf.0.details.issues.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.0.details.issues","typeLabel":"string[]"},"requestId":{"description":"Request correlation identifier for support and log lookup.","type":"string","uniqueKey":"oneOf.0.details.requestId","typeLabel":"string"},"retryable":{"description":"Server advice about failure transience. `true` means transient, `false` means non-transient, and absence gives no advice. Automatic replay is allowed only when this field is not `false` and the operation-specific retry and idempotency contract permits replay.","type":"boolean","uniqueKey":"oneOf.0.details.retryable","typeLabel":"boolean"}},"additionalProperties":{"oneOf":[{"type":"null","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.0.details.additionalProperties.oneOf.0","typeLabel":"null"},{"type":"boolean","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.0.details.additionalProperties.oneOf.1","typeLabel":"boolean"},{"type":"string","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.0.details.additionalProperties.oneOf.2","typeLabel":"string"},{"type":"integer","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","maximum":9007199254740991,"minimum":-9007199254740991,"uniqueKey":"oneOf.0.details.additionalProperties.oneOf.3","typeLabel":"integer"},{"type":"number","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.0.details.additionalProperties.oneOf.4","typeLabel":"number"},{"type":"array","items":{"oneOf":[{}],"uniqueKey":"oneOf.0.details.additionalProperties.oneOf.5.items.[INDEX]","typeLabel":"any"},"description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.0.details.additionalProperties.oneOf.5","typeLabel":"any[]"},{"type":"object","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.0.details.additionalProperties.oneOf.6","typeLabel":"object"}],"uniqueKey":"oneOf.0.details.additionalProperties","typeLabel":"null | boolean | string | integer | number | any[] | object"},"description":"Optional structured error details. Reserved transport fields are typed; code-specific fields remain forward compatible.","uniqueKey":"oneOf.0.details","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"oneOf.0","typeLabel":"object"},{"type":"object","description":"Standard flat error response.","required":["code","message"],"x-recursion-error-codes":["invalid_json","invalid_request"],"properties":{"code":{"type":"string","minLength":1,"description":"Stable machine-readable error code.","enum":["invalid_request"],"isRequired":true,"uniqueKey":"oneOf.1.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"description":"Human-readable error message.","isRequired":true,"uniqueKey":"oneOf.1.message","typeLabel":"string"},"details":{"type":"object","properties":{"field":{"description":"Request field or header responsible for the error, when one can be identified.","type":"string","uniqueKey":"oneOf.1.details.field","typeLabel":"string"},"issues":{"description":"Boundary-validation failures as path-prefixed human-readable messages.","type":"array","items":{"type":"string","uniqueKey":"oneOf.1.details.issues.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.1.details.issues","typeLabel":"string[]"},"requestId":{"description":"Request correlation identifier for support and log lookup.","type":"string","uniqueKey":"oneOf.1.details.requestId","typeLabel":"string"},"retryable":{"description":"Server advice about failure transience. `true` means transient, `false` means non-transient, and absence gives no advice. Automatic replay is allowed only when this field is not `false` and the operation-specific retry and idempotency contract permits replay.","type":"boolean","uniqueKey":"oneOf.1.details.retryable","typeLabel":"boolean"}},"additionalProperties":{"oneOf":[{"type":"null","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.1.details.additionalProperties.oneOf.0","typeLabel":"null"},{"type":"boolean","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.1.details.additionalProperties.oneOf.1","typeLabel":"boolean"},{"type":"string","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.1.details.additionalProperties.oneOf.2","typeLabel":"string"},{"type":"integer","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","maximum":9007199254740991,"minimum":-9007199254740991,"uniqueKey":"oneOf.1.details.additionalProperties.oneOf.3","typeLabel":"integer"},{"type":"number","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.1.details.additionalProperties.oneOf.4","typeLabel":"number"},{"type":"array","items":{"oneOf":[{}],"uniqueKey":"oneOf.1.details.additionalProperties.oneOf.5.items.[INDEX]","typeLabel":"any"},"description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.1.details.additionalProperties.oneOf.5","typeLabel":"any[]"},{"type":"object","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.1.details.additionalProperties.oneOf.6","typeLabel":"object"}],"uniqueKey":"oneOf.1.details.additionalProperties","typeLabel":"null | boolean | string | integer | number | any[] | object"},"description":"Optional structured error details. Reserved transport fields are typed; code-specific fields remain forward compatible.","uniqueKey":"oneOf.1.details","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"oneOf.1","typeLabel":"object"}],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"invalid_json","message":"\u003cstring>","details":{"field":"\u003cstring>","issues":["\u003cstring>"],"requestId":"\u003cstring>","retryable":true}}}},"exampleType":"generated"}},"headers":{"recursion-organization-id":{"description":"Organization id resolved for this request.","schema":{"type":"string","minLength":1}},"recursion-tenant-id":{"description":"Tenant id resolved for this request.","schema":{"type":"string","minLength":1}}},"exampleType":"generated"},"12569092-ac7b-48cf-ba75-08ee0093f295":{"description":"Unauthorized.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","minLength":1,"description":"Stable machine-readable error code.","enum":["unauthorized"],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"description":"Human-readable error message.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"details":{"type":"object","properties":{"field":{"description":"Request field or header responsible for the error, when one can be identified.","type":"string","uniqueKey":"details.field","typeLabel":"string"},"issues":{"description":"Boundary-validation failures as path-prefixed human-readable messages.","type":"array","items":{"type":"string","uniqueKey":"details.issues.items.[INDEX]","typeLabel":"string"},"uniqueKey":"details.issues","typeLabel":"string[]"},"requestId":{"description":"Request correlation identifier for support and log lookup.","type":"string","uniqueKey":"details.requestId","typeLabel":"string"},"retryable":{"description":"Server advice about failure transience. `true` means transient, `false` means non-transient, and absence gives no advice. Automatic replay is allowed only when this field is not `false` and the operation-specific retry and idempotency contract permits replay.","type":"boolean","uniqueKey":"details.retryable","typeLabel":"boolean"}},"additionalProperties":{"oneOf":[{"type":"null","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.0","typeLabel":"null"},{"type":"boolean","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.1","typeLabel":"boolean"},{"type":"string","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.2","typeLabel":"string"},{"type":"integer","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","maximum":9007199254740991,"minimum":-9007199254740991,"uniqueKey":"details.additionalProperties.oneOf.3","typeLabel":"integer"},{"type":"number","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.4","typeLabel":"number"},{"type":"array","items":{"oneOf":[{}],"uniqueKey":"details.additionalProperties.oneOf.5.items.[INDEX]","typeLabel":"any"},"description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.5","typeLabel":"any[]"},{"type":"object","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.6","typeLabel":"object"}],"uniqueKey":"details.additionalProperties","typeLabel":"null | boolean | string | integer | number | any[] | object"},"description":"Optional structured error details. Reserved transport fields are typed; code-specific fields remain forward compatible.","uniqueKey":"details","typeLabel":"object"}},"required":["code","message"],"additionalProperties":false,"description":"Standard flat error response.","x-recursion-error-codes":["unauthorized"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"unauthorized","message":"\u003cstring>","details":{"field":"\u003cstring>","issues":["\u003cstring>"],"requestId":"\u003cstring>","retryable":true}}}},"exampleType":"generated"}},"headers":{"recursion-organization-id":{"description":"Organization id resolved for this request.","schema":{"type":"string","minLength":1}},"recursion-tenant-id":{"description":"Tenant id resolved for this request.","schema":{"type":"string","minLength":1}}},"exampleType":"generated"},"e2e7171e-53b0-40c6-aa76-1b8cfcaeafab":{"description":"Forbidden.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","minLength":1,"description":"Stable machine-readable error code.","enum":["forbidden"],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"description":"Human-readable error message.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"details":{"type":"object","properties":{"field":{"description":"Request field or header responsible for the error, when one can be identified.","type":"string","uniqueKey":"details.field","typeLabel":"string"},"issues":{"description":"Boundary-validation failures as path-prefixed human-readable messages.","type":"array","items":{"type":"string","uniqueKey":"details.issues.items.[INDEX]","typeLabel":"string"},"uniqueKey":"details.issues","typeLabel":"string[]"},"requestId":{"description":"Request correlation identifier for support and log lookup.","type":"string","uniqueKey":"details.requestId","typeLabel":"string"},"retryable":{"description":"Server advice about failure transience. `true` means transient, `false` means non-transient, and absence gives no advice. Automatic replay is allowed only when this field is not `false` and the operation-specific retry and idempotency contract permits replay.","type":"boolean","uniqueKey":"details.retryable","typeLabel":"boolean"}},"additionalProperties":{"oneOf":[{"type":"null","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.0","typeLabel":"null"},{"type":"boolean","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.1","typeLabel":"boolean"},{"type":"string","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.2","typeLabel":"string"},{"type":"integer","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","maximum":9007199254740991,"minimum":-9007199254740991,"uniqueKey":"details.additionalProperties.oneOf.3","typeLabel":"integer"},{"type":"number","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.4","typeLabel":"number"},{"type":"array","items":{"oneOf":[{}],"uniqueKey":"details.additionalProperties.oneOf.5.items.[INDEX]","typeLabel":"any"},"description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.5","typeLabel":"any[]"},{"type":"object","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.6","typeLabel":"object"}],"uniqueKey":"details.additionalProperties","typeLabel":"null | boolean | string | integer | number | any[] | object"},"description":"Optional structured error details. Reserved transport fields are typed; code-specific fields remain forward compatible.","uniqueKey":"details","typeLabel":"object"}},"required":["code","message"],"additionalProperties":false,"description":"Standard flat error response.","x-recursion-error-codes":["forbidden"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"forbidden","message":"\u003cstring>","details":{"field":"\u003cstring>","issues":["\u003cstring>"],"requestId":"\u003cstring>","retryable":true}}}},"exampleType":"generated"}},"headers":{"recursion-organization-id":{"description":"Organization id resolved for this request.","schema":{"type":"string","minLength":1}},"recursion-tenant-id":{"description":"Tenant id resolved for this request.","schema":{"type":"string","minLength":1}}},"exampleType":"generated"},"371f8fd3-4008-4f35-9536-c6eb51d3dc9d":{"description":"Not Found.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","minLength":1,"description":"Stable machine-readable error code.","enum":["not_found"],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"description":"Human-readable error message.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"details":{"type":"object","properties":{"field":{"description":"Request field or header responsible for the error, when one can be identified.","type":"string","uniqueKey":"details.field","typeLabel":"string"},"issues":{"description":"Boundary-validation failures as path-prefixed human-readable messages.","type":"array","items":{"type":"string","uniqueKey":"details.issues.items.[INDEX]","typeLabel":"string"},"uniqueKey":"details.issues","typeLabel":"string[]"},"requestId":{"description":"Request correlation identifier for support and log lookup.","type":"string","uniqueKey":"details.requestId","typeLabel":"string"},"retryable":{"description":"Server advice about failure transience. `true` means transient, `false` means non-transient, and absence gives no advice. Automatic replay is allowed only when this field is not `false` and the operation-specific retry and idempotency contract permits replay.","type":"boolean","uniqueKey":"details.retryable","typeLabel":"boolean"}},"additionalProperties":{"oneOf":[{"type":"null","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.0","typeLabel":"null"},{"type":"boolean","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.1","typeLabel":"boolean"},{"type":"string","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.2","typeLabel":"string"},{"type":"integer","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","maximum":9007199254740991,"minimum":-9007199254740991,"uniqueKey":"details.additionalProperties.oneOf.3","typeLabel":"integer"},{"type":"number","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.4","typeLabel":"number"},{"type":"array","items":{"oneOf":[{}],"uniqueKey":"details.additionalProperties.oneOf.5.items.[INDEX]","typeLabel":"any"},"description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.5","typeLabel":"any[]"},{"type":"object","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.6","typeLabel":"object"}],"uniqueKey":"details.additionalProperties","typeLabel":"null | boolean | string | integer | number | any[] | object"},"description":"Optional structured error details. Reserved transport fields are typed; code-specific fields remain forward compatible.","uniqueKey":"details","typeLabel":"object"}},"required":["code","message"],"additionalProperties":false,"description":"Standard flat error response.","x-recursion-error-codes":["not_found"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"not_found","message":"\u003cstring>","details":{"field":"\u003cstring>","issues":["\u003cstring>"],"requestId":"\u003cstring>","retryable":true}}}},"exampleType":"generated"}},"headers":{"recursion-organization-id":{"description":"Organization id resolved for this request.","schema":{"type":"string","minLength":1}},"recursion-tenant-id":{"description":"Tenant id resolved for this request.","schema":{"type":"string","minLength":1}}},"exampleType":"generated"},"f5b20c34-60da-4b36-98be-c75355235829":{"description":"Payload Too Large.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","minLength":1,"description":"Stable machine-readable error code.","enum":["payload_too_large"],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"description":"Human-readable error message.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"details":{"type":"object","properties":{"field":{"description":"Request field or header responsible for the error, when one can be identified.","type":"string","uniqueKey":"details.field","typeLabel":"string"},"issues":{"description":"Boundary-validation failures as path-prefixed human-readable messages.","type":"array","items":{"type":"string","uniqueKey":"details.issues.items.[INDEX]","typeLabel":"string"},"uniqueKey":"details.issues","typeLabel":"string[]"},"requestId":{"description":"Request correlation identifier for support and log lookup.","type":"string","uniqueKey":"details.requestId","typeLabel":"string"},"retryable":{"description":"Server advice about failure transience. `true` means transient, `false` means non-transient, and absence gives no advice. Automatic replay is allowed only when this field is not `false` and the operation-specific retry and idempotency contract permits replay.","type":"boolean","uniqueKey":"details.retryable","typeLabel":"boolean"}},"additionalProperties":{"oneOf":[{"type":"null","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.0","typeLabel":"null"},{"type":"boolean","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.1","typeLabel":"boolean"},{"type":"string","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.2","typeLabel":"string"},{"type":"integer","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","maximum":9007199254740991,"minimum":-9007199254740991,"uniqueKey":"details.additionalProperties.oneOf.3","typeLabel":"integer"},{"type":"number","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.4","typeLabel":"number"},{"type":"array","items":{"oneOf":[{}],"uniqueKey":"details.additionalProperties.oneOf.5.items.[INDEX]","typeLabel":"any"},"description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.5","typeLabel":"any[]"},{"type":"object","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.6","typeLabel":"object"}],"uniqueKey":"details.additionalProperties","typeLabel":"null | boolean | string | integer | number | any[] | object"},"description":"Optional structured error details. Reserved transport fields are typed; code-specific fields remain forward compatible.","uniqueKey":"details","typeLabel":"object"}},"required":["code","message"],"additionalProperties":false,"description":"Standard flat error response.","x-recursion-error-codes":["payload_too_large"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"payload_too_large","message":"\u003cstring>","details":{"field":"\u003cstring>","issues":["\u003cstring>"],"requestId":"\u003cstring>","retryable":true}}}},"exampleType":"generated"}},"headers":{"recursion-organization-id":{"description":"Organization id resolved for this request.","schema":{"type":"string","minLength":1}},"recursion-tenant-id":{"description":"Tenant id resolved for this request.","schema":{"type":"string","minLength":1}}},"exampleType":"generated"},"76ede962-2322-4ccc-aeef-0c8042ae88b6":{"description":"Unsupported Media Type.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","minLength":1,"description":"Stable machine-readable error code.","enum":["unsupported_media_type"],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"description":"Human-readable error message.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"details":{"type":"object","properties":{"field":{"description":"Request field or header responsible for the error, when one can be identified.","type":"string","uniqueKey":"details.field","typeLabel":"string"},"issues":{"description":"Boundary-validation failures as path-prefixed human-readable messages.","type":"array","items":{"type":"string","uniqueKey":"details.issues.items.[INDEX]","typeLabel":"string"},"uniqueKey":"details.issues","typeLabel":"string[]"},"requestId":{"description":"Request correlation identifier for support and log lookup.","type":"string","uniqueKey":"details.requestId","typeLabel":"string"},"retryable":{"description":"Server advice about failure transience. `true` means transient, `false` means non-transient, and absence gives no advice. Automatic replay is allowed only when this field is not `false` and the operation-specific retry and idempotency contract permits replay.","type":"boolean","uniqueKey":"details.retryable","typeLabel":"boolean"}},"additionalProperties":{"oneOf":[{"type":"null","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.0","typeLabel":"null"},{"type":"boolean","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.1","typeLabel":"boolean"},{"type":"string","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.2","typeLabel":"string"},{"type":"integer","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","maximum":9007199254740991,"minimum":-9007199254740991,"uniqueKey":"details.additionalProperties.oneOf.3","typeLabel":"integer"},{"type":"number","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.4","typeLabel":"number"},{"type":"array","items":{"oneOf":[{}],"uniqueKey":"details.additionalProperties.oneOf.5.items.[INDEX]","typeLabel":"any"},"description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.5","typeLabel":"any[]"},{"type":"object","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.6","typeLabel":"object"}],"uniqueKey":"details.additionalProperties","typeLabel":"null | boolean | string | integer | number | any[] | object"},"description":"Optional structured error details. Reserved transport fields are typed; code-specific fields remain forward compatible.","uniqueKey":"details","typeLabel":"object"}},"required":["code","message"],"additionalProperties":false,"description":"Standard flat error response.","x-recursion-error-codes":["unsupported_media_type"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"unsupported_media_type","message":"\u003cstring>","details":{"field":"\u003cstring>","issues":["\u003cstring>"],"requestId":"\u003cstring>","retryable":true}}}},"exampleType":"generated"}},"headers":{"recursion-organization-id":{"description":"Organization id resolved for this request.","schema":{"type":"string","minLength":1}},"recursion-tenant-id":{"description":"Tenant id resolved for this request.","schema":{"type":"string","minLength":1}}},"exampleType":"generated"},"955e41bf-73be-4f4f-aae8-d4794745c11b":{"headers":{"Retry-After":{"description":"When to retry, as delay seconds or an HTTP date.","schema":{"type":"string"}},"recursion-organization-id":{"description":"Organization id resolved for this request.","schema":{"type":"string","minLength":1}},"recursion-tenant-id":{"description":"Tenant id resolved for this request.","schema":{"type":"string","minLength":1}}},"description":"Too Many Requests.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","minLength":1,"description":"Stable machine-readable error code.","enum":["rate_limit_exceeded"],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"description":"Human-readable error message.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"details":{"type":"object","properties":{"field":{"description":"Request field or header responsible for the error, when one can be identified.","type":"string","uniqueKey":"details.field","typeLabel":"string"},"issues":{"description":"Boundary-validation failures as path-prefixed human-readable messages.","type":"array","items":{"type":"string","uniqueKey":"details.issues.items.[INDEX]","typeLabel":"string"},"uniqueKey":"details.issues","typeLabel":"string[]"},"requestId":{"description":"Request correlation identifier for support and log lookup.","type":"string","uniqueKey":"details.requestId","typeLabel":"string"},"retryable":{"description":"Server advice about failure transience. `true` means transient, `false` means non-transient, and absence gives no advice. Automatic replay is allowed only when this field is not `false` and the operation-specific retry and idempotency contract permits replay.","type":"boolean","uniqueKey":"details.retryable","typeLabel":"boolean"}},"additionalProperties":{"oneOf":[{"type":"null","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.0","typeLabel":"null"},{"type":"boolean","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.1","typeLabel":"boolean"},{"type":"string","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.2","typeLabel":"string"},{"type":"integer","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","maximum":9007199254740991,"minimum":-9007199254740991,"uniqueKey":"details.additionalProperties.oneOf.3","typeLabel":"integer"},{"type":"number","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.4","typeLabel":"number"},{"type":"array","items":{"oneOf":[{}],"uniqueKey":"details.additionalProperties.oneOf.5.items.[INDEX]","typeLabel":"any"},"description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.5","typeLabel":"any[]"},{"type":"object","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.6","typeLabel":"object"}],"uniqueKey":"details.additionalProperties","typeLabel":"null | boolean | string | integer | number | any[] | object"},"description":"Optional structured error details. Reserved transport fields are typed; code-specific fields remain forward compatible.","uniqueKey":"details","typeLabel":"object"}},"required":["code","message"],"additionalProperties":false,"description":"Standard flat error response.","x-recursion-error-codes":["rate_limit_exceeded"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"rate_limit_exceeded","message":"\u003cstring>","details":{"field":"\u003cstring>","issues":["\u003cstring>"],"requestId":"\u003cstring>","retryable":true}}}},"exampleType":"generated"}},"exampleType":"generated"},"e969b0d4-5fe4-4c52-aba4-f6308710bc9a":{"description":"Internal Server Error.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","minLength":1,"description":"Stable machine-readable error code.","enum":["internal_error"],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"description":"Human-readable error message.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"details":{"type":"object","properties":{"field":{"description":"Request field or header responsible for the error, when one can be identified.","type":"string","uniqueKey":"details.field","typeLabel":"string"},"issues":{"description":"Boundary-validation failures as path-prefixed human-readable messages.","type":"array","items":{"type":"string","uniqueKey":"details.issues.items.[INDEX]","typeLabel":"string"},"uniqueKey":"details.issues","typeLabel":"string[]"},"requestId":{"description":"Request correlation identifier for support and log lookup.","type":"string","uniqueKey":"details.requestId","typeLabel":"string"},"retryable":{"description":"Server advice about failure transience. `true` means transient, `false` means non-transient, and absence gives no advice. Automatic replay is allowed only when this field is not `false` and the operation-specific retry and idempotency contract permits replay.","type":"boolean","uniqueKey":"details.retryable","typeLabel":"boolean"}},"additionalProperties":{"oneOf":[{"type":"null","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.0","typeLabel":"null"},{"type":"boolean","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.1","typeLabel":"boolean"},{"type":"string","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.2","typeLabel":"string"},{"type":"integer","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","maximum":9007199254740991,"minimum":-9007199254740991,"uniqueKey":"details.additionalProperties.oneOf.3","typeLabel":"integer"},{"type":"number","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.4","typeLabel":"number"},{"type":"array","items":{"oneOf":[{}],"uniqueKey":"details.additionalProperties.oneOf.5.items.[INDEX]","typeLabel":"any"},"description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.5","typeLabel":"any[]"},{"type":"object","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.6","typeLabel":"object"}],"uniqueKey":"details.additionalProperties","typeLabel":"null | boolean | string | integer | number | any[] | object"},"description":"Optional structured error details. Reserved transport fields are typed; code-specific fields remain forward compatible.","uniqueKey":"details","typeLabel":"object"}},"required":["code","message"],"additionalProperties":false,"description":"Standard flat error response.","x-recursion-error-codes":["internal_error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"internal_error","message":"\u003cstring>","details":{"field":"\u003cstring>","issues":["\u003cstring>"],"requestId":"\u003cstring>","retryable":true}}}},"exampleType":"generated"}},"headers":{"recursion-organization-id":{"description":"Organization id resolved for this request.","schema":{"type":"string","minLength":1}},"recursion-tenant-id":{"description":"Tenant id resolved for this request.","schema":{"type":"string","minLength":1}}},"exampleType":"generated"},"f3bcd4d9-eedb-4427-9ead-594ae6346c55":{"description":"A dependent service returned an invalid response.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","minLength":1,"description":"Stable machine-readable error code.","enum":["bad_gateway"],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"description":"Human-readable error message.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"details":{"type":"object","properties":{"field":{"description":"Request field or header responsible for the error, when one can be identified.","type":"string","uniqueKey":"details.field","typeLabel":"string"},"issues":{"description":"Boundary-validation failures as path-prefixed human-readable messages.","type":"array","items":{"type":"string","uniqueKey":"details.issues.items.[INDEX]","typeLabel":"string"},"uniqueKey":"details.issues","typeLabel":"string[]"},"requestId":{"description":"Request correlation identifier for support and log lookup.","type":"string","uniqueKey":"details.requestId","typeLabel":"string"},"retryable":{"description":"Server advice about failure transience. `true` means transient, `false` means non-transient, and absence gives no advice. Automatic replay is allowed only when this field is not `false` and the operation-specific retry and idempotency contract permits replay.","type":"boolean","uniqueKey":"details.retryable","typeLabel":"boolean"}},"additionalProperties":{"oneOf":[{"type":"null","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.0","typeLabel":"null"},{"type":"boolean","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.1","typeLabel":"boolean"},{"type":"string","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.2","typeLabel":"string"},{"type":"integer","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","maximum":9007199254740991,"minimum":-9007199254740991,"uniqueKey":"details.additionalProperties.oneOf.3","typeLabel":"integer"},{"type":"number","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.4","typeLabel":"number"},{"type":"array","items":{"oneOf":[{}],"uniqueKey":"details.additionalProperties.oneOf.5.items.[INDEX]","typeLabel":"any"},"description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.5","typeLabel":"any[]"},{"type":"object","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.6","typeLabel":"object"}],"uniqueKey":"details.additionalProperties","typeLabel":"null | boolean | string | integer | number | any[] | object"},"description":"Optional structured error details. Reserved transport fields are typed; code-specific fields remain forward compatible.","uniqueKey":"details","typeLabel":"object"}},"required":["code","message"],"additionalProperties":false,"description":"Standard flat error response.","x-recursion-error-codes":["bad_gateway"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"bad_gateway","message":"\u003cstring>","details":{"field":"\u003cstring>","issues":["\u003cstring>"],"requestId":"\u003cstring>","retryable":true}}}},"exampleType":"generated"}},"headers":{"recursion-organization-id":{"description":"Organization id resolved for this request.","schema":{"type":"string","minLength":1}},"recursion-tenant-id":{"description":"Tenant id resolved for this request.","schema":{"type":"string","minLength":1}}},"exampleType":"generated"},"4a6c4a57-7f24-467d-82ba-79a7a6136eaf":{"description":"Service Unavailable.","content":{"application/json":{"schema":{"oneOf":[{"type":"object","description":"Standard flat error response.","required":["code","message"],"x-recursion-error-codes":["automation_classifier_unconfigured","managed_agents_unavailable","service_unavailable"],"properties":{"code":{"type":"string","minLength":1,"description":"Stable machine-readable error code.","enum":["automation_classifier_unconfigured"],"isRequired":true,"uniqueKey":"oneOf.0.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"description":"Human-readable error message.","isRequired":true,"uniqueKey":"oneOf.0.message","typeLabel":"string"},"details":{"type":"object","properties":{"field":{"description":"Request field or header responsible for the error, when one can be identified.","type":"string","uniqueKey":"oneOf.0.details.field","typeLabel":"string"},"issues":{"description":"Boundary-validation failures as path-prefixed human-readable messages.","type":"array","items":{"type":"string","uniqueKey":"oneOf.0.details.issues.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.0.details.issues","typeLabel":"string[]"},"requestId":{"description":"Request correlation identifier for support and log lookup.","type":"string","uniqueKey":"oneOf.0.details.requestId","typeLabel":"string"},"retryable":{"description":"Server advice about failure transience. `true` means transient, `false` means non-transient, and absence gives no advice. Automatic replay is allowed only when this field is not `false` and the operation-specific retry and idempotency contract permits replay.","type":"boolean","uniqueKey":"oneOf.0.details.retryable","typeLabel":"boolean"}},"additionalProperties":{"oneOf":[{"type":"null","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.0.details.additionalProperties.oneOf.0","typeLabel":"null"},{"type":"boolean","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.0.details.additionalProperties.oneOf.1","typeLabel":"boolean"},{"type":"string","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.0.details.additionalProperties.oneOf.2","typeLabel":"string"},{"type":"integer","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","maximum":9007199254740991,"minimum":-9007199254740991,"uniqueKey":"oneOf.0.details.additionalProperties.oneOf.3","typeLabel":"integer"},{"type":"number","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.0.details.additionalProperties.oneOf.4","typeLabel":"number"},{"type":"array","items":{"oneOf":[{}],"uniqueKey":"oneOf.0.details.additionalProperties.oneOf.5.items.[INDEX]","typeLabel":"any"},"description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.0.details.additionalProperties.oneOf.5","typeLabel":"any[]"},{"type":"object","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.0.details.additionalProperties.oneOf.6","typeLabel":"object"}],"uniqueKey":"oneOf.0.details.additionalProperties","typeLabel":"null | boolean | string | integer | number | any[] | object"},"description":"Optional structured error details. Reserved transport fields are typed; code-specific fields remain forward compatible.","uniqueKey":"oneOf.0.details","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"oneOf.0","typeLabel":"object"},{"type":"object","description":"Standard flat error response.","required":["code","message"],"x-recursion-error-codes":["automation_classifier_unconfigured","managed_agents_unavailable","service_unavailable"],"properties":{"code":{"type":"string","minLength":1,"description":"Stable machine-readable error code.","enum":["managed_agents_unavailable"],"isRequired":true,"uniqueKey":"oneOf.1.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"description":"Human-readable error message.","isRequired":true,"uniqueKey":"oneOf.1.message","typeLabel":"string"},"details":{"type":"object","properties":{"field":{"description":"Request field or header responsible for the error, when one can be identified.","type":"string","uniqueKey":"oneOf.1.details.field","typeLabel":"string"},"issues":{"description":"Boundary-validation failures as path-prefixed human-readable messages.","type":"array","items":{"type":"string","uniqueKey":"oneOf.1.details.issues.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.1.details.issues","typeLabel":"string[]"},"requestId":{"description":"Request correlation identifier for support and log lookup.","type":"string","uniqueKey":"oneOf.1.details.requestId","typeLabel":"string"},"retryable":{"description":"Server advice about failure transience. `true` means transient, `false` means non-transient, and absence gives no advice. Automatic replay is allowed only when this field is not `false` and the operation-specific retry and idempotency contract permits replay.","type":"boolean","uniqueKey":"oneOf.1.details.retryable","typeLabel":"boolean"}},"additionalProperties":{"oneOf":[{"type":"null","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.1.details.additionalProperties.oneOf.0","typeLabel":"null"},{"type":"boolean","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.1.details.additionalProperties.oneOf.1","typeLabel":"boolean"},{"type":"string","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.1.details.additionalProperties.oneOf.2","typeLabel":"string"},{"type":"integer","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","maximum":9007199254740991,"minimum":-9007199254740991,"uniqueKey":"oneOf.1.details.additionalProperties.oneOf.3","typeLabel":"integer"},{"type":"number","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.1.details.additionalProperties.oneOf.4","typeLabel":"number"},{"type":"array","items":{"oneOf":[{}],"uniqueKey":"oneOf.1.details.additionalProperties.oneOf.5.items.[INDEX]","typeLabel":"any"},"description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.1.details.additionalProperties.oneOf.5","typeLabel":"any[]"},{"type":"object","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.1.details.additionalProperties.oneOf.6","typeLabel":"object"}],"uniqueKey":"oneOf.1.details.additionalProperties","typeLabel":"null | boolean | string | integer | number | any[] | object"},"description":"Optional structured error details. Reserved transport fields are typed; code-specific fields remain forward compatible.","uniqueKey":"oneOf.1.details","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"oneOf.1","typeLabel":"object"},{"type":"object","description":"Standard flat error response.","required":["code","message"],"x-recursion-error-codes":["automation_classifier_unconfigured","managed_agents_unavailable","service_unavailable"],"properties":{"code":{"type":"string","minLength":1,"description":"Stable machine-readable error code.","enum":["service_unavailable"],"isRequired":true,"uniqueKey":"oneOf.2.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"description":"Human-readable error message.","isRequired":true,"uniqueKey":"oneOf.2.message","typeLabel":"string"},"details":{"type":"object","properties":{"field":{"description":"Request field or header responsible for the error, when one can be identified.","type":"string","uniqueKey":"oneOf.2.details.field","typeLabel":"string"},"issues":{"description":"Boundary-validation failures as path-prefixed human-readable messages.","type":"array","items":{"type":"string","uniqueKey":"oneOf.2.details.issues.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.2.details.issues","typeLabel":"string[]"},"requestId":{"description":"Request correlation identifier for support and log lookup.","type":"string","uniqueKey":"oneOf.2.details.requestId","typeLabel":"string"},"retryable":{"description":"Server advice about failure transience. `true` means transient, `false` means non-transient, and absence gives no advice. Automatic replay is allowed only when this field is not `false` and the operation-specific retry and idempotency contract permits replay.","type":"boolean","uniqueKey":"oneOf.2.details.retryable","typeLabel":"boolean"}},"additionalProperties":{"oneOf":[{"type":"null","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.2.details.additionalProperties.oneOf.0","typeLabel":"null"},{"type":"boolean","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.2.details.additionalProperties.oneOf.1","typeLabel":"boolean"},{"type":"string","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.2.details.additionalProperties.oneOf.2","typeLabel":"string"},{"type":"integer","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","maximum":9007199254740991,"minimum":-9007199254740991,"uniqueKey":"oneOf.2.details.additionalProperties.oneOf.3","typeLabel":"integer"},{"type":"number","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.2.details.additionalProperties.oneOf.4","typeLabel":"number"},{"type":"array","items":{"oneOf":[{}],"uniqueKey":"oneOf.2.details.additionalProperties.oneOf.5.items.[INDEX]","typeLabel":"any"},"description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.2.details.additionalProperties.oneOf.5","typeLabel":"any[]"},{"type":"object","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"oneOf.2.details.additionalProperties.oneOf.6","typeLabel":"object"}],"uniqueKey":"oneOf.2.details.additionalProperties","typeLabel":"null | boolean | string | integer | number | any[] | object"},"description":"Optional structured error details. Reserved transport fields are typed; code-specific fields remain forward compatible.","uniqueKey":"oneOf.2.details","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"oneOf.2","typeLabel":"object"}],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"automation_classifier_unconfigured","message":"\u003cstring>","details":{"field":"\u003cstring>","issues":["\u003cstring>"],"requestId":"\u003cstring>","retryable":true}}}},"exampleType":"generated"}},"headers":{"recursion-organization-id":{"description":"Organization id resolved for this request.","schema":{"type":"string","minLength":1}},"recursion-tenant-id":{"description":"Tenant id resolved for this request.","schema":{"type":"string","minLength":1}}},"exampleType":"generated"},"475abf19-6d91-45c4-8417-e748db33e0c7":{"headers":{"Retry-After":{"description":"When to retry, as delay seconds or an HTTP date.","schema":{"type":"string"}},"recursion-organization-id":{"description":"Organization id resolved for this request.","schema":{"type":"string","minLength":1}},"recursion-tenant-id":{"description":"Tenant id resolved for this request.","schema":{"type":"string","minLength":1}}},"description":"A dependent service timed out.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","minLength":1,"description":"Stable machine-readable error code.","enum":["gateway_timeout"],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"description":"Human-readable error message.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"details":{"type":"object","properties":{"field":{"description":"Request field or header responsible for the error, when one can be identified.","type":"string","uniqueKey":"details.field","typeLabel":"string"},"issues":{"description":"Boundary-validation failures as path-prefixed human-readable messages.","type":"array","items":{"type":"string","uniqueKey":"details.issues.items.[INDEX]","typeLabel":"string"},"uniqueKey":"details.issues","typeLabel":"string[]"},"requestId":{"description":"Request correlation identifier for support and log lookup.","type":"string","uniqueKey":"details.requestId","typeLabel":"string"},"retryable":{"description":"Server advice about failure transience. `true` means transient, `false` means non-transient, and absence gives no advice. Automatic replay is allowed only when this field is not `false` and the operation-specific retry and idempotency contract permits replay.","type":"boolean","uniqueKey":"details.retryable","typeLabel":"boolean"}},"additionalProperties":{"oneOf":[{"type":"null","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.0","typeLabel":"null"},{"type":"boolean","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.1","typeLabel":"boolean"},{"type":"string","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.2","typeLabel":"string"},{"type":"integer","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","maximum":9007199254740991,"minimum":-9007199254740991,"uniqueKey":"details.additionalProperties.oneOf.3","typeLabel":"integer"},{"type":"number","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.4","typeLabel":"number"},{"type":"array","items":{"oneOf":[{}],"uniqueKey":"details.additionalProperties.oneOf.5.items.[INDEX]","typeLabel":"any"},"description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.5","typeLabel":"any[]"},{"type":"object","description":"A JSON value whose integer members stay within the exact ECMAScript safe-integer range at every nesting level.","uniqueKey":"details.additionalProperties.oneOf.6","typeLabel":"object"}],"uniqueKey":"details.additionalProperties","typeLabel":"null | boolean | string | integer | number | any[] | object"},"description":"Optional structured error details. Reserved transport fields are typed; code-specific fields remain forward compatible.","uniqueKey":"details","typeLabel":"object"}},"required":["code","message"],"additionalProperties":false,"description":"Standard flat error response.","x-recursion-error-codes":["gateway_timeout"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"gateway_timeout","message":"\u003cstring>","details":{"field":"\u003cstring>","issues":["\u003cstring>"],"requestId":"\u003cstring>","retryable":true}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"7829ce40-62d4-4613-b040-b17c8d493b67":{"bearerAuth":{"type":"http","scheme":"bearer","description":"A Recursion API key, created in the console under API keys.","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"8c419de8-88c2-4269-9b13-8963e05a8f49":{"url":"https://api.recursion.labelbox.com"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"A Recursion API key, created in the console under API keys.","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"A Recursion API key, created in the console under API keys.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"recursion/openapi.yaml"},"subdomain":"labelbox-1db23ff4","siteName":"Labelbox","title":"Test an AI filter on a sample message - Labelbox","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-02T16:29:00.643Z","originalFileLocation":"api-reference/automations/test-an-ai-filter-on-a-sample-message.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Asks the AI filter the given question about a sample message, its text and up to four screenshots, and returns the answer, every answer\u0026#x27;s probability, and whether the agent would wake. Nothing is saved and no run starts. The model call is billed to the organization like a filter evaluation on a real message.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Labelbox\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/labelbox-1db23ff4/8cFhcrRhzqCDD_l2/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/labelbox-1db23ff4/8cFhcrRhzqCDD_l2/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/labelbox-1db23ff4/8cFhcrRhzqCDD_l2/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/labelbox-1db23ff4/8cFhcrRhzqCDD_l2/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/labelbox-1db23ff4/8cFhcrRhzqCDD_l2/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/labelbox-1db23ff4/8cFhcrRhzqCDD_l2/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/labelbox-1db23ff4/8cFhcrRhzqCDD_l2/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/labelbox-1db23ff4/8cFhcrRhzqCDD_l2/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/labelbox-1db23ff4/8cFhcrRhzqCDD_l2/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Test an AI filter on a sample message - Labelbox\">\u003cmeta data-mint-head property=\"og:description\" content=\"Asks the AI filter the given question about a sample message, its text and up to four screenshots, and returns the answer, every answer\u0026#x27;s probability, and whether the agent would wake. Nothing is saved and no run starts. The model call is billed to the organization like a filter evaluation on a real message.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Labelbox\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.labelbox.com/api-reference/automations/test-an-ai-filter-on-a-sample-message\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://labelbox-1db23ff4.mintlify.app/_mintlify/api/og/v2?division=Automations\u0026amp;title=Test+an+AI+filter+on+a+sample+message\u0026amp;description=Asks+the+AI+filter+the+given+question+about+a+sample+message%2C+its+text+and+up+to+four+screenshots%2C+and+returns+the+answer%2C+every+answer%27s+probability%2C+and+wheth\u0026amp;theme=f571ec5c82cb5a5bd7bfc07f\u0026amp;signature=42359ad0d48546b283dd327c58479c09a48aabeab341f53aa3e3acb28ecf1255\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Test an AI filter on a sample message - Labelbox\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Asks the AI filter the given question about a sample message, its text and up to four screenshots, and returns the answer, every answer\u0026#x27;s probability, and whether the agent would wake. Nothing is saved and no run starts. The model call is billed to the organization like a filter evaluation on a real message.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://labelbox-1db23ff4.mintlify.app/_mintlify/api/og/v2?division=Automations\u0026amp;title=Test+an+AI+filter+on+a+sample+message\u0026amp;description=Asks+the+AI+filter+the+given+question+about+a+sample+message%2C+its+text+and+up+to+four+screenshots%2C+and+returns+the+answer%2C+every+answer%27s+probability%2C+and+wheth\u0026amp;theme=f571ec5c82cb5a5bd7bfc07f\u0026amp;signature=42359ad0d48546b283dd327c58479c09a48aabeab341f53aa3e3acb28ecf1255\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/labelbox-1db23ff4/8cFhcrRhzqCDD_l2/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Labelbox\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#36707F\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.labelbox.com/api-reference/automations/test-an-ai-filter-on-a-sample-message\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/automations/test-an-ai-filter-on-a-sample-message.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.labelbox.com/#organization\",\"name\":\"Labelbox\",\"url\":\"https://docs.labelbox.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/labelbox-1db23ff4/badqlfNjN52ySAbU/logo/light.svg?fit=max\u0026auto=format\u0026n=badqlfNjN52ySAbU\u0026q=85\u0026s=2e7592619836dadfb7384597f9e48bec\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.labelbox.com#website\",\"name\":\"Labelbox\",\"url\":\"https://docs.labelbox.com\",\"publisher\":{\"@id\":\"https://docs.labelbox.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.labelbox.com/api-reference/automations/test-an-ai-filter-on-a-sample-message#webpage\",\"url\":\"https://docs.labelbox.com/api-reference/automations/test-an-ai-filter-on-a-sample-message\",\"name\":\"Test an AI filter on a sample message\",\"description\":\"Asks the AI filter the given question about a sample message, its text and up to four screenshots, and returns the answer, every answer's probability, and whether the agent would wake. Nothing is saved and no run starts. The model call is billed to the organization like a filter evaluation on a real message.\",\"dateModified\":\"2026-11-02T16:29:00.643Z\",\"isPartOf\":{\"@id\":\"https://docs.labelbox.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.labelbox.com/api-reference/automations/test-an-ai-filter-on-a-sample-message#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.labelbox.com/api-reference/automations/test-an-ai-filter-on-a-sample-message#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Endpoints\",\"item\":\"https://docs.labelbox.com/api-reference/environments/list-environments\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Automations\",\"item\":\"https://docs.labelbox.com/api-reference/automations/list-canonical-automations\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Test an AI filter on a sample message\",\"item\":\"https://docs.labelbox.com/api-reference/automations/test-an-ai-filter-on-a-sample-message\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.labelbox.com/api-reference/automations/test-an-ai-filter-on-a-sample-message#apireference\",\"headline\":\"Test an AI filter on a sample message\",\"name\":\"Test an AI filter on a sample message\",\"description\":\"Asks the AI filter the given question about a sample message, its text and up to four screenshots, and returns the answer, every answer's probability, and whether the agent would wake. Nothing is saved and no run starts. The model call is billed to the organization like a filter evaluation on a real message.\",\"url\":\"https://docs.labelbox.com/api-reference/automations/test-an-ai-filter-on-a-sample-message\",\"mainEntityOfPage\":{\"@id\":\"https://docs.labelbox.com/api-reference/automations/test-an-ai-filter-on-a-sample-message#webpage\"},\"dateModified\":\"2026-11-02T16:29:00.643Z\",\"publisher\":{\"@id\":\"https://docs.labelbox.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.labelbox.com#website\"}}]}\u003c/script>","siteName":"Labelbox","nav":{"global":null,"products":[{"product":"Recursion","icon":"https://mintlify.s3.us-west-1.amazonaws.com/labelbox-1db23ff4/images/recursion-mark.svg","description":"Managed agents that work in your apps, learn, and run on schedule","tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":"/recursion"}]},{"tab":"API reference","groups":[{"group":"API reference","pages":[{"title":"API conventions","href":"/recursion/api"},{"title":"Limits","href":"/recursion/limits"},{"title":"Errors","href":"/recursion/errors"},{"title":"Event types and states","sidebarTitle":"Event types and states","href":"/recursion/reference"},{"title":"Glossary","href":"/recursion/glossary"},{"title":"Security","href":"/recursion/security"},{"title":"Troubleshooting","href":"/recursion/troubleshooting"}]},{"group":"Endpoints","pages":[{"group":"Environments","pages":[{"title":"List environments","deprecated":true,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/environments","href":"/api-reference/environments/list-environments"},{"title":"Create environment","deprecated":true,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/environments","href":"/api-reference/environments/create-environment"},{"title":"Get environment","deprecated":true,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/environments/{environmentId}","href":"/api-reference/environments/get-environment"},{"title":"Soft delete environment","deprecated":true,"version":null,"openapi":"/recursion/openapi.yaml delete /managed-agents/v1/environments/{environmentId}","href":"/api-reference/environments/soft-delete-environment"},{"title":"Update environment","deprecated":true,"version":null,"openapi":"/recursion/openapi.yaml patch /managed-agents/v1/environments/{environmentId}","href":"/api-reference/environments/update-environment"},{"title":"List setup runs","deprecated":true,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/environments/{environmentId}/setup-runs","href":"/api-reference/environments/list-setup-runs"},{"title":"Run and verify the environment's setup script","deprecated":true,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/environments/{environmentId}/setup-runs","href":"/api-reference/environments/run-and-verify-the-environments-setup-script"},{"title":"Get a setup run, optionally waiting for it to finish","deprecated":true,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/environments/{environmentId}/setup-runs/{setupRunId}","href":"/api-reference/environments/get-a-setup-run-optionally-waiting-for-it-to-finish"},{"title":"Read or tail a setup run's log","deprecated":true,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/environments/{environmentId}/setup-runs/{setupRunId}/log","href":"/api-reference/environments/read-or-tail-a-setup-runs-log"},{"title":"Cancel a setup run","deprecated":true,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/environments/{environmentId}/setup-runs/{setupRunId}/cancel","href":"/api-reference/environments/cancel-a-setup-run"},{"title":"List environments","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v2/environments","href":"/api-reference/environments/list-environments-1"},{"title":"Create environment","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v2/environments","href":"/api-reference/environments/create-environment-1"},{"title":"Get environment","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v2/environments/{environmentId}","href":"/api-reference/environments/get-environment-1"},{"title":"Soft delete environment","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml delete /managed-agents/v2/environments/{environmentId}","href":"/api-reference/environments/soft-delete-environment-1"},{"title":"Update environment","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml patch /managed-agents/v2/environments/{environmentId}","href":"/api-reference/environments/update-environment-1"},{"title":"List setup runs","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v2/environments/{environmentId}/setup-runs","href":"/api-reference/environments/list-setup-runs-1"},{"title":"Run and verify the environment's setup script","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v2/environments/{environmentId}/setup-runs","href":"/api-reference/environments/run-and-verify-the-environments-setup-script-1"},{"title":"Get a setup run, optionally waiting for it to finish","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v2/environments/{environmentId}/setup-runs/{setupRunId}","href":"/api-reference/environments/get-a-setup-run-optionally-waiting-for-it-to-finish-1"},{"title":"Read or tail a setup run's log","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v2/environments/{environmentId}/setup-runs/{setupRunId}/log","href":"/api-reference/environments/read-or-tail-a-setup-runs-log-1"},{"title":"Cancel a setup run","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v2/environments/{environmentId}/setup-runs/{setupRunId}/cancel","href":"/api-reference/environments/cancel-a-setup-run-1"},{"title":"List portable environment templates","deprecated":true,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/environment-templates","href":"/api-reference/environments/list-portable-environment-templates"},{"title":"List portable environment templates","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v2/environment-templates","href":"/api-reference/environments/list-portable-environment-templates-1"},{"title":"List supported sandbox providers","deprecated":true,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/sandbox-providers","href":"/api-reference/environments/list-supported-sandbox-providers"},{"title":"List supported sandbox providers","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v2/sandbox-providers","href":"/api-reference/environments/list-supported-sandbox-providers-1"}]},{"group":"Agents","pages":[{"title":"List agents","deprecated":true,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/agents","href":"/api-reference/agents/list-agents"},{"title":"Create an agent and immutable version","deprecated":true,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/agents","href":"/api-reference/agents/create-an-agent-and-immutable-version"},{"title":"Get one agent","deprecated":true,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/agents/{agentId}","href":"/api-reference/agents/get-one-agent"},{"title":"Soft delete agent","deprecated":true,"version":null,"openapi":"/recursion/openapi.yaml delete /managed-agents/v1/agents/{agentId}","href":"/api-reference/agents/soft-delete-agent"},{"title":"List agents","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v2/agents","href":"/api-reference/agents/list-agents-1"},{"title":"Create an agent and immutable version","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v2/agents","href":"/api-reference/agents/create-an-agent-and-immutable-version-1"},{"title":"Get one agent","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v2/agents/{agentId}","href":"/api-reference/agents/get-one-agent-1"},{"title":"Soft delete agent","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml delete /managed-agents/v2/agents/{agentId}","href":"/api-reference/agents/soft-delete-agent-1"},{"title":"Open the analyst for an agent's sessions","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/agents/{agentId}/analyst","href":"/api-reference/agents/open-the-analyst-for-an-agents-sessions"},{"title":"List an agent's immutable version history","deprecated":true,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/agents/{agentId}/versions","href":"/api-reference/agents/list-an-agents-immutable-version-history"},{"title":"Create a new immutable agent version","deprecated":true,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/agents/{agentId}/versions","href":"/api-reference/agents/create-a-new-immutable-agent-version"},{"title":"Get one immutable agent version","deprecated":true,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/agents/{agentId}/versions/{agentVersionId}","href":"/api-reference/agents/get-one-immutable-agent-version"},{"title":"List an agent's immutable version history","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v2/agents/{agentId}/versions","href":"/api-reference/agents/list-an-agents-immutable-version-history-1"},{"title":"Create a new immutable agent version","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v2/agents/{agentId}/versions","href":"/api-reference/agents/create-a-new-immutable-agent-version-1"},{"title":"Get one immutable agent version","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v2/agents/{agentId}/versions/{agentVersionId}","href":"/api-reference/agents/get-one-immutable-agent-version-1"},{"title":"List static agent templates","deprecated":true,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/agent-templates","href":"/api-reference/agents/list-static-agent-templates"},{"title":"List static agent templates","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v2/agent-templates","href":"/api-reference/agents/list-static-agent-templates-1"},{"title":"Search an agent's file history","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/agents/{agentId}/files/search","href":"/api-reference/agents/search-an-agents-file-history"},{"title":"Get one file of an agent's file history","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/agents/{agentId}/files/{fileId}","href":"/api-reference/agents/get-one-file-of-an-agents-file-history"},{"title":"Get what an agent's skills cost the prompt","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/agents/{agentId}/skill-disclosure","href":"/api-reference/agents/get-what-an-agents-skills-cost-the-prompt"},{"title":"Preview importing an agent export file","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v2/agents/import-preview","href":"/api-reference/agents/preview-importing-an-agent-export-file"},{"title":"Import an agent export file","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v2/agents/import","href":"/api-reference/agents/import-an-agent-export-file"}]},{"group":"Tags","pages":[{"title":"Replace an agent's complete tag set","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml put /managed-agents/v1/agents/{agentId}/tags","href":"/api-reference/tags/replace-an-agents-complete-tag-set"},{"title":"Apply one tag to an agent","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml put /managed-agents/v1/agents/{agentId}/tags/{tagId}","href":"/api-reference/tags/apply-one-tag-to-an-agent"},{"title":"Remove one tag from an agent","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml delete /managed-agents/v1/agents/{agentId}/tags/{tagId}","href":"/api-reference/tags/remove-one-tag-from-an-agent"},{"title":"List organization tags","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/tags","href":"/api-reference/tags/list-organization-tags"},{"title":"Create an organization tag","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/tags","href":"/api-reference/tags/create-an-organization-tag"},{"title":"Get one organization tag","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/tags/{tagId}","href":"/api-reference/tags/get-one-organization-tag"},{"title":"Soft delete a tag","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml delete /managed-agents/v1/tags/{tagId}","href":"/api-reference/tags/soft-delete-a-tag"},{"title":"Update a tag definition","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml patch /managed-agents/v1/tags/{tagId}","href":"/api-reference/tags/update-a-tag-definition"}]},{"group":"Skills","pages":[{"title":"List skills","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/skills","href":"/api-reference/skills/list-skills"},{"title":"Create a skill from a document","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/skills","href":"/api-reference/skills/create-a-skill-from-a-document"},{"title":"Publish a skill from a bundle upload","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/skills/upload","href":"/api-reference/skills/publish-a-skill-from-a-bundle-upload"},{"title":"Preview what a skill set costs the prompt","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/skills/disclosure-preview","href":"/api-reference/skills/preview-what-a-skill-set-costs-the-prompt"},{"title":"Get one skill","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/skills/{skillId}","href":"/api-reference/skills/get-one-skill"},{"title":"Soft delete skill","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml delete /managed-agents/v1/skills/{skillId}","href":"/api-reference/skills/soft-delete-skill"},{"title":"Refile a skill into a catalog group","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml patch /managed-agents/v1/skills/{skillId}","href":"/api-reference/skills/refile-a-skill-into-a-catalog-group"},{"title":"List a skill's immutable version history","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/skills/{skillId}/versions","href":"/api-reference/skills/list-a-skills-immutable-version-history"},{"title":"Publish a skill version from a document","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/skills/{skillId}/versions","href":"/api-reference/skills/publish-a-skill-version-from-a-document"},{"title":"Publish a skill version from a bundle upload","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/skills/{skillId}/versions/upload","href":"/api-reference/skills/publish-a-skill-version-from-a-bundle-upload"},{"title":"Get one immutable skill version","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/skills/{skillId}/versions/{skillVersionId}","href":"/api-reference/skills/get-one-immutable-skill-version"},{"title":"Download a skill version's bundle","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/skills/{skillId}/versions/{skillVersionId}/content","href":"/api-reference/skills/download-a-skill-versions-bundle"},{"title":"List skill groups","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/skill-groups","href":"/api-reference/skills/list-skill-groups"},{"title":"Create a skill group","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/skill-groups","href":"/api-reference/skills/create-a-skill-group"},{"title":"Get one skill group","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/skill-groups/{skillGroupId}","href":"/api-reference/skills/get-one-skill-group"},{"title":"Delete a skill group","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml delete /managed-agents/v1/skill-groups/{skillGroupId}","href":"/api-reference/skills/delete-a-skill-group"},{"title":"Update a skill group","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml patch /managed-agents/v1/skill-groups/{skillGroupId}","href":"/api-reference/skills/update-a-skill-group"},{"title":"List the skills in a group","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/skill-groups/{skillGroupId}/skills","href":"/api-reference/skills/list-the-skills-in-a-group"}]},{"group":"Sessions","pages":[{"title":"List sessions","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/sessions","href":"/api-reference/sessions/list-sessions"},{"title":"Start a managed session","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/sessions","href":"/api-reference/sessions/start-a-managed-session"},{"title":"Snapshot every root session created in a window","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/sessions/gestalt","href":"/api-reference/sessions/snapshot-every-root-session-created-in-a-window"},{"title":"Stream changes to the sessions gestalt as Server-Sent Events","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/sessions/gestalt/stream","href":"/api-reference/sessions/stream-changes-to-the-sessions-gestalt-as-server-sent-events"},{"title":"Roll up token and cost totals for a batch of sessions","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/sessions/usage","href":"/api-reference/sessions/roll-up-token-and-cost-totals-for-a-batch-of-sessions"},{"title":"List the caller-defined metadata keys sessions carry","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/sessions/metadata-keys","href":"/api-reference/sessions/list-the-caller-defined-metadata-keys-sessions-carry"},{"title":"List the values one caller-defined metadata key takes","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/sessions/metadata-values","href":"/api-reference/sessions/list-the-values-one-caller-defined-metadata-key-takes"},{"title":"Get session","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/sessions/{sessionId}","href":"/api-reference/sessions/get-session"},{"title":"Soft delete a session subtree (events retained)","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml delete /managed-agents/v1/sessions/{sessionId}","href":"/api-reference/sessions/soft-delete-a-session-subtree-events-retained"},{"title":"Open the session analyst for a session","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/sessions/{sessionId}/analyst","href":"/api-reference/sessions/open-the-session-analyst-for-a-session"},{"title":"Open the organization assistant","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/assistant","href":"/api-reference/sessions/open-the-organization-assistant"},{"title":"Decide on an assistant interaction","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/sessions/{sessionId}/interactions/{interactionId}/decide","href":"/api-reference/sessions/decide-on-an-assistant-interaction"},{"title":"Get the team board","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/sessions/{sessionId}/board","href":"/api-reference/sessions/get-the-team-board"},{"title":"Read sandbox CPU, memory, and GPU usage for a session tree","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/sessions/{sessionId}/resource-samples","href":"/api-reference/sessions/read-sandbox-cpu-memory-and-gpu-usage-for-a-session-tree"},{"title":"Get root timeline events","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/sessions/{sessionId}/events","href":"/api-reference/sessions/get-root-timeline-events"},{"title":"Append user/system events to a session","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/sessions/{sessionId}/events","href":"/api-reference/sessions/append-usersystem-events-to-a-session"},{"title":"Get root session tree and timeline","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/sessions/{sessionId}/tree","href":"/api-reference/sessions/get-root-session-tree-and-timeline"},{"title":"List session threads","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/sessions/{sessionId}/threads","href":"/api-reference/sessions/list-session-threads"},{"title":"Get session thread","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/sessions/{sessionId}/threads/{threadId}","href":"/api-reference/sessions/get-session-thread"},{"title":"Stream session events as Server-Sent Events","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/sessions/{sessionId}/events/stream","href":"/api-reference/sessions/stream-session-events-as-server-sent-events"},{"title":"Stream one authenticated complete event content document","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/sessions/{sessionId}/events/{eventId}/content","href":"/api-reference/sessions/stream-one-authenticated-complete-event-content-document"},{"title":"Get one private session image","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/sessions/{sessionId}/images","href":"/api-reference/sessions/get-one-private-session-image"},{"title":"Hard stop a session immediately","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/sessions/{sessionId}/cancel","href":"/api-reference/sessions/hard-stop-a-session-immediately"},{"title":"Interrupt a running session","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/sessions/{sessionId}/interrupt","href":"/api-reference/sessions/interrupt-a-running-session"},{"title":"Interrupt a session and send a replacement instruction","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/sessions/{sessionId}/interrupt-and-send","href":"/api-reference/sessions/interrupt-a-session-and-send-a-replacement-instruction"},{"title":"List input a session has accepted but not read","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/sessions/{sessionId}/pending-inputs","href":"/api-reference/sessions/list-input-a-session-has-accepted-but-not-read"},{"title":"List a session's outcomes and grading history","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/sessions/{sessionId}/outcomes","href":"/api-reference/sessions/list-a-sessions-outcomes-and-grading-history"},{"title":"Define what done looks like for a session","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/sessions/{sessionId}/outcomes","href":"/api-reference/sessions/define-what-done-looks-like-for-a-session"},{"title":"Get the agent version a session runs","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/sessions/{sessionId}/agent-version","href":"/api-reference/sessions/get-the-agent-version-a-session-runs"},{"title":"Move a session to another version of its agent","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml put /managed-agents/v1/sessions/{sessionId}/agent-version","href":"/api-reference/sessions/move-a-session-to-another-version-of-its-agent"},{"title":"Set a session's budget","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml put /managed-agents/v1/sessions/{sessionId}/budget","href":"/api-reference/sessions/set-a-sessions-budget"},{"title":"Remove a session's budget","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml delete /managed-agents/v1/sessions/{sessionId}/budget","href":"/api-reference/sessions/remove-a-sessions-budget"}]},{"group":"Memory","pages":[{"title":"List memory status for every agent","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/agent-memories","href":"/api-reference/memory/list-memory-status-for-every-agent"},{"title":"Get an agent's memory summary","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/agent-memories/{agentId}","href":"/api-reference/memory/get-an-agents-memory-summary"},{"title":"Search an agent's current memories","deprecated":true,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/agents/{agentId}/memories","href":"/api-reference/memory/search-an-agents-current-memories"},{"title":"Search an agent's current memories","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v2/agents/{agentId}/memories","href":"/api-reference/memory/search-an-agents-current-memories-1"},{"title":"Get an agent's memory settings","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/agents/{agentId}/memory/settings","href":"/api-reference/memory/get-an-agents-memory-settings"},{"title":"Update an agent's memory settings","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml patch /managed-agents/v1/agents/{agentId}/memory/settings","href":"/api-reference/memory/update-an-agents-memory-settings"},{"title":"List an agent's memory runs","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/agents/{agentId}/memory/runs","href":"/api-reference/memory/list-an-agents-memory-runs"},{"title":"Get one memory job run","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/agents/{agentId}/memory/runs/{runId}","href":"/api-reference/memory/get-one-memory-job-run"},{"title":"Read one memory","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/memory-stores/{memoryStoreId}/memories/{memoryId}","href":"/api-reference/memory/read-one-memory"},{"title":"Delete a memory","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml delete /managed-agents/v1/memory-stores/{memoryStoreId}/memories/{memoryId}","href":"/api-reference/memory/delete-a-memory"},{"title":"List memory versions","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/memory-stores/{memoryStoreId}/memory-versions","href":"/api-reference/memory/list-memory-versions"},{"title":"Get one memory version","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/memory-stores/{memoryStoreId}/memory-versions/{memoryVersionId}","href":"/api-reference/memory/get-one-memory-version"},{"title":"List memory store revisions","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/memory-stores/{memoryStoreId}/revisions","href":"/api-reference/memory/list-memory-store-revisions"}]},{"group":"Vaults","pages":[{"title":"List credential vaults","deprecated":true,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/vaults","href":"/api-reference/vaults/list-credential-vaults"},{"title":"Create a credential vault","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/vaults","href":"/api-reference/vaults/create-a-credential-vault"},{"title":"List credential vaults","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v2/vaults","href":"/api-reference/vaults/list-credential-vaults-1"},{"title":"Get a credential vault","deprecated":true,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/vaults/{vaultId}","href":"/api-reference/vaults/get-a-credential-vault"},{"title":"Soft delete a vault and hide its credentials","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml delete /managed-agents/v1/vaults/{vaultId}","href":"/api-reference/vaults/soft-delete-a-vault-and-hide-its-credentials"},{"title":"Rename a vault or replace its metadata","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml patch /managed-agents/v1/vaults/{vaultId}","href":"/api-reference/vaults/rename-a-vault-or-replace-its-metadata"},{"title":"Get a credential vault","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v2/vaults/{vaultId}","href":"/api-reference/vaults/get-a-credential-vault-1"},{"title":"List a vault's credential references","deprecated":true,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/vaults/{vaultId}/credentials","href":"/api-reference/vaults/list-a-vaults-credential-references"},{"title":"Register a credential reference in a vault","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/vaults/{vaultId}/credentials","href":"/api-reference/vaults/register-a-credential-reference-in-a-vault"},{"title":"List a vault's credential references","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v2/vaults/{vaultId}/credentials","href":"/api-reference/vaults/list-a-vaults-credential-references-1"},{"title":"Get one credential reference","deprecated":true,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/vaults/{vaultId}/credentials/{credentialId}","href":"/api-reference/vaults/get-one-credential-reference"},{"title":"Soft delete a credential reference","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml delete /managed-agents/v1/vaults/{vaultId}/credentials/{credentialId}","href":"/api-reference/vaults/soft-delete-a-credential-reference"},{"title":"Rename a credential or rotate its reference","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml patch /managed-agents/v1/vaults/{vaultId}/credentials/{credentialId}","href":"/api-reference/vaults/rename-a-credential-or-rotate-its-reference"},{"title":"Get one credential reference","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v2/vaults/{vaultId}/credentials/{credentialId}","href":"/api-reference/vaults/get-one-credential-reference-1"},{"title":"Test an MCP server connection and list its tools","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/mcp/probe","href":"/api-reference/vaults/test-an-mcp-server-connection-and-list-its-tools"}]},{"group":"Event Sources","pages":[{"title":"Check IMAP OAuth website sign-in availability","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/imap-oauth/availability","href":"/api-reference/event-sources/check-imap-oauth-website-sign-in-availability"},{"title":"Start website sign-in for an IMAP OAuth credential","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/vaults/{vaultId}/credentials/{credentialId}/imap-oauth/start","href":"/api-reference/event-sources/start-website-sign-in-for-an-imap-oauth-credential"},{"title":"Complete website sign-in for an IMAP OAuth credential","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/imap-oauth/complete","href":"/api-reference/event-sources/complete-website-sign-in-for-an-imap-oauth-credential"},{"title":"List event sources","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/event-sources","href":"/api-reference/event-sources/list-event-sources"},{"title":"Create a paused event source","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/event-sources","href":"/api-reference/event-sources/create-a-paused-event-source"},{"title":"Get an event source","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/event-sources/{eventSourceId}","href":"/api-reference/event-sources/get-an-event-source"},{"title":"Replace an event source configuration","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml put /managed-agents/v1/event-sources/{eventSourceId}","href":"/api-reference/event-sources/replace-an-event-source-configuration"},{"title":"Delete an unused event source","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml delete /managed-agents/v1/event-sources/{eventSourceId}","href":"/api-reference/event-sources/delete-an-unused-event-source"},{"title":"Get volatile event-source status","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/event-sources/{eventSourceId}/status","href":"/api-reference/event-sources/get-volatile-event-source-status"},{"title":"Pause event admission from a source","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/event-sources/{eventSourceId}/pause","href":"/api-reference/event-sources/pause-event-admission-from-a-source"},{"title":"Resume event admission from a source","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/event-sources/{eventSourceId}/resume","href":"/api-reference/event-sources/resume-event-admission-from-a-source"}]},{"group":"Integrations","pages":[{"title":"List the native integrations this deployment supports","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/integrations/providers","href":"/api-reference/integrations/list-the-native-integrations-this-deployment-supports"},{"title":"Begin authorizing a third-party account connection","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/integrations/{provider}/install","href":"/api-reference/integrations/begin-authorizing-a-third-party-account-connection"},{"title":"Finish connecting provider accounts after the authorization redirect","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/integrations/install/complete","href":"/api-reference/integrations/finish-connecting-provider-accounts-after-the-authorization-redirect"},{"title":"List connected third-party accounts","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/integrations/connections","href":"/api-reference/integrations/list-connected-third-party-accounts"},{"title":"Get one connected account","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/integrations/connections/{connectionId}","href":"/api-reference/integrations/get-one-connected-account"},{"title":"Disconnect an account and retire the grants that used it","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml delete /managed-agents/v1/integrations/connections/{connectionId}","href":"/api-reference/integrations/disconnect-an-account-and-retire-the-grants-that-used-it"},{"title":"Check a connection against the provider and try minting a token","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/integrations/connections/{connectionId}/probe","href":"/api-reference/integrations/check-a-connection-against-the-provider-and-try-minting-a-token"},{"title":"List the repositories a connection can reach, for the grant picker","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/integrations/connections/{connectionId}/repositories","href":"/api-reference/integrations/list-the-repositories-a-connection-can-reach-for-the-grant-picker"},{"title":"List pull requests for a connected repository","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/integrations/connections/{connectionId}/repositories/{repositoryOwner}/{repositoryName}/pull-requests","href":"/api-reference/integrations/list-pull-requests-for-a-connected-repository"},{"title":"Get the connected Slack bot's bounded channel-selection catalog","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/integrations/connections/{connectionId}/channel-catalog","href":"/api-reference/integrations/get-the-connected-slack-bots-bounded-channel-selection-catalog"},{"title":"Get the connected Slack workspace's bounded member catalog","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/integrations/connections/{connectionId}/member-catalog","href":"/api-reference/integrations/get-the-connected-slack-workspaces-bounded-member-catalog"}]},{"group":"Models","pages":[{"title":"List the models agents can run on","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/models","href":"/api-reference/models/list-the-models-agents-can-run-on"}]},{"group":"Automations","pages":[{"title":"List canonical automations","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/automations","href":"/api-reference/automations/list-canonical-automations"},{"title":"Create a paused canonical automation","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/automations","href":"/api-reference/automations/create-a-paused-canonical-automation"},{"title":"Get a canonical automation","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/automations/{automationId}","href":"/api-reference/automations/get-a-canonical-automation"},{"title":"Replace a canonical automation aggregate","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml put /managed-agents/v1/automations/{automationId}","href":"/api-reference/automations/replace-a-canonical-automation-aggregate"},{"title":"Delete a canonical automation","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml delete /managed-agents/v1/automations/{automationId}","href":"/api-reference/automations/delete-a-canonical-automation"},{"title":"Get automation schedule status","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/automations/{automationId}/status","href":"/api-reference/automations/get-automation-schedule-status"},{"title":"Run a canonical automation manually","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/automations/{automationId}/runs","href":"/api-reference/automations/run-a-canonical-automation-manually"},{"title":"Pause canonical automation admission","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/automations/{automationId}/pause","href":"/api-reference/automations/pause-canonical-automation-admission"},{"title":"Resume canonical automation admission","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/automations/{automationId}/resume","href":"/api-reference/automations/resume-canonical-automation-admission"},{"title":"List canonical automation runs","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/automation-runs","href":"/api-reference/automations/list-canonical-automation-runs"},{"title":"Get one canonical automation run","description":"Returns one canonical run, including the immutable prompt and context snapshots and its current session-creation outcome.","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/automation-runs/{automationRunId}","href":"/api-reference/automations/get-one-canonical-automation-run"},{"title":"Test an AI filter on a sample message","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/automation-classifier-tests","href":"/api-reference/automations/test-an-ai-filter-on-a-sample-message"}]},{"group":"Files","pages":[{"title":"List files","description":"Returns the caller organization's files, newest first, one page at a time: up to limit files (default 200, at most 1000) and a next_page_token while more follow. Deleted files are omitted; an expired file stays listed, with expires_at in the past, until it is removed after a grace period, so a client that wants only attachable files filters on expires_at. Filter to one session's outputs with scope_session_id or by source. A file_ids lookup (at most 100 ids) is always one page and cannot be combined with limit or page_token.","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/files","href":"/api-reference/files/list-files"},{"title":"Upload a file","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml post /managed-agents/v1/files","href":"/api-reference/files/upload-a-file"},{"title":"Get one file","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/files/{fileId}","href":"/api-reference/files/get-one-file"},{"title":"Download a file's bytes","deprecated":null,"version":null,"openapi":"/recursion/openapi.yaml get /managed-agents/v1/files/{fileId}/content","href":"/api-reference/files/download-a-files-bytes"}]}]}]}]},{"product":"Horizon","icon":"https://mintlify.s3.us-west-1.amazonaws.com/labelbox-1db23ff4/images/labelbox-mark.svg","description":"RL environments, evals, labeling, and the Python SDK","pages":[{"title":"Horizon","href":"/horizon"}]}]},"basePath":"","title":"Test an AI filter on a sample message - Labelbox","buildId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","deploymentId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CS552b7R.js","utils-DDTCYAF2.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-De8ttokP.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-DrwRDvAh.js","snippetPresets-DtAN0nWx.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-D5rWArI6.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-O2i12wsz.js","shallow-DV8xABTt.js","getApiPlaygroundDisplay-DBZ0B5Jx.js","CodeSnippet-BVi0tPUX.js","CodeSnippets-CqASbIwY.js","Page-m07pfKpT.js","getPastedJson-DG9vsMS8.js","icon-CXzRSCr8.js","MethodPill-BdKVtEuX.js","DuplicateIcon-CZlmBrJI.js","createIcon-biFEUKPL.js","DynamicMarkdown-B54_zNBF.js","SectionHeading-DwwHK3Pt.js","axios-vUo_bRtp.js","Markdown-DfhCTwyA.js","clsx-xpJZXxdP.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BTZUMDnx.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-DqdKa2R4.js"]}