Validate Response-Agents-as-Code YAML without syncing it. Runs the same parse, schema, and cross-file checks as the GitOps sync engine, so a CI check stays in step with real sync behavior. Typically used to validate agent files in a pull request before they merge.
Request. Post each file as a { path, content } pair. The validator has no access to your repo, so you send the raw file text. Post one file to check it on its own, or a whole directory to also catch cross-file issues like duplicate sync_key values and dependency cycles. Include any prompt .md files referenced by systemPrompt.file so those references resolve.
Response. An overall valid flag, plus per file an errors list (these would block a sync) and a warnings list (non-blocking). Warnings are checks that need live workspace state the request cannot see, such as an unprovided systemPrompt.file or a reference to an agent that is not in the request.
Authentication. Send a bearer token. GitHub OIDC is the recommended method: in GitHub Actions, use the cotool/validate-agents Action, which mints a short-lived, repo-scoped token (no stored secret; the repository must be connected for GitOps sync) that grants validate-only access. A Cotool API key with the tool.manage permission also works for non-GitHub or self-hosted CI, but it is long-lived and inherits the full permissions of the user who created it, so prefer OIDC and treat any API key as a sensitive, least-privilege secret.
The files to validate. Post one to check it on its own, or a whole directory to also catch cross-file issues. Include any SKILL.md files (under skillsPath) that agents reference, and any prompt .md files referenced by systemPrompt.file; a skill reference whose SKILL.md is not in the request is a warning, not a failure.
Directory holding standalone SKILL.md skill definitions (default "cotool/skills"). Must match your sync config's skills path so skill files in the request are discovered.
{"docsConfig":{"theme":"linden","$schema":"https://mintlify.com/docs.json","name":"Cotool Documentation","colors":{"primary":"#A9D5F5","light":"#A9D5F5","dark":"#ADB7C2"},"logo":{"light":"https://mintcdn.com/cotool-bcb49c92/2D7q2Y6FoJjh0OqV/logo/light.svg?fit=max\u0026auto=format\u0026n=2D7q2Y6FoJjh0OqV\u0026q=85\u0026s=ed5fa6ba5fadea78cb6d1341380b9873","dark":"https://mintcdn.com/cotool-bcb49c92/2D7q2Y6FoJjh0OqV/logo/dark.svg?fit=max\u0026auto=format\u0026n=2D7q2Y6FoJjh0OqV\u0026q=85\u0026s=fab6122c7e0ad6a1e8299f49397231f5"},"favicon":"https://mintcdn.com/cotool-bcb49c92/YkFCFtl3swKv9Xqp/favicon.png?fit=max\u0026auto=format\u0026n=YkFCFtl3swKv9Xqp\u0026q=85\u0026s=4c02ec1d53713897f1c2b6f7815e864b","api":{"playground":{"display":"simple"},"examples":{"defaults":"all","languages":["curl","python","javascript","java","go"]}},"navbar":{"links":[{"href":"mailto:support@cotool.ai","label":"Support"}]},"footer":{"socials":{"x":"https://x.com/cotoolai","linkedin":"https://www.linkedin.com/company/cotool-ai","website":"https://cotool.ai"}},"integrations":{"ga4":{"measurementId":"G-RJSB18V7N5"},"gtm":{"tagId":"GTM-5BPJH7T2"}},"contextual":{"options":["copy","view"],"display":"header"},"styling":{"latex":false},"background":{"color":{"light":"#fcfeff","dark":"#0e0f12"}},"navigation":{"global":{"anchors":[{"anchor":"Blog","icon":"newspaper","href":"https://cotool.ai/blog"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"cotool-bcb49c92","hasAudioNarration":false,"actualSubdomain":"cotool-bcb49c92","customDomains":["docs.cotool.ai"],"gitSource":{"type":"github","owner":"cotool","repo":"cogent-client","deployBranch":"stable","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae02901a8ff4c276925ade9","collectionId":"85829dbf-9f15-4f96-a0fa-054002649d49","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae02901a8ff4c276925ade9"},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae107eedb0453cbc1bcf652","clientVersion":"0.0.4006","searchFilterCounts":[{"language":"default","tag":"API Reference","count":154},{"language":"default","tag":"Endpoints","count":153},{"language":"default","tag":"Documentation","count":60},{"language":"default","tag":"Agents","count":30},{"language":"default","tag":"Alerts","count":19},{"language":"default","tag":"Integrations","count":17},{"language":"default","tag":"Agent Runs","count":14},{"language":"default","tag":"Agent Triggers","count":13},{"language":"default","tag":"Hunt","count":12},{"language":"default","tag":"Intel","count":11}]},"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":"editor-v7-file-tree","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":"pause-universal-search-reconcile","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":"per-site-search-delta","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":"editor-private-page-search","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":"editor-nav-generations","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":"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":"editor-agent-model-picker","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":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/agents-as-code/validate-response-agent-as-code-yaml","slug":"/api-reference/agents-as-code/validate-response-agent-as-code-yaml","pageMetadata":{"title":"Validate Response-Agent-as-Code YAML","description":"Validate Response-Agents-as-Code YAML without syncing it. Runs the same parse, schema, and cross-file checks as the GitOps sync engine, so a CI check stays in step with real sync behavior. Typically used to validate agent files in a pull request before they merge.\n\n**Request.** Post each file as a `{ path, content }` pair. The validator has no access to your repo, so you send the raw file text. Post one file to check it on its own, or a whole directory to also catch cross-file issues like duplicate `sync_key` values and dependency cycles. Include any prompt `.md` files referenced by `systemPrompt.file` so those references resolve.\n\n**Response.** An overall `valid` flag, plus per file an `errors` list (these would block a sync) and a `warnings` list (non-blocking). Warnings are checks that need live workspace state the request cannot see, such as an unprovided `systemPrompt.file` or a reference to an agent that is not in the request.\n\n**Authentication.** Send a bearer token. **GitHub OIDC is the recommended method:** in GitHub Actions, use the [`cotool/validate-agents` Action](/agents/response-agents-as-code#validate-in-ci), which mints a short-lived, repo-scoped token (no stored secret; the repository must be connected for GitOps sync) that grants validate-only access. A Cotool API key with the `tool.manage` permission also works for non-GitHub or self-hosted CI, but it is long-lived and inherits the full permissions of the user who created it, so prefer OIDC and treat any API key as a sensitive, least-privilege secret.","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/agent-sync/validate","href":"/api-reference/agents-as-code/validate-response-agent-as-code-yaml","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n code: \"code\",\n p: \"p\",\n strong: \"strong\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Validate Response-Agents-as-Code YAML without syncing it. Runs the same parse, schema, and cross-file checks as the GitOps sync engine, so a CI check stays in step with real sync behavior. Typically used to validate agent files in a pull request before they merge.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Request.\"\n }), \" Post each file as a \", _jsx(_components.code, {\n children: \"{ path, content }\"\n }), \" pair. The validator has no access to your repo, so you send the raw file text. Post one file to check it on its own, or a whole directory to also catch cross-file issues like duplicate \", _jsx(_components.code, {\n children: \"sync_key\"\n }), \" values and dependency cycles. Include any prompt \", _jsx(_components.code, {\n children: \".md\"\n }), \" files referenced by \", _jsx(_components.code, {\n children: \"systemPrompt.file\"\n }), \" so those references resolve.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Response.\"\n }), \" An overall \", _jsx(_components.code, {\n children: \"valid\"\n }), \" flag, plus per file an \", _jsx(_components.code, {\n children: \"errors\"\n }), \" list (these would block a sync) and a \", _jsx(_components.code, {\n children: \"warnings\"\n }), \" list (non-blocking). Warnings are checks that need live workspace state the request cannot see, such as an unprovided \", _jsx(_components.code, {\n children: \"systemPrompt.file\"\n }), \" or a reference to an agent that is not in the request.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Authentication.\"\n }), \" Send a bearer token. \", _jsx(_components.strong, {\n children: \"GitHub OIDC is the recommended method:\"\n }), \" in GitHub Actions, use the \", _jsxs(_components.a, {\n href: \"/agents/response-agents-as-code#validate-in-ci\",\n children: [_jsx(_components.code, {\n children: \"cotool/validate-agents\"\n }), \" Action\"]\n }), \", which mints a short-lived, repo-scoped token (no stored secret; the repository must be connected for GitOps sync) that grants validate-only access. A Cotool API key with the \", _jsx(_components.code, {\n children: \"tool.manage\"\n }), \" permission also works for non-GitHub or self-hosted CI, but it is long-lived and inherits the full permissions of the user who created it, so prefer OIDC and treat any API key as a sensitive, least-privilege secret.\"]\n })]\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":{"config":{},"pageMetadata":{"title":"Validate Response-Agent-as-Code YAML","description":"Validate Response-Agents-as-Code YAML without syncing it. Runs the same parse, schema, and cross-file checks as the GitOps sync engine, so a CI check stays in step with real sync behavior. Typically used to validate agent files in a pull request before they merge.\n\n**Request.** Post each file as a `{ path, content }` pair. The validator has no access to your repo, so you send the raw file text. Post one file to check it on its own, or a whole directory to also catch cross-file issues like duplicate `sync_key` values and dependency cycles. Include any prompt `.md` files referenced by `systemPrompt.file` so those references resolve.\n\n**Response.** An overall `valid` flag, plus per file an `errors` list (these would block a sync) and a `warnings` list (non-blocking). Warnings are checks that need live workspace state the request cannot see, such as an unprovided `systemPrompt.file` or a reference to an agent that is not in the request.\n\n**Authentication.** Send a bearer token. **GitHub OIDC is the recommended method:** in GitHub Actions, use the [`cotool/validate-agents` Action](/agents/response-agents-as-code#validate-in-ci), which mints a short-lived, repo-scoped token (no stored secret; the repository must be connected for GitOps sync) that grants validate-only access. A Cotool API key with the `tool.manage` permission also works for non-GitHub or self-hosted CI, but it is long-lived and inherits the full permissions of the user who created it, so prefer OIDC and treat any API key as a sensitive, least-privilege secret.","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/agent-sync/validate","href":"/api-reference/agents-as-code/validate-response-agent-as-code-yaml","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"summary":"Validate Response-Agent-as-Code YAML","description":"Validate Response-Agents-as-Code YAML without syncing it. Runs the same parse, schema, and cross-file checks as the GitOps sync engine, so a CI check stays in step with real sync behavior. Typically used to validate agent files in a pull request before they merge.\n\n**Request.** Post each file as a `{ path, content }` pair. The validator has no access to your repo, so you send the raw file text. Post one file to check it on its own, or a whole directory to also catch cross-file issues like duplicate `sync_key` values and dependency cycles. Include any prompt `.md` files referenced by `systemPrompt.file` so those references resolve.\n\n**Response.** An overall `valid` flag, plus per file an `errors` list (these would block a sync) and a `warnings` list (non-blocking). Warnings are checks that need live workspace state the request cannot see, such as an unprovided `systemPrompt.file` or a reference to an agent that is not in the request.\n\n**Authentication.** Send a bearer token. **GitHub OIDC is the recommended method:** in GitHub Actions, use the [`cotool/validate-agents` Action](/agents/response-agents-as-code#validate-in-ci), which mints a short-lived, repo-scoped token (no stored secret; the repository must be connected for GitOps sync) that grants validate-only access. A Cotool API key with the `tool.manage` permission also works for non-GitHub or self-hosted CI, but it is long-lived and inherits the full permissions of the user who created it, so prefer OIDC and treat any API key as a sensitive, least-privilege secret.","tags":["Agents as Code"],"x-codeSamples":[{"lang":"shell","label":"cURL","source":"curl -X POST \"https://app.cotool.ai/api/agent-sync/validate\" \\\n -H \"Authorization: Bearer YOUR_API_KEY\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"files\":[{\"path\":\"agents/triage-suspicious-login.yaml\",\"content\":\"apiVersion: cotool.ai/v1\\nkind: ResponseAgent\\nmetadata:\\n sync_key: triage-suspicious-login\\n name: Triage Suspicious Login\\nspec:\\n modelAlias: anthropic:chat:sonnet-4.6\\n toolNames: [slack]\\n\"}],\"skillsPath\":\"string\"}'"}],"requestBody":"eaca0286-a7b7-40d4-8078-8cade6d136de","responses":{"200":"a567db56-6a21-4897-885e-5677f0069566","400":"46fe47f6-5f15-4ad4-9109-cd73d87bb506","401":"55591a71-2049-4ea2-9f20-9d27f180ead4","403":"18da04c0-848f-470a-b1b1-8a0a0b7ff887","500":"7a1e5514-2035-41bc-b7bc-0174e8747deb"},"method":"post","type":"path","servers":["176299f3-7268-41ba-b4a5-ab38bcd2c47e"],"security":["0ff78b3f-0e10-4b02-893f-06d2cd9c36bb"],"path":"/api/agent-sync/validate","baseUrlOptions":["https://app.cotool.ai"],"title":"Validate Response-Agent-as-Code YAML","codeSamples":[{"label":"cURL","lang":"shell","source":"curl -X POST \"https://app.cotool.ai/api/agent-sync/validate\" \\\n -H \"Authorization: Bearer YOUR_API_KEY\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"files\":[{\"path\":\"agents/triage-suspicious-login.yaml\",\"content\":\"apiVersion: cotool.ai/v1\\nkind: ResponseAgent\\nmetadata:\\n sync_key: triage-suspicious-login\\n name: Triage Suspicious Login\\nspec:\\n modelAlias: anthropic:chat:sonnet-4.6\\n toolNames: [slack]\\n\"}],\"skillsPath\":\"string\"}'"}],"requestExampleLanguages":["bash","python","javascript","java","go"],"requiredOnlyExamples":false,"requestExampleType":"codeSamples","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"files":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","minLength":1,"description":"Repo-relative file path, e.g. \"agents/triage.yaml\". A .yaml/.yml file is validated as an agent; any other file (such as a .md) is treated as a referenced systemPrompt.file. Also used to identify files in cross-file checks.","example":"agents/triage-suspicious-login.yaml","isRequired":true,"uniqueKey":"files.items.[INDEX].path","typeLabel":"string"},"content":{"type":"string","description":"The full raw text of the file. The validator has no repo access, so you send the file contents yourself.","example":"apiVersion: cotool.ai/v1\nkind: ResponseAgent\nmetadata:\n sync_key: triage-suspicious-login\n name: Triage Suspicious Login\nspec:\n modelAlias: anthropic:chat:sonnet-4.6\n toolNames: [slack]\n","isRequired":true,"uniqueKey":"files.items.[INDEX].content","typeLabel":"string"}},"required":["path","content"],"uniqueKey":"files.items.[INDEX]","typeLabel":"object"},"minItems":1,"description":"The files to validate. Post one to check it on its own, or a whole directory to also catch cross-file issues. Include any SKILL.md files (under skillsPath) that agents reference, and any prompt .md files referenced by systemPrompt.file; a skill reference whose SKILL.md is not in the request is a warning, not a failure.","isRequired":true,"uniqueKey":"files","typeLabel":"object[]"},"skillsPath":{"type":"string","minLength":1,"description":"Directory holding standalone SKILL.md skill definitions (default \"cotool/skills\"). Must match your sync config's skills path so skill files in the request are discovered.","uniqueKey":"skillsPath","typeLabel":"string"}},"required":["files"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"files":[{"path":"agents/triage-suspicious-login.yaml","content":"apiVersion: cotool.ai/v1\nkind: ResponseAgent\nmetadata:\n sync_key: triage-suspicious-login\n name: Triage Suspicious Login\nspec:\n modelAlias: anthropic:chat:sonnet-4.6\n toolNames: [slack]\n"}],"skillsPath":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"a567db56-6a21-4897-885e-5677f0069566":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"valid":{"type":"boolean","description":"True when every returned result validated with no errors.","isRequired":true,"uniqueKey":"valid","typeLabel":"boolean"},"fileCount":{"type":"number","description":"Number of validation result rows returned.","isRequired":true,"uniqueKey":"fileCount","typeLabel":"number"},"agentCount":{"type":"number","description":"Number of schema-valid, graph-clean agents found.","isRequired":true,"uniqueKey":"agentCount","typeLabel":"number"},"results":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","isRequired":true,"uniqueKey":"results.items.[INDEX].path","typeLabel":"string"},"valid":{"type":"boolean","description":"True when this file has no error-severity diagnostics.","isRequired":true,"uniqueKey":"results.items.[INDEX].valid","typeLabel":"boolean"},"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","enum":["yaml_error","schema_error","fetch_error"],"description":"Kind of issue.","isRequired":true,"uniqueKey":"results.items.[INDEX].errors.items.[INDEX].code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Human-readable explanation (includes the field path for schema errors).","isRequired":true,"uniqueKey":"results.items.[INDEX].errors.items.[INDEX].message","typeLabel":"string"}},"required":["code","message"],"uniqueKey":"results.items.[INDEX].errors.items.[INDEX]","typeLabel":"object"},"description":"Issues that would make this file fail to sync.","isRequired":true,"uniqueKey":"results.items.[INDEX].errors","typeLabel":"object[]"},"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","enum":["yaml_error","schema_error","fetch_error"],"description":"Kind of issue.","isRequired":true,"uniqueKey":"results.items.[INDEX].warnings.items.[INDEX].code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Human-readable explanation (includes the field path for schema errors).","isRequired":true,"uniqueKey":"results.items.[INDEX].warnings.items.[INDEX].message","typeLabel":"string"}},"required":["code","message"],"uniqueKey":"results.items.[INDEX].warnings.items.[INDEX]","typeLabel":"object"},"description":"Non-blocking issues that depend on live workspace state the validator cannot see, such as an unresolved systemPrompt.file or a reference to an agent not in the request.","isRequired":true,"uniqueKey":"results.items.[INDEX].warnings","typeLabel":"object[]"}},"required":["path","valid","errors","warnings"],"uniqueKey":"results.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"results","typeLabel":"object[]"}},"required":["valid","fileCount","agentCount","results"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"valid":true,"fileCount":123,"agentCount":123,"results":[{"path":"\u003cstring>","valid":true,"errors":[{"code":"yaml_error","message":"\u003cstring>"}],"warnings":[{"code":"yaml_error","message":"\u003cstring>"}]}]}}},"exampleType":"generated"}},"exampleType":"generated"},"46fe47f6-5f15-4ad4-9109-cd73d87bb506":{"description":"Bad request — input validation failed or the request was malformed","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Error message describing what went wrong","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"issues":{"type":"array","description":"Detailed validation issues, present when request or response schema validation fails","items":{"type":"object","additionalProperties":true,"uniqueKey":"issues.items.[INDEX]","typeLabel":"object"},"uniqueKey":"issues","typeLabel":"object[]"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","issues":[{}]}}},"exampleType":"generated"}},"exampleType":"generated"},"55591a71-2049-4ea2-9f20-9d27f180ead4":{"description":"Unauthorized — missing or invalid API key / session","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Error message describing what went wrong","isRequired":true,"uniqueKey":"error","typeLabel":"string"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"18da04c0-848f-470a-b1b1-8a0a0b7ff887":{"description":"Forbidden — the authenticated user lacks the required permissions","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Error message describing what went wrong","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"missingPerms":{"type":"array","description":"Permissions the authenticated user is missing for this operation","items":{"type":"string","uniqueKey":"missingPerms.items.[INDEX]","typeLabel":"string"},"uniqueKey":"missingPerms","typeLabel":"string[]"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","missingPerms":["\u003cstring>"]}}},"exampleType":"generated"}},"exampleType":"generated"},"7a1e5514-2035-41bc-b7bc-0174e8747deb":{"description":"Internal server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Error message describing what went wrong","isRequired":true,"uniqueKey":"error","typeLabel":"string"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"0ff78b3f-0e10-4b02-893f-06d2cd9c36bb":{"ApiKeyAuth":{"type":"http","scheme":"bearer","bearerFormat":"API Key","description":"API Key authentication for programmatic access. Include your API key in the Authorization header as: `Bearer your_api_key_here`","scopes":[],"schemeName":"ApiKeyAuth"}}},"servers":{"176299f3-7268-41ba-b4a5-ab38bcd2c47e":{"url":"https://app.cotool.ai","description":"Production server"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"API Key","description":"API Key authentication for programmatic access. Include your API key in the Authorization header as: `Bearer your_api_key_here`","scopes":[],"schemeName":"ApiKeyAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"API Key authentication for programmatic access. Include your API key in the Authorization header as: `Bearer your_api_key_here`","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"ApiKeyAuth","name":"Authorization"}],"title":"ApiKeyAuth"}]},"originalFileLocation":"https://app.cotool.ai/api/docs/openapi.json"},"subdomain":"cotool-bcb49c92","siteName":"Cotool Documentation","title":"Validate Response-Agent-as-Code YAML - Cotool Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-27T04:31:06.530Z","originalFileLocation":"api-reference/agents-as-code/validate-response-agent-as-code-yaml.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=\"system\"}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=\"Validate Response-Agents-as-Code YAML without syncing it. Runs the same parse, schema, and cross-file checks as the GitOps sync engine, so a CI check stays in step with real sync behavior. Typically used to validate agent files in a pull request before they merge. Request. Post each file as a { path, content } pair. The validator has no access to your repo, so you send the raw file text. Post one file to check it on its own, or a whole directory to also catch cross-file issues like duplicate sync_key values and dependency cycles. Include any prompt .md files referenced by systemPrompt.file so those references resolve. Response. An overall valid flag, plus per file an errors list (these would block a sync) and a warnings list (non-blocking). Warnings are checks that need live workspace state the request cannot see, such as an unprovided systemPrompt.file or a reference to an agent that is not in the request. Authentication. Send a bearer token. GitHub OIDC is the recommended method: in GitHub Actions, use the cotool/validate-agents Action, which mints a short-lived, repo-scoped token (no stored secret; the repository must be connected for GitOps sync) that grants validate-only access. A Cotool API key with the tool.manage permission also works for non-GitHub or self-hosted CI, but it is long-lived and inherits the full permissions of the user who created it, so prefer OIDC and treat any API key as a sensitive, least-privilege secret.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Cotool Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/cotool-bcb49c92/LJnfYfYlhELWbHCE/_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/cotool-bcb49c92/LJnfYfYlhELWbHCE/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/cotool-bcb49c92/LJnfYfYlhELWbHCE/_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/cotool-bcb49c92/LJnfYfYlhELWbHCE/_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/cotool-bcb49c92/LJnfYfYlhELWbHCE/_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/cotool-bcb49c92/LJnfYfYlhELWbHCE/_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/cotool-bcb49c92/LJnfYfYlhELWbHCE/_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/cotool-bcb49c92/LJnfYfYlhELWbHCE/_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/cotool-bcb49c92/LJnfYfYlhELWbHCE/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Validate Response-Agent-as-Code YAML - Cotool Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Validate Response-Agents-as-Code YAML without syncing it. Runs the same parse, schema, and cross-file checks as the GitOps sync engine, so a CI check stays in step with real sync behavior. Typically used to validate agent files in a pull request before they merge. Request. Post each file as a { path, content } pair. The validator has no access to your repo, so you send the raw file text. Post one file to check it on its own, or a whole directory to also catch cross-file issues like duplicate sync_key values and dependency cycles. Include any prompt .md files referenced by systemPrompt.file so those references resolve. Response. An overall valid flag, plus per file an errors list (these would block a sync) and a warnings list (non-blocking). Warnings are checks that need live workspace state the request cannot see, such as an unprovided systemPrompt.file or a reference to an agent that is not in the request. Authentication. Send a bearer token. GitHub OIDC is the recommended method: in GitHub Actions, use the cotool/validate-agents Action, which mints a short-lived, repo-scoped token (no stored secret; the repository must be connected for GitOps sync) that grants validate-only access. A Cotool API key with the tool.manage permission also works for non-GitHub or self-hosted CI, but it is long-lived and inherits the full permissions of the user who created it, so prefer OIDC and treat any API key as a sensitive, least-privilege secret.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Cotool Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.cotool.ai/api-reference/agents-as-code/validate-response-agent-as-code-yaml\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://cotool-bcb49c92.mintlify.app/_mintlify/api/og/v2?division=Agents+as+Code\u0026amp;title=Validate+Response-Agent-as-Code+YAML\u0026amp;description=Validate+Response-Agents-as-Code+YAML+without+syncing+it.+Runs+the+same+parse%2C+schema%2C+and+cross-file+checks+as+the+GitOps+sync+engine%2C+so+a+CI+check+stays+in+s\u0026amp;theme=cf64d3cca19862b8e8178ed4\u0026amp;signature=5d024bc7953ad60a0350538adba2e2fd79c7708e319da188cc3c03a5fd180c95\">\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=\"Validate Response-Agent-as-Code YAML - Cotool Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Validate Response-Agents-as-Code YAML without syncing it. Runs the same parse, schema, and cross-file checks as the GitOps sync engine, so a CI check stays in step with real sync behavior. Typically used to validate agent files in a pull request before they merge. Request. Post each file as a { path, content } pair. The validator has no access to your repo, so you send the raw file text. Post one file to check it on its own, or a whole directory to also catch cross-file issues like duplicate sync_key values and dependency cycles. Include any prompt .md files referenced by systemPrompt.file so those references resolve. Response. An overall valid flag, plus per file an errors list (these would block a sync) and a warnings list (non-blocking). Warnings are checks that need live workspace state the request cannot see, such as an unprovided systemPrompt.file or a reference to an agent that is not in the request. Authentication. Send a bearer token. GitHub OIDC is the recommended method: in GitHub Actions, use the cotool/validate-agents Action, which mints a short-lived, repo-scoped token (no stored secret; the repository must be connected for GitOps sync) that grants validate-only access. A Cotool API key with the tool.manage permission also works for non-GitHub or self-hosted CI, but it is long-lived and inherits the full permissions of the user who created it, so prefer OIDC and treat any API key as a sensitive, least-privilege secret.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://cotool-bcb49c92.mintlify.app/_mintlify/api/og/v2?division=Agents+as+Code\u0026amp;title=Validate+Response-Agent-as-Code+YAML\u0026amp;description=Validate+Response-Agents-as-Code+YAML+without+syncing+it.+Runs+the+same+parse%2C+schema%2C+and+cross-file+checks+as+the+GitOps+sync+engine%2C+so+a+CI+check+stays+in+s\u0026amp;theme=cf64d3cca19862b8e8178ed4\u0026amp;signature=5d024bc7953ad60a0350538adba2e2fd79c7708e319da188cc3c03a5fd180c95\">\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/cotool-bcb49c92/LJnfYfYlhELWbHCE/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Cotool Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#A9D5F5\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.cotool.ai/api-reference/agents-as-code/validate-response-agent-as-code-yaml\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/agents-as-code/validate-response-agent-as-code-yaml.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.cotool.ai/#organization\",\"name\":\"Cotool Documentation\",\"url\":\"https://docs.cotool.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/cotool-bcb49c92/2D7q2Y6FoJjh0OqV/logo/light.svg?fit=max\u0026auto=format\u0026n=2D7q2Y6FoJjh0OqV\u0026q=85\u0026s=ed5fa6ba5fadea78cb6d1341380b9873\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.cotool.ai#website\",\"name\":\"Cotool Documentation\",\"url\":\"https://docs.cotool.ai\",\"publisher\":{\"@id\":\"https://docs.cotool.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.cotool.ai/api-reference/agents-as-code/validate-response-agent-as-code-yaml#webpage\",\"url\":\"https://docs.cotool.ai/api-reference/agents-as-code/validate-response-agent-as-code-yaml\",\"name\":\"Validate Response-Agent-as-Code YAML\",\"description\":\"Validate Response-Agents-as-Code YAML without syncing it. Runs the same parse, schema, and cross-file checks as the GitOps sync engine, so a CI check stays in step with real sync behavior. Typically used to validate agent files in a pull request before they merge. Request. Post each file as a { path, content } pair. The validator has no access to your repo, so you send the raw file text. Post one file to check it on its own, or a whole directory to also catch cross-file issues like duplicate sync_key values and dependency cycles. Include any prompt .md files referenced by systemPrompt.file so those references resolve. Response. An overall valid flag, plus per file an errors list (these would block a sync) and a warnings list (non-blocking). Warnings are checks that need live workspace state the request cannot see, such as an unprovided systemPrompt.file or a reference to an agent that is not in the request. Authentication. Send a bearer token. GitHub OIDC is the recommended method: in GitHub Actions, use the cotool/validate-agents Action, which mints a short-lived, repo-scoped token (no stored secret; the repository must be connected for GitOps sync) that grants validate-only access. A Cotool API key with the tool.manage permission also works for non-GitHub or self-hosted CI, but it is long-lived and inherits the full permissions of the user who created it, so prefer OIDC and treat any API key as a sensitive, least-privilege secret.\",\"dateModified\":\"2026-10-27T04:31:06.530Z\",\"isPartOf\":{\"@id\":\"https://docs.cotool.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.cotool.ai/api-reference/agents-as-code/validate-response-agent-as-code-yaml#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.cotool.ai/api-reference/agents-as-code/validate-response-agent-as-code-yaml#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Endpoints\",\"item\":\"https://docs.cotool.ai/api-reference/agent-triggers/list-agent-triggers\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Validate Response-Agent-as-Code YAML\",\"item\":\"https://docs.cotool.ai/api-reference/agents-as-code/validate-response-agent-as-code-yaml\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.cotool.ai/api-reference/agents-as-code/validate-response-agent-as-code-yaml#apireference\",\"headline\":\"Validate Response-Agent-as-Code YAML\",\"name\":\"Validate Response-Agent-as-Code YAML\",\"description\":\"Validate Response-Agents-as-Code YAML without syncing it. Runs the same parse, schema, and cross-file checks as the GitOps sync engine, so a CI check stays in step with real sync behavior. Typically used to validate agent files in a pull request before they merge. Request. Post each file as a { path, content } pair. The validator has no access to your repo, so you send the raw file text. Post one file to check it on its own, or a whole directory to also catch cross-file issues like duplicate sync_key values and dependency cycles. Include any prompt .md files referenced by systemPrompt.file so those references resolve. Response. An overall valid flag, plus per file an errors list (these would block a sync) and a warnings list (non-blocking). Warnings are checks that need live workspace state the request cannot see, such as an unprovided systemPrompt.file or a reference to an agent that is not in the request. Authentication. Send a bearer token. GitHub OIDC is the recommended method: in GitHub Actions, use the cotool/validate-agents Action, which mints a short-lived, repo-scoped token (no stored secret; the repository must be connected for GitOps sync) that grants validate-only access. A Cotool API key with the tool.manage permission also works for non-GitHub or self-hosted CI, but it is long-lived and inherits the full permissions of the user who created it, so prefer OIDC and treat any API key as a sensitive, least-privilege secret.\",\"url\":\"https://docs.cotool.ai/api-reference/agents-as-code/validate-response-agent-as-code-yaml\",\"mainEntityOfPage\":{\"@id\":\"https://docs.cotool.ai/api-reference/agents-as-code/validate-response-agent-as-code-yaml#webpage\"},\"dateModified\":\"2026-10-27T04:31:06.530Z\",\"publisher\":{\"@id\":\"https://docs.cotool.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.cotool.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Cotool Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Cotool Documentation","nav":{"global":{"anchors":[{"anchor":"Blog","icon":"newspaper","href":"https://cotool.ai/blog"}]},"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":""}]},{"tab":"API Reference","groups":[{"group":"Overview","pages":[{"title":"API Overview","href":"/api-reference/introduction"}]},{"group":"Endpoints","pages":[{"group":"Agent Triggers","pages":[{"title":"List agent triggers","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/agents/{agentId}/trigger","href":"/api-reference/agent-triggers/list-agent-triggers"},{"title":"Retrieve an agent trigger secret","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/agents/{agentId}/trigger/{triggerId}/secret","href":"/api-reference/agent-triggers/retrieve-an-agent-trigger-secret"},{"title":"Update trigger status","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json patch /api/agents/{agentId}/trigger/{triggerId}/status","href":"/api-reference/agent-triggers/update-trigger-status"},{"title":"Update trigger definition","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json put /api/agents/{agentId}/trigger/{triggerId}","href":"/api-reference/agent-triggers/update-trigger-definition"},{"title":"Delete trigger","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json delete /api/agents/{agentId}/trigger/{triggerId}","href":"/api-reference/agent-triggers/delete-trigger"},{"title":"Change trigger settings","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json patch /api/agents/{agentId}/trigger/{triggerId}","href":"/api-reference/agent-triggers/change-trigger-settings"},{"title":"Get webhook fields","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/agents/{agentId}/trigger/{source}/fields","href":"/api-reference/agent-triggers/get-webhook-fields"},{"title":"Save trigger definition","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/agents/{agentId}/trigger/save","href":"/api-reference/agent-triggers/save-trigger-definition"},{"title":"Webhook trigger","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/trigger/{source}/{triggerId}","href":"/api-reference/agent-triggers/webhook-trigger"},{"title":"Create Linear agent session for an agent","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/agents/{agentId}/linear/agent-session","href":"/api-reference/agent-triggers/create-linear-agent-session-for-an-agent"},{"title":"Move trigger to another agent","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/agents/{agentId}/trigger/{triggerId}/move","href":"/api-reference/agent-triggers/move-trigger-to-another-agent"},{"title":"Get webhook fields for a trigger source","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/trigger-sources/{source}/fields","href":"/api-reference/agent-triggers/get-webhook-fields-for-a-trigger-source"},{"title":"Update trigger event mode","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json patch /api/agents/{agentId}/trigger/{triggerId}/event-mode","href":"/api-reference/agent-triggers/update-trigger-event-mode"}]},{"group":"Chat","pages":[{"title":"Get chat history","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/chat/history","href":"/api-reference/chat/get-chat-history"},{"title":"Get chat metadata","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/chat/meta","href":"/api-reference/chat/get-chat-metadata"},{"title":"List chats","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/chats","href":"/api-reference/chat/list-chats"},{"title":"Submit thumbs feedback for a chat","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/chats/{chatId}/feedback","href":"/api-reference/chat/submit-thumbs-feedback-for-a-chat"},{"title":"Delete chat","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json delete /api/chats/{chatId}","href":"/api-reference/chat/delete-chat"}]},{"group":"Agents","pages":[{"title":"Run agent asynchronously","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/agents/{agentId}/run-async","href":"/api-reference/agents/run-agent-asynchronously"},{"title":"Get async run status (deprecated)","deprecated":true,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/agents/{agentId}/run-async/{runId}","href":"/api-reference/agents/get-async-run-status-deprecated"},{"title":"Get async run status","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/agents/{agentId}/run-async/{runId}/status","href":"/api-reference/agents/get-async-run-status"},{"title":"Get async run result","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/agents/{agentId}/run-async/{runId}/result","href":"/api-reference/agents/get-async-run-result"},{"title":"Run agent synchronously","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/agents/{agentId}/run-sync","href":"/api-reference/agents/run-agent-synchronously"},{"title":"List all agents","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/agents","href":"/api-reference/agents/list-all-agents"},{"title":"Create a new agent","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/agents","href":"/api-reference/agents/create-a-new-agent"},{"title":"Get agent","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/agents/{agentId}","href":"/api-reference/agents/get-agent"},{"title":"Update agent","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json put /api/agents/{agentId}","href":"/api-reference/agents/update-agent"},{"title":"Delete agent","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json delete /api/agents/{agentId}","href":"/api-reference/agents/delete-agent"},{"title":"Convert a disconnected managed agent into a manual agent","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/agents/{agentId}/copy","href":"/api-reference/agents/convert-a-disconnected-managed-agent-into-a-manual-agent"},{"title":"Batch update agents","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json put /api/agents/batch","href":"/api-reference/agents/batch-update-agents"},{"title":"List agent tags","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/agent-tags","href":"/api-reference/agents/list-agent-tags"},{"title":"Create agent tag","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/agent-tags","href":"/api-reference/agents/create-agent-tag"},{"title":"Rename agent tag","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json put /api/agent-tags/{tagId}","href":"/api-reference/agents/rename-agent-tag"},{"title":"Delete agent tag","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json delete /api/agent-tags/{tagId}","href":"/api-reference/agents/delete-agent-tag"},{"title":"List agent templates","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/agent-templates","href":"/api-reference/agents/list-agent-templates"},{"title":"List agent versions","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/agents/{agentId}/versions","href":"/api-reference/agents/list-agent-versions"},{"title":"Revert an agent to a previous version","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/agents/{agentId}/versions/{versionId}/revert","href":"/api-reference/agents/revert-an-agent-to-a-previous-version"},{"title":"Change agent tag color","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json patch /api/agent-tags/{tagId}/color","href":"/api-reference/agents/change-agent-tag-color"},{"title":"List agent run messages","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/agents/{agentId}/run-async/{runId}/messages","href":"/api-reference/agents/list-agent-run-messages"},{"title":"Send a message to an agent run","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/agents/{agentId}/run-async/{runId}/messages","href":"/api-reference/agents/send-a-message-to-an-agent-run"}]},{"group":"Agent Runs","pages":[{"title":"Get response-agent notification defaults","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/response-agent-notification-defaults","href":"/api-reference/agent-runs/get-response-agent-notification-defaults"},{"title":"Update response-agent notification defaults","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json put /api/response-agent-notification-defaults","href":"/api-reference/agent-runs/update-response-agent-notification-defaults"},{"title":"List agent runs/chats","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/agents/{agentId}/chats","href":"/api-reference/agent-runs/list-agent-runschats"},{"title":"List agent runs","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/agent-runs","href":"/api-reference/agent-runs/list-agent-runs"},{"title":"List critical issues","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/critical-issues","href":"/api-reference/agent-runs/list-critical-issues"},{"title":"Dismiss critical issue","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/critical-issues/{issueId}/dismiss","href":"/api-reference/agent-runs/dismiss-critical-issue"},{"title":"Submit feedback for an agent run","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/agent-runs/{runId}/feedback","href":"/api-reference/agent-runs/submit-feedback-for-an-agent-run"},{"title":"Submit feedback for multiple agent runs","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/agent-runs/feedback-batch","href":"/api-reference/agent-runs/submit-feedback-for-multiple-agent-runs"},{"title":"Get detailed feedback metrics for an agent","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/agents/{agentId}/feedback-metrics","href":"/api-reference/agent-runs/get-detailed-feedback-metrics-for-an-agent"},{"title":"Get LLM evaluation metrics","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/agents/{agentId}/llm-eval-metrics","href":"/api-reference/agent-runs/get-llm-evaluation-metrics"},{"title":"Get LLM evaluation metrics for multiple agents","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/agents/llm-eval-metrics/batch","href":"/api-reference/agent-runs/get-llm-evaluation-metrics-for-multiple-agents"},{"title":"List trigger sources","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/agent-runs/trigger-sources","href":"/api-reference/agent-runs/list-trigger-sources"},{"title":"List output deliveries and notifications for an agent run","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/agent-runs/{runId}/deliveries","href":"/api-reference/agent-runs/list-output-deliveries-and-notifications-for-an-agent-run"},{"title":"Resend a failed output delivery or notification","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/agent-runs/{runId}/deliveries/{deliveryId}/resend","href":"/api-reference/agent-runs/resend-a-failed-output-delivery-or-notification"}]},{"group":"Alerts","pages":[{"title":"List alerts","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/alerts","href":"/api-reference/alerts/list-alerts"},{"title":"Get alert filter options","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/alerts/filter-options","href":"/api-reference/alerts/get-alert-filter-options"},{"title":"Get alert routing overview","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/alert-routing","href":"/api-reference/alerts/get-alert-routing-overview"},{"title":"Update default alert routing","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json put /api/alert-routing/defaults","href":"/api-reference/alerts/update-default-alert-routing"},{"title":"Get detection alert routing","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/detections/{id}/alert-routing","href":"/api-reference/alerts/get-detection-alert-routing"},{"title":"Get alert for run","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/alerts/for-run/{runId}","href":"/api-reference/alerts/get-alert-for-run"},{"title":"Get alert","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/alerts/{alertId}","href":"/api-reference/alerts/get-alert"},{"title":"Update alert details","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json patch /api/alerts/{alertId}","href":"/api-reference/alerts/update-alert-details"},{"title":"Get alert timeline","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/alerts/{alertId}/timeline","href":"/api-reference/alerts/get-alert-timeline"},{"title":"Get alert source payload","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/alerts/{alertId}/source-payloads/{sourcePayloadId}","href":"/api-reference/alerts/get-alert-source-payload"},{"title":"Add alert comment","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/alerts/{alertId}/comments","href":"/api-reference/alerts/add-alert-comment"},{"title":"Update alert status","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/alerts/{alertId}/status","href":"/api-reference/alerts/update-alert-status"},{"title":"Get escalated alert notification defaults","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/alert-escalation-notification-defaults","href":"/api-reference/alerts/get-escalated-alert-notification-defaults"},{"title":"Update escalated alert notification defaults","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json put /api/alert-escalation-notification-defaults","href":"/api-reference/alerts/update-escalated-alert-notification-defaults"},{"title":"Update alert severity","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/alerts/{alertId}/severity","href":"/api-reference/alerts/update-alert-severity"},{"title":"Start alert triage run","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/alerts/{alertId}/triage-runs","href":"/api-reference/alerts/start-alert-triage-run"},{"title":"Update Hunt Alert routing","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json put /api/alert-routing/hunt-alerts","href":"/api-reference/alerts/update-hunt-alert-routing"},{"title":"Get alert triage routes","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/alert-triage-routes","href":"/api-reference/alerts/get-alert-triage-routes"},{"title":"Replace alert triage routes","description":"Replace the ordered routes that choose which agent triages a new alert, and optionally the default agent for alerts no route matches, in one change. Routes are checked top to bottom; the first enabled route whose conditions all match wins. Returns 400 when the routes and default would send alerts between agents in a loop.","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json put /api/alert-triage-routes","href":"/api-reference/alerts/replace-alert-triage-routes"}]},{"group":"Agents as Code","pages":[{"title":"Validate Response-Agent-as-Code YAML","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/agent-sync/validate","href":"/api-reference/agents-as-code/validate-response-agent-as-code-yaml"}]},{"group":"Artifacts","pages":[{"title":"Get artifact","description":"Fetch the content and metadata of a stored artifact by its ID for a given chat.","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/artifacts/{artifactId}","href":"/api-reference/artifacts/get-artifact"}]},{"group":"Audit Logs","pages":[{"title":"Count audit logs","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/audit-logs/count","href":"/api-reference/audit-logs/count-audit-logs"},{"title":"Get audit-log filter options","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/audit-logs/filter-options","href":"/api-reference/audit-logs/get-audit-log-filter-options"},{"title":"Get audit-log event catalog","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/audit-logs/event-catalog","href":"/api-reference/audit-logs/get-audit-log-event-catalog"},{"title":"List audit logs","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/audit-logs","href":"/api-reference/audit-logs/list-audit-logs"},{"title":"Get audit log entry","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/audit-logs/{id}","href":"/api-reference/audit-logs/get-audit-log-entry"}]},{"group":"Users","pages":[{"title":"Get current user","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/auth/me","href":"/api-reference/users/get-current-user"},{"title":"Get current user permissions and all available permissions","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/perms","href":"/api-reference/users/get-current-user-permissions-and-all-available-permissions"},{"title":"List user organizations","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/users/organizations","href":"/api-reference/users/list-user-organizations"},{"title":"List users","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/users","href":"/api-reference/users/list-users"},{"title":"Update user","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json put /api/users/{id}","href":"/api-reference/users/update-user"},{"title":"Delete user","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json delete /api/users/{id}","href":"/api-reference/users/delete-user"}]},{"group":"Hunt","pages":[{"title":"Hunt overview","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/hunt/overview","href":"/api-reference/hunt/hunt-overview"},{"title":"List threat actors","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/hunt/actors","href":"/api-reference/hunt/list-threat-actors"},{"title":"List Threats","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/threats","href":"/api-reference/hunt/list-threats"},{"title":"Get Threat detail","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/threats/{id}","href":"/api-reference/hunt/get-threat-detail"},{"title":"Dismiss a Threat","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/threats/{id}/dismiss","href":"/api-reference/hunt/dismiss-a-threat"},{"title":"Restore a dismissed Threat","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/threats/{id}/restore","href":"/api-reference/hunt/restore-a-dismissed-threat"},{"title":"Reassess a Threat","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/threats/{id}/reassess","href":"/api-reference/hunt/reassess-a-threat"},{"title":"Dispose a gap via a threat finding","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/threats/{id}/deliverables/{deliverableId}/gap-status","href":"/api-reference/hunt/dispose-a-gap-via-a-threat-finding"},{"title":"Dispose an observability gap","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/hunt/gaps/{gapId}/status","href":"/api-reference/hunt/dispose-an-observability-gap"},{"title":"Get Hunt Alert creation settings","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/hunt/alert-creation-settings","href":"/api-reference/hunt/get-hunt-alert-creation-settings"},{"title":"Update Hunt Alert creation settings","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json put /api/hunt/alert-creation-settings","href":"/api-reference/hunt/update-hunt-alert-creation-settings"}]},{"group":"CLIs","pages":[{"title":"List CLI integrations","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/clis/list","href":"/api-reference/clis/list-cli-integrations"},{"title":"Disconnect CLI","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json delete /api/clis/{cliType}/disconnect","href":"/api-reference/clis/disconnect-cli"}]},{"group":"Detections","pages":[{"title":"Generate a SIEM query using AI","deprecated":true,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/detection-queries/generate","href":"/api-reference/detections/generate-a-siem-query-using-ai"},{"title":"List detections","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/detections","href":"/api-reference/detections/list-detections"},{"title":"List detection hits","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/detections/hits","href":"/api-reference/detections/list-detection-hits"},{"title":"List the Cotool detection library","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/detection-library","href":"/api-reference/detections/list-the-cotool-detection-library"},{"title":"Read one detection library entry","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/detection-library/{slug}","href":"/api-reference/detections/read-one-detection-library-entry"},{"title":"Add a detection library entry","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/detection-library/{slug}/add","href":"/api-reference/detections/add-a-detection-library-entry"}]},{"group":"Output Destinations","pages":[{"title":"List all output destinations","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/output-destinations","href":"/api-reference/output-destinations/list-all-output-destinations"},{"title":"Create output destination","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/output-destinations","href":"/api-reference/output-destinations/create-output-destination"},{"title":"Update output destination","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json put /api/output-destinations/{destinationId}","href":"/api-reference/output-destinations/update-output-destination"},{"title":"Delete output destination","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json delete /api/output-destinations/{destinationId}","href":"/api-reference/output-destinations/delete-output-destination"},{"title":"Send a test payload to an output destination","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/output-destinations/{destinationId}/test","href":"/api-reference/output-destinations/send-a-test-payload-to-an-output-destination"},{"title":"Send a test payload to an unsaved output destination","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/output-destinations/test","href":"/api-reference/output-destinations/send-a-test-payload-to-an-unsaved-output-destination"},{"title":"Enable or disable output destination","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json put /api/output-destinations/{destinationId}/enabled","href":"/api-reference/output-destinations/enable-or-disable-output-destination"}]},{"group":"Roles","pages":[{"title":"List roles for the current organization","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/roles","href":"/api-reference/roles/list-roles-for-the-current-organization"},{"title":"Create a role","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/roles","href":"/api-reference/roles/create-a-role"},{"title":"Get role by id","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/roles/{id}","href":"/api-reference/roles/get-role-by-id"},{"title":"Update a role","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json put /api/roles/{id}","href":"/api-reference/roles/update-a-role"},{"title":"Delete a role","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json delete /api/roles/{id}","href":"/api-reference/roles/delete-a-role"},{"title":"Get permissions for a role","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/roles/{id}/perms","href":"/api-reference/roles/get-permissions-for-a-role"},{"title":"Apply permission diff to a role","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/roles/{id}/perms","href":"/api-reference/roles/apply-permission-diff-to-a-role"}]},{"group":"MITRE Coverage","pages":[{"title":"Get MITRE ATT\u0026CK matrix with detection coverage","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/mitre/matrix","href":"/api-reference/mitre-coverage/get-mitre-att\u0026ck-matrix-with-detection-coverage"},{"title":"Get MITRE ATT\u0026CK technique labels","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/mitre/technique-labels","href":"/api-reference/mitre-coverage/get-mitre-att\u0026ck-technique-labels"}]},{"group":"Organizations","pages":[{"title":"Get organization-level activity metrics","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/org-metrics","href":"/api-reference/organizations/get-organization-level-activity-metrics"}]},{"group":"Skills","pages":[{"title":"List skills","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/skills","href":"/api-reference/skills/list-skills"},{"title":"Create skill","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/skills","href":"/api-reference/skills/create-skill"},{"title":"Get skill","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/skills/{skillId}","href":"/api-reference/skills/get-skill"},{"title":"Update skill","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json put /api/skills/{skillId}","href":"/api-reference/skills/update-skill"},{"title":"Delete skill","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json delete /api/skills/{skillId}","href":"/api-reference/skills/delete-skill"},{"title":"List agents using skill","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/skills/{skillId}/agents","href":"/api-reference/skills/list-agents-using-skill"},{"title":"List skill versions","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/skills/{skillId}/versions","href":"/api-reference/skills/list-skill-versions"},{"title":"Get skill version","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/skills/{skillId}/versions/{versionId}","href":"/api-reference/skills/get-skill-version"},{"title":"Restore a skill version","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/skills/{skillId}/versions/{versionId}/restore","href":"/api-reference/skills/restore-a-skill-version"},{"title":"Import skill","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/skills/import","href":"/api-reference/skills/import-skill"},{"title":"Export skill","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/skills/{skillId}/export","href":"/api-reference/skills/export-skill"}]},{"group":"Tools","pages":[{"title":"List tools","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/tools/list","href":"/api-reference/tools/list-tools"},{"title":"Disconnect tool","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json delete /api/tools/{toolType}/disconnect","href":"/api-reference/tools/disconnect-tool"},{"title":"Get raw tool output","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/tools/get-tool-use-raw-output","href":"/api-reference/tools/get-raw-tool-output"}]},{"group":"Threat Model","pages":[{"title":"Get threat model","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/threat-model","href":"/api-reference/threat-model/get-threat-model"},{"title":"Update threat model","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json put /api/threat-model","href":"/api-reference/threat-model/update-threat-model"},{"title":"Get structured threat model board","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/threat-model/board","href":"/api-reference/threat-model/get-structured-threat-model-board"},{"title":"Regenerate threat model","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/threat-model/regenerate","href":"/api-reference/threat-model/regenerate-threat-model"},{"title":"List threat model version history","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/threat-model/versions","href":"/api-reference/threat-model/list-threat-model-version-history"},{"title":"Get threat model version","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/threat-model/versions/{versionId}","href":"/api-reference/threat-model/get-threat-model-version"}]},{"group":"Intel","pages":[{"title":"List flattened threat-intel indicators (IOCs)","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/intel/iocs","href":"/api-reference/intel/list-flattened-threat-intel-indicators-iocs"},{"title":"List threat intelligence items","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/intel/items","href":"/api-reference/intel/list-threat-intelligence-items"},{"title":"Get specific intel item","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/intel/items/{id}","href":"/api-reference/intel/get-specific-intel-item"},{"title":"Get threat intel notification settings","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/intel/notification-settings","href":"/api-reference/intel/get-threat-intel-notification-settings"},{"title":"Update threat intel notification settings","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json put /api/intel/notification-settings","href":"/api-reference/intel/update-threat-intel-notification-settings"},{"title":"List intel sources","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/intel/sources","href":"/api-reference/intel/list-intel-sources"},{"title":"Create intel source","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/intel/sources","href":"/api-reference/intel/create-intel-source"},{"title":"Update intel source","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json put /api/intel/sources/{id}","href":"/api-reference/intel/update-intel-source"},{"title":"Delete intel source","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json delete /api/intel/sources/{id}","href":"/api-reference/intel/delete-intel-source"},{"title":"Trigger intel source sync","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/intel/sources/{id}/sync","href":"/api-reference/intel/trigger-intel-source-sync"},{"title":"Get intel feed statistics","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/intel/stats","href":"/api-reference/intel/get-intel-feed-statistics"}]}]}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog"}]}]},"title":"Validate Response-Agent-as-Code YAML - Cotool Documentation","buildId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","deploymentId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DmVyH30O.js","utils-BHQqGGOd.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-CD-E4BIt.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Bp5Lq9Ds.js","snippetPresets-C4xAVCFP.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CgXVLxUC.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BF8I5oUf.js","shallow-Byd0lWnC.js","getApiPlaygroundDisplay-BGOZG1OK.js","CodeSnippet-CpvQL0CY.js","CodeSnippets-B8wkBKXa.js","Page-CBCH2P7b.js","getPastedJson-Ry3scI3Y.js","icon-D7a9HcdD.js","MethodPill-CJ8pmHhz.js","DuplicateIcon-rh1HJF0t.js","createIcon-DvGznqYs.js","DynamicMarkdown-Cc6AuSHS.js","SectionHeading-B4A0S-ep.js","axios-vUo_bRtp.js","Markdown-Cc16CX65.js","clsx-Cs6nMGht.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-zbf22OZA.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-C_fs-y5n.js"]}